Merge ~raharper/cloud-init:eni-drop-rendering-systemd-link-files into cloud-init:master

Proposed by Ryan Harper
Status: Merged
Approved by: Scott Moser
Approved revision: 4a34c10a60eba40cbdc7c9739f5d07e2a45b3c72
Merged at revision: 003c6678e9c873b3b787a814016872b6592f5069
Proposed branch: ~raharper/cloud-init:eni-drop-rendering-systemd-link-files
Merge into: cloud-init:master
Diff against target: 84 lines (+3/-31)
2 files modified
cloudinit/net/eni.py (+0/-25)
tests/unittests/test_net.py (+3/-6)
Reviewer Review Type Date Requested Status
Scott Moser Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+324675@code.launchpad.net

Description of the change

cloudinit.net: remove systemd link file writing from eni renderer

During the network v2 merge, we 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.

To post a comment you must log in.
Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Scott Moser (smoser) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/cloudinit/net/eni.py b/cloudinit/net/eni.py
2index 9819d4f..0cc4e3b 100644
3--- a/cloudinit/net/eni.py
4+++ b/cloudinit/net/eni.py
5@@ -304,8 +304,6 @@ class Renderer(renderer.Renderer):
6 config = {}
7 self.eni_path = config.get('eni_path', 'etc/network/interfaces')
8 self.eni_header = config.get('eni_header', None)
9- self.links_path_prefix = config.get(
10- 'links_path_prefix', 'etc/systemd/network/50-cloud-init-')
11 self.netrules_path = config.get(
12 'netrules_path', 'etc/udev/rules.d/70-persistent-net.rules')
13
14@@ -451,28 +449,6 @@ class Renderer(renderer.Renderer):
15 util.write_file(netrules,
16 self._render_persistent_net(network_state))
17
18- if self.links_path_prefix:
19- self._render_systemd_links(target, network_state,
20- links_prefix=self.links_path_prefix)
21-
22- def _render_systemd_links(self, target, network_state, links_prefix):
23- fp_prefix = util.target_path(target, links_prefix)
24- for f in glob.glob(fp_prefix + "*"):
25- os.unlink(f)
26- for iface in network_state.iter_interfaces():
27- if (iface['type'] == 'physical' and 'name' in iface and
28- iface.get('mac_address')):
29- fname = fp_prefix + iface['name'] + ".link"
30- content = "\n".join([
31- "[Match]",
32- "MACAddress=" + iface['mac_address'],
33- "",
34- "[Link]",
35- "Name=" + iface['name'],
36- ""
37- ])
38- util.write_file(fname, content)
39-
40
41 def network_state_to_eni(network_state, header=None, render_hwaddress=False):
42 # render the provided network state, return a string of equivalent eni
43@@ -480,7 +456,6 @@ def network_state_to_eni(network_state, header=None, render_hwaddress=False):
44 renderer = Renderer(config={
45 'eni_path': eni_path,
46 'eni_header': header,
47- 'links_path_prefix': None,
48 'netrules_path': None,
49 })
50 if not header:
51diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
52index 5169821..d39abf5 100644
53--- a/tests/unittests/test_net.py
54+++ b/tests/unittests/test_net.py
55@@ -992,9 +992,7 @@ class TestEniNetRendering(CiTestCase):
56 os.makedirs(render_dir)
57
58 renderer = eni.Renderer(
59- {'links_path_prefix': None,
60- 'eni_path': 'interfaces', 'netrules_path': None,
61- })
62+ {'eni_path': 'interfaces', 'netrules_path': None})
63 renderer.render_network_state(ns, render_dir)
64
65 self.assertTrue(os.path.exists(os.path.join(render_dir,
66@@ -1376,7 +1374,7 @@ class TestNetplanRoundTrip(CiTestCase):
67
68 class TestEniRoundTrip(CiTestCase):
69 def _render_and_read(self, network_config=None, state=None, eni_path=None,
70- links_prefix=None, netrules_path=None, dir=None):
71+ netrules_path=None, dir=None):
72 if dir is None:
73 dir = self.tmp_dir()
74
75@@ -1391,8 +1389,7 @@ class TestEniRoundTrip(CiTestCase):
76 eni_path = 'etc/network/interfaces'
77
78 renderer = eni.Renderer(
79- config={'eni_path': eni_path, 'links_path_prefix': links_prefix,
80- 'netrules_path': netrules_path})
81+ config={'eni_path': eni_path, 'netrules_path': netrules_path})
82
83 renderer.render_network_state(ns, dir)
84 return dir2dict(dir)

Subscribers

People subscribed via source and target branches