예제 #1
0
    def test_default_generation(self, mock_get_devicelist,
                                mock_read_sys_net,
                                mock_sys_dev_path):
        tmp_dir = tempfile.mkdtemp()
        self.addCleanup(shutil.rmtree, tmp_dir)
        _setup_test(tmp_dir, mock_get_devicelist,
                    mock_read_sys_net, mock_sys_dev_path)

        network_cfg = net.generate_fallback_config()
        ns = network_state.parse_net_config_data(network_cfg,
                                                 skip_broken=False)

        render_dir = os.path.join(tmp_dir, "render")
        os.makedirs(render_dir)

        renderer = sysconfig.Renderer()
        renderer.render_network_state(render_dir, ns)

        render_file = 'etc/sysconfig/network-scripts/ifcfg-eth1000'
        with open(os.path.join(render_dir, render_file)) as fh:
            content = fh.read()
            expected_content = """
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth1000
HWADDR=07-1C-C6-75-A4-BE
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
""".lstrip()
            self.assertEqual(expected_content, content)
예제 #2
0
파일: rhel.py 프로젝트: srz01/cloud-init
 def __init__(self, name, cfg, paths):
     distros.Distro.__init__(self, name, cfg, paths)
     # This will be used to restrict certain
     # calls from repeatly happening (when they
     # should only happen say once per instance...)
     self._runner = helpers.Runners(paths)
     self.osfamily = 'redhat'
     self._net_renderer = sysconfig.Renderer()
예제 #3
0
 def test_openstack_rendering_samples(self):
     for os_sample in OS_SAMPLES:
         render_dir = self.tmp_dir()
         ex_input = os_sample['in_data']
         ex_mac_addrs = os_sample['in_macs']
         network_cfg = openstack.convert_net_json(ex_input,
                                                  known_macs=ex_mac_addrs)
         ns = network_state.parse_net_config_data(network_cfg,
                                                  skip_broken=False)
         renderer = sysconfig.Renderer()
         renderer.render_network_state(ns, render_dir)
         for fn, expected_content in os_sample.get('out_sysconfig', []):
             with open(os.path.join(render_dir, fn)) as fh:
                 self.assertEqual(expected_content, fh.read())
예제 #4
0
    def test_config_with_explicit_loopback(self):
        ns = network_state.parse_net_config_data(CONFIG_V1_EXPLICIT_LOOPBACK)
        render_dir = self.tmp_path("render")
        os.makedirs(render_dir)
        renderer = sysconfig.Renderer()
        renderer.render_network_state(ns, render_dir)
        found = dir2dict(render_dir)
        nspath = '/etc/sysconfig/network-scripts/'
        self.assertNotIn(nspath + 'ifcfg-lo', found.keys())
        expected = """\
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
"""
        self.assertEqual(expected, found[nspath + 'ifcfg-eth0'])