cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #01000
Re: [Merge] lp:~smoser/cloud-init/trunk.net-improve-lo-dns into lp:cloud-init
Looks good. Could we add unittests for distro using apply_network, including one without a _write_network so we can test that fallback logic?
Diff comments:
>
> === modified file 'tests/unittests/test_net.py'
> --- tests/unittests/test_net.py 2016-06-15 23:11:24 +0000
> +++ tests/unittests/test_net.py 2016-07-14 02:45:33 +0000
> @@ -323,6 +634,53 @@
> self.assertEqual(found, self.simple_cfg)
>
>
> +class TestEniRoundTrip(TestCase):
Nice!
> + def setUp(self):
> + super(TestCase, self).setUp()
> + self.tmp_dir = tempfile.mkdtemp()
> + self.addCleanup(shutil.rmtree, self.tmp_dir)
> +
> + def _render_and_read(self, network_config=None, state=None, eni_path=None,
> + links_prefix=None, netrules_path=None):
> + if network_config:
> + ns = network_state.parse_net_config_data(network_config)
> + elif state:
> + ns = state
> + else:
> + raise ValueError("Expected data or state, got neither")
> +
> + if eni_path is None:
> + eni_path = 'etc/network/interfaces'
> +
> + renderer = eni.Renderer(
> + config={'eni_path': eni_path, 'links_path_prefix': links_prefix,
> + 'netrules_path': netrules_path})
> +
> + renderer.render_network_state(self.tmp_dir, ns)
> + return dir2dict(self.tmp_dir)
> +
> + def testsimple_convert_and_render(self):
> + network_config = eni.convert_eni_data(EXAMPLE_ENI)
> + files = self._render_and_read(network_config=network_config)
> + self.assertEqual(
> + RENDERED_ENI.splitlines(),
> + files['/etc/network/interfaces'].splitlines())
> +
> + def testsimple_render_all(self):
> + entry = NETWORK_CONFIGS['all']
> + files = self._render_and_read(network_config=yaml.load(entry['yaml']))
> + self.assertEqual(
> + entry['expected_eni'].splitlines(),
> + files['/etc/network/interfaces'].splitlines())
> +
> + def testsimple_render_small(self):
> + entry = NETWORK_CONFIGS['small']
> + files = self._render_and_read(network_config=yaml.load(entry['yaml']))
> + self.assertEqual(
> + entry['expected_eni'].splitlines(),
> + files['/etc/network/interfaces'].splitlines())
> +
> +
> def _gzip_data(data):
> with io.BytesIO() as iobuf:
> gzfp = gzip.GzipFile(mode="wb", fileobj=iobuf)
--
https://code.launchpad.net/~smoser/cloud-init/trunk.net-improve-lo-dns/+merge/298035
Your team cloud init development team is requested to review the proposed merge of lp:~smoser/cloud-init/trunk.net-improve-lo-dns into lp:cloud-init.
References