summaryrefslogtreecommitdiff
path: root/cloudinit/net/sysconfig.py
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2017-05-24 21:10:50 -0400
committerScott Moser <smoser@brickies.net>2017-06-08 18:34:06 -0400
commitd00da2d5b0d45db5670622a66d833d2abb907388 (patch)
treead084f88eb4de4c448959e4f3f8543550259a441 /cloudinit/net/sysconfig.py
parent76d58265e34851b78e952a7f275340863c90a9f5 (diff)
downloadvyos-cloud-init-d00da2d5b0d45db5670622a66d833d2abb907388.tar.gz
vyos-cloud-init-d00da2d5b0d45db5670622a66d833d2abb907388.zip
net: normalize data in network_state object
The network_state object's network and route keys would have different information depending upon how the network_state object was populated. This change cleans that up. Now: * address will always contain an IP address. * prefix will always include an integer value that is the network_prefix for the address. * netmask will be present only if the address is ipv4, and its value will always correlate to the 'prefix'.
Diffstat (limited to 'cloudinit/net/sysconfig.py')
-rw-r--r--cloudinit/net/sysconfig.py23
1 files changed, 7 insertions, 16 deletions
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
index f7d45482..5d9b3d10 100644
--- a/cloudinit/net/sysconfig.py
+++ b/cloudinit/net/sysconfig.py
@@ -9,7 +9,7 @@ from cloudinit.distros.parsers import resolv_conf
from cloudinit import util
from . import renderer
-from .network_state import subnet_is_ipv6
+from .network_state import subnet_is_ipv6, net_prefix_to_ipv4_mask
def _make_header(sep='#'):
@@ -26,11 +26,8 @@ def _make_header(sep='#'):
def _is_default_route(route):
- if route['network'] == '::' and route['netmask'] == 0:
- return True
- if route['network'] == '0.0.0.0' and route['netmask'] == '0.0.0.0':
- return True
- return False
+ default_nets = ('::', '0.0.0.0')
+ return route['prefix'] == 0 and route['network'] in default_nets
def _quote_value(value):
@@ -323,16 +320,10 @@ class Renderer(renderer.Renderer):
" " + ipv6_cidr)
else:
ipv4_index = ipv4_index + 1
- if ipv4_index == 0:
- iface_cfg['IPADDR'] = subnet['address']
- if 'netmask' in subnet:
- iface_cfg['NETMASK'] = subnet['netmask']
- else:
- iface_cfg['IPADDR' + str(ipv4_index)] = \
- subnet['address']
- if 'netmask' in subnet:
- iface_cfg['NETMASK' + str(ipv4_index)] = \
- subnet['netmask']
+ suff = "" if ipv4_index == 0 else str(ipv4_index)
+ iface_cfg['IPADDR' + suff] = subnet['address']
+ iface_cfg['NETMASK' + suff] = \
+ net_prefix_to_ipv4_mask(subnet['prefix'])
@classmethod
def _render_subnet_routes(cls, iface_cfg, route_cfg, subnets):