diff options
author | Scott Moser <smoser@ubuntu.com> | 2016-04-15 14:49:13 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2016-04-15 14:49:13 -0400 |
commit | 14053fc79737f6ec6904021f3f6cdfd262c3b17e (patch) | |
tree | 99ca3b541ff1e973e405203088551f229a3631ea /cloudinit/net/__init__.py | |
parent | 53f035122dffd5b821e29fe9af9a72276d9728b4 (diff) | |
download | vyos-cloud-init-14053fc79737f6ec6904021f3f6cdfd262c3b17e.tar.gz vyos-cloud-init-14053fc79737f6ec6904021f3f6cdfd262c3b17e.zip |
sync with curtin on render_interfaces
This picks up newline cleanup and some bond fixes from curtin at rev 374.
- Cleanup newline logic so we always have a clean '\n\n' between stanza
- Add a unittest to validate bonding network config render, specifically
when to emit auto $iface for dependent bond slaves.
Diffstat (limited to 'cloudinit/net/__init__.py')
-rw-r--r-- | cloudinit/net/__init__.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/cloudinit/net/__init__.py b/cloudinit/net/__init__.py index a765b75a..7a6ec3a4 100644 --- a/cloudinit/net/__init__.py +++ b/cloudinit/net/__init__.py @@ -528,14 +528,16 @@ def render_interfaces(network_state): if len(value): content += " dns-{} {}\n".format(dnskey, " ".join(value)) - content += "\n" for iface in sorted(interfaces.values(), key=lambda k: (order[k['type']], k['name'])): - content += "auto {name}\n".format(**iface) + if content[-2:] != "\n\n": + content += "\n" subnets = iface.get('subnets', {}) if subnets: for index, subnet in zip(range(0, len(subnets)), subnets): + if content[-2:] != "\n\n": + content += "\n" iface['index'] = index iface['mode'] = subnet['type'] if iface['mode'].endswith('6'): @@ -546,27 +548,28 @@ def render_interfaces(network_state): iface['mode'] = 'dhcp' if index == 0: + if subnet['type'] != 'manual': + content += "auto {name}\n".format(**iface) content += "iface {name} {inet} {mode}\n".format(**iface) else: - content += "auto {name}:{index}\n".format(**iface) + if subnet['type'] != 'manual': + content += "auto {name}:{index}\n".format(**iface) content += \ "iface {name}:{index} {inet} {mode}\n".format(**iface) content += iface_add_subnet(iface, subnet) content += iface_add_attrs(iface) - for route in subnet.get('routes', []): - content += render_route(route, indent=" ") - content += "\n" else: + if 'bond-master' in iface: + content += "auto {name}\n".format(**iface) content += "iface {name} {inet} {mode}\n".format(**iface) content += iface_add_attrs(iface) - content += "\n" for route in network_state.get('routes'): content += render_route(route) # global replacements until v2 format - content = content.replace('mac_address', 'hwaddress ether') + content = content.replace('mac_address', 'hwaddress') return content |