Merge ~smoser/cloud-init:render-network-state-change into cloud-init:master

Proposed by Scott Moser
Status: Merged
Merged at revision: a33447344eed897010603b3e8ea1fd122052de76
Proposed branch: ~smoser/cloud-init:render-network-state-change
Merge into: cloud-init:master
Diff against target: 132 lines (+16/-15)
4 files modified
cloudinit/net/eni.py (+4/-4)
cloudinit/net/sysconfig.py (+4/-4)
tests/unittests/test_datasource/test_configdrive.py (+4/-3)
tests/unittests/test_net.py (+4/-4)
Reviewer Review Type Date Requested Status
Ryan Harper Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+320212@code.launchpad.net

Commit message

render_network_state: switch arguments around, do not require target

render_network_state should default to rendering on /.
The changes here just make it so render_network_state does not
require a target, but defaults to None, and uses target_path
to handle that.

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
Ryan Harper (raharper) :
review: Approve

There was an error fetching revisions from git servers. Please try again in a few minutes. If the problem persists, contact Launchpad support.

Update scan failed

At least one of the branches involved have failed to scan. You can manually schedule a rescan if required.

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 5b249f1..5ed4cb1 100644
3--- a/cloudinit/net/eni.py
4+++ b/cloudinit/net/eni.py
5@@ -444,14 +444,14 @@ class Renderer(renderer.Renderer):
6
7 return '\n\n'.join(['\n'.join(s) for s in sections]) + "\n"
8
9- def render_network_state(self, target, network_state):
10- fpeni = os.path.join(target, self.eni_path)
11+ def render_network_state(self, network_state, target=None):
12+ fpeni = util.target_path(target, self.eni_path)
13 util.ensure_dir(os.path.dirname(fpeni))
14 header = self.eni_header if self.eni_header else ""
15 util.write_file(fpeni, header + self._render_interfaces(network_state))
16
17 if self.netrules_path:
18- netrules = os.path.join(target, self.netrules_path)
19+ netrules = util.target_path(target, self.netrules_path)
20 util.ensure_dir(os.path.dirname(netrules))
21 util.write_file(netrules,
22 self._render_persistent_net(network_state))
23@@ -461,7 +461,7 @@ class Renderer(renderer.Renderer):
24 links_prefix=self.links_path_prefix)
25
26 def _render_systemd_links(self, target, network_state, links_prefix):
27- fp_prefix = os.path.join(target, links_prefix)
28+ fp_prefix = util.target_path(target, links_prefix)
29 for f in glob.glob(fp_prefix + "*"):
30 os.unlink(f)
31 for iface in network_state.iter_interfaces():
32diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
33index 06de660..633371a 100644
34--- a/cloudinit/net/sysconfig.py
35+++ b/cloudinit/net/sysconfig.py
36@@ -387,19 +387,19 @@ class Renderer(renderer.Renderer):
37 contents[iface_cfg.routes.path] = iface_cfg.routes.to_string()
38 return contents
39
40- def render_network_state(self, target, network_state):
41- base_sysconf_dir = os.path.join(target, self.sysconf_dir)
42+ def render_network_state(self, network_state, target=None):
43+ base_sysconf_dir = util.target_path(target, self.sysconf_dir)
44 for path, data in self._render_sysconfig(base_sysconf_dir,
45 network_state).items():
46 util.write_file(path, data)
47 if self.dns_path:
48- dns_path = os.path.join(target, self.dns_path)
49+ dns_path = util.target_path(target, self.dns_path)
50 resolv_content = self._render_dns(network_state,
51 existing_dns_path=dns_path)
52 util.write_file(dns_path, resolv_content)
53 if self.netrules_path:
54 netrules_content = self._render_persistent_net(network_state)
55- netrules_path = os.path.join(target, self.netrules_path)
56+ netrules_path = util.target_path(target, self.netrules_path)
57 util.write_file(netrules_path, netrules_content)
58
59 # vi: ts=4 expandtab
60diff --git a/tests/unittests/test_datasource/test_configdrive.py b/tests/unittests/test_datasource/test_configdrive.py
61index 5515335..337be66 100644
62--- a/tests/unittests/test_datasource/test_configdrive.py
63+++ b/tests/unittests/test_datasource/test_configdrive.py
64@@ -645,7 +645,7 @@ class TestConvertNetworkData(TestCase):
65 routes)
66 eni_renderer = eni.Renderer()
67 eni_renderer.render_network_state(
68- self.tmp, network_state.parse_net_config_data(ncfg))
69+ network_state.parse_net_config_data(ncfg), self.tmp)
70 with open(os.path.join(self.tmp, "etc",
71 "network", "interfaces"), 'r') as f:
72 eni_rendering = f.read()
73@@ -665,8 +665,9 @@ class TestConvertNetworkData(TestCase):
74 ncfg = openstack.convert_net_json(NETWORK_DATA_BOND,
75 known_macs=KNOWN_MACS)
76 eni_renderer = eni.Renderer()
77+
78 eni_renderer.render_network_state(
79- self.tmp, network_state.parse_net_config_data(ncfg))
80+ network_state.parse_net_config_data(ncfg), self.tmp)
81 with open(os.path.join(self.tmp, "etc",
82 "network", "interfaces"), 'r') as f:
83 eni_rendering = f.read()
84@@ -697,7 +698,7 @@ class TestConvertNetworkData(TestCase):
85 known_macs=KNOWN_MACS)
86 eni_renderer = eni.Renderer()
87 eni_renderer.render_network_state(
88- self.tmp, network_state.parse_net_config_data(ncfg))
89+ network_state.parse_net_config_data(ncfg), self.tmp)
90 with open(os.path.join(self.tmp, "etc",
91 "network", "interfaces"), 'r') as f:
92 eni_rendering = f.read()
93diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
94index 8d25310..7123d41 100644
95--- a/tests/unittests/test_net.py
96+++ b/tests/unittests/test_net.py
97@@ -689,7 +689,7 @@ class TestSysConfigRendering(CiTestCase):
98 os.makedirs(render_dir)
99
100 renderer = sysconfig.Renderer()
101- renderer.render_network_state(render_dir, ns)
102+ renderer.render_network_state(ns, render_dir)
103
104 render_file = 'etc/sysconfig/network-scripts/ifcfg-eth1000'
105 with open(os.path.join(render_dir, render_file)) as fh:
106@@ -717,7 +717,7 @@ USERCTL=no
107 ns = network_state.parse_net_config_data(network_cfg,
108 skip_broken=False)
109 renderer = sysconfig.Renderer()
110- renderer.render_network_state(render_dir, ns)
111+ renderer.render_network_state(ns, render_dir)
112 for fn, expected_content in os_sample.get('out_sysconfig', []):
113 with open(os.path.join(render_dir, fn)) as fh:
114 self.assertEqual(expected_content, fh.read())
115@@ -746,7 +746,7 @@ class TestEniNetRendering(CiTestCase):
116 {'links_path_prefix': None,
117 'eni_path': 'interfaces', 'netrules_path': None,
118 })
119- renderer.render_network_state(render_dir, ns)
120+ renderer.render_network_state(ns, render_dir)
121
122 self.assertTrue(os.path.exists(os.path.join(render_dir,
123 'interfaces')))
124@@ -928,7 +928,7 @@ class TestEniRoundTrip(CiTestCase):
125 config={'eni_path': eni_path, 'links_path_prefix': links_prefix,
126 'netrules_path': netrules_path})
127
128- renderer.render_network_state(dir, ns)
129+ renderer.render_network_state(ns, dir)
130 return dir2dict(dir)
131
132 def testsimple_convert_and_render(self):

Subscribers

People subscribed via source and target branches