summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/patches/cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer95
-rw-r--r--debian/patches/series1
2 files changed, 96 insertions, 0 deletions
diff --git a/debian/patches/cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer b/debian/patches/cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer
new file mode 100644
index 00000000..76504ccb
--- /dev/null
+++ b/debian/patches/cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer
@@ -0,0 +1,95 @@
+From 003c6678e9c873b3b787a814016872b6592f5069 Mon Sep 17 00:00:00 2001
+From: Ryan Harper <ryan.harper@canonical.com>
+Date: Thu, 25 May 2017 15:37:15 -0500
+Subject: [PATCH] net: remove systemd link file writing from eni renderer
+
+During the network v2 merge, we inadvertently re-enabled rendering systemd
+.link files. This files are not required as cloud-init already has to do
+interface renaming due to issues with udevd which may refuse to rename
+certain interfaces (such as veth devices in a LXD container). As such,
+removing the code altogether.
+---
+ cloudinit/net/eni.py | 25 -------------------------
+ tests/unittests/test_net.py | 9 +++------
+ 2 files changed, 3 insertions(+), 31 deletions(-)
+
+--- a/cloudinit/net/eni.py
++++ b/cloudinit/net/eni.py
+@@ -304,8 +304,6 @@ class Renderer(renderer.Renderer):
+ config = {}
+ self.eni_path = config.get('eni_path', 'etc/network/interfaces')
+ self.eni_header = config.get('eni_header', None)
+- self.links_path_prefix = config.get(
+- 'links_path_prefix', 'etc/systemd/network/50-cloud-init-')
+ self.netrules_path = config.get(
+ 'netrules_path', 'etc/udev/rules.d/70-persistent-net.rules')
+
+@@ -451,28 +449,6 @@ class Renderer(renderer.Renderer):
+ util.write_file(netrules,
+ self._render_persistent_net(network_state))
+
+- if self.links_path_prefix:
+- self._render_systemd_links(target, network_state,
+- links_prefix=self.links_path_prefix)
+-
+- def _render_systemd_links(self, target, network_state, links_prefix):
+- fp_prefix = util.target_path(target, links_prefix)
+- for f in glob.glob(fp_prefix + "*"):
+- os.unlink(f)
+- for iface in network_state.iter_interfaces():
+- if (iface['type'] == 'physical' and 'name' in iface and
+- iface.get('mac_address')):
+- fname = fp_prefix + iface['name'] + ".link"
+- content = "\n".join([
+- "[Match]",
+- "MACAddress=" + iface['mac_address'],
+- "",
+- "[Link]",
+- "Name=" + iface['name'],
+- ""
+- ])
+- util.write_file(fname, content)
+-
+
+ def network_state_to_eni(network_state, header=None, render_hwaddress=False):
+ # render the provided network state, return a string of equivalent eni
+@@ -480,7 +456,6 @@ def network_state_to_eni(network_state,
+ renderer = Renderer(config={
+ 'eni_path': eni_path,
+ 'eni_header': header,
+- 'links_path_prefix': None,
+ 'netrules_path': None,
+ })
+ if not header:
+--- a/tests/unittests/test_net.py
++++ b/tests/unittests/test_net.py
+@@ -992,9 +992,7 @@ class TestEniNetRendering(CiTestCase):
+ os.makedirs(render_dir)
+
+ renderer = eni.Renderer(
+- {'links_path_prefix': None,
+- 'eni_path': 'interfaces', 'netrules_path': None,
+- })
++ {'eni_path': 'interfaces', 'netrules_path': None})
+ renderer.render_network_state(ns, render_dir)
+
+ self.assertTrue(os.path.exists(os.path.join(render_dir,
+@@ -1376,7 +1374,7 @@ class TestNetplanRoundTrip(CiTestCase):
+
+ class TestEniRoundTrip(CiTestCase):
+ def _render_and_read(self, network_config=None, state=None, eni_path=None,
+- links_prefix=None, netrules_path=None, dir=None):
++ netrules_path=None, dir=None):
+ if dir is None:
+ dir = self.tmp_dir()
+
+@@ -1391,8 +1389,7 @@ class TestEniRoundTrip(CiTestCase):
+ eni_path = 'etc/network/interfaces'
+
+ renderer = eni.Renderer(
+- config={'eni_path': eni_path, 'links_path_prefix': links_prefix,
+- 'netrules_path': netrules_path})
++ config={'eni_path': eni_path, 'netrules_path': netrules_path})
+
+ renderer.render_network_state(ns, dir)
+ return dir2dict(dir)
diff --git a/debian/patches/series b/debian/patches/series
index 9331318f..d2512471 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
azure-use-walinux-agent.patch
cpick-5fb49bac-azure-identify-platform-by-well-known-value-in-chassis
ds-identify-behavior-xenial.patch
+cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer