summaryrefslogtreecommitdiff
path: root/cloudinit/net/renderer.py
diff options
context:
space:
mode:
authorRyan Harper <ryan.harper@canonical.com>2017-06-20 17:06:43 -0500
committerScott Moser <smoser@brickies.net>2017-06-27 17:03:34 -0400
commitebc9ecbc8a76bdf511a456fb72339a7eb4c20568 (patch)
tree3b735b43bde5c5d8e96e602f5a7a6c39dd20f34c /cloudinit/net/renderer.py
parent10e5195e4a4459d1893801aa9fb486dc2973415d (diff)
downloadvyos-cloud-init-ebc9ecbc8a76bdf511a456fb72339a7eb4c20568.tar.gz
vyos-cloud-init-ebc9ecbc8a76bdf511a456fb72339a7eb4c20568.zip
Azure: Add network-config, Refactor net layer to handle duplicate macs.
On systems with network devices with duplicate mac addresses, cloud-init will fail to rename the devices according to the specified network configuration. Refactor net layer to search by device driver and device id if available. Azure systems may have duplicate mac addresses by design. Update Azure datasource to run at init-local time and let Azure datasource generate a fallback networking config to handle advanced networking configurations. Lastly, add a 'setup' method to the datasources that is called before userdata/vendordata is processed but after networking is up. That is used here on Azure to interact with the 'fabric'.
Diffstat (limited to 'cloudinit/net/renderer.py')
-rw-r--r--cloudinit/net/renderer.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/cloudinit/net/renderer.py b/cloudinit/net/renderer.py
index c68658dc..bba139e5 100644
--- a/cloudinit/net/renderer.py
+++ b/cloudinit/net/renderer.py
@@ -34,8 +34,10 @@ class Renderer(object):
for iface in network_state.iter_interfaces(filter_by_physical):
# for physical interfaces write out a persist net udev rule
if 'name' in iface and iface.get('mac_address'):
+ driver = iface.get('driver', None)
content.write(generate_udev_rule(iface['name'],
- iface['mac_address']))
+ iface['mac_address'],
+ driver=driver))
return content.getvalue()
@abc.abstractmethod