summaryrefslogtreecommitdiff
path: root/debian/patches/cpick-003c6678-net-remove-systemd-link-file-writing-from-eni-renderer
blob: 76504ccbf2b71399a12a79e10425109e989a8b38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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)