diff options
| author | Scott Moser <smoser@brickies.net> | 2017-07-20 21:02:52 (GMT) |
|---|---|---|
| committer | Scott Moser <smoser@brickies.net> | 2017-07-20 21:09:43 (GMT) |
| commit | 64bd6b52a57cc0a7cc3a4c689958d0c7b2f4add6 (patch) | |
| tree | 6c709d9531f2822098b312d8eca31abbde713b21 | |
| parent | 13135b1459dc8551e5dd252f37bf15628ad05055 (diff) | |
merge the TestSysconfigRoundTrip into TestSysconfig
'RoundTrip' wasn't right for sysconfig tests as we don't
actually ever read sysconfig.
This puts the two new 'small' and 'all' tests into the improved
TestSysConfigRendering and adjusts white space a bit as the comparisons
are more white space friendly now.
| -rw-r--r-- | tests/unittests/test_net.py | 322 |
1 files changed, 134 insertions, 188 deletions
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py index a875a06..38f11e7 100644 --- a/tests/unittests/test_net.py +++ b/tests/unittests/test_net.py @@ -424,29 +424,26 @@ NETWORK_CONFIGS = { """).rstrip(' '), 'expected_sysconfig': { 'ifcfg-eth1': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - DEVICE=eth1 - HWADDR=cf:d6:af:48:e8:80 - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Ethernet - USERCTL=no""").rstrip(' '), + BOOTPROTO=none + DEVICE=eth1 + HWADDR=cf:d6:af:48:e8:80 + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth99': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=dhcp - DEFROUTE=yes - DEVICE=eth99 - GATEWAY=65.61.151.37 - HWADDR=c0:d6:9f:2c:e8:80 - IPADDR=192.168.21.3 - NETMASK=255.255.255.0 - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Ethernet - USERCTL=no """).rstrip(' ')}, + BOOTPROTO=dhcp + DEFROUTE=yes + DEVICE=eth99 + GATEWAY=65.61.151.37 + HWADDR=c0:d6:9f:2c:e8:80 + IPADDR=192.168.21.3 + NETMASK=255.255.255.0 + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Ethernet + USERCTL=no"""), + }, 'yaml': textwrap.dedent(""" version: 1 config: @@ -785,144 +782,116 @@ pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 11.0.0.1 metric 3 || true """).rstrip(' '), 'expected_sysconfig': { 'ifcfg-bond0': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BONDING_MASTER=yes - BONDING_OPTS="mode=active-backup xmit_hash_policy=layer3+4 miimon=100" - BONDING_SLAVE0=eth1 - BONDING_SLAVE1=eth2 - BOOTPROTO=dhcp - DEVICE=bond0 - DHCPV6C=yes - IPV6INIT=yes - MACADDR=aa:bb:cc:dd:ee:ff - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Bond - USERCTL=no - """).rstrip(' '), + BONDING_MASTER=yes + BONDING_OPTS="mode=active-backup """ + """xmit_hash_policy=layer3+4 miimon=100" + BONDING_SLAVE0=eth1 + BONDING_SLAVE1=eth2 + BOOTPROTO=dhcp + DEVICE=bond0 + DHCPV6C=yes + IPV6INIT=yes + MACADDR=aa:bb:cc:dd:ee:ff + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Bond + USERCTL=no"""), 'ifcfg-bond0.200': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=dhcp - DEVICE=bond0.200 - NM_CONTROLLED=no - ONBOOT=yes - PHYSDEV=bond0 - TYPE=Ethernet - USERCTL=no - VLAN=yes - """).rstrip(' '), + BOOTPROTO=dhcp + DEVICE=bond0.200 + NM_CONTROLLED=no + ONBOOT=yes + PHYSDEV=bond0 + TYPE=Ethernet + USERCTL=no + VLAN=yes"""), 'ifcfg-br0': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - AGEING=250 - BOOTPROTO=none - DEFROUTE=yes - DEVICE=br0 - IPADDR=192.168.14.2 - IPV6ADDR=2001:1::1/64 - IPV6INIT=yes - IPV6_DEFAULTGW=2001:4800:78ff:1b::1 - NETMASK=255.255.255.0 - NM_CONTROLLED=no - ONBOOT=yes - PRIO=22 - STP=off - TYPE=Bridge - USERCTL=no - """).rstrip(' '), + AGEING=250 + BOOTPROTO=none + DEFROUTE=yes + DEVICE=br0 + IPADDR=192.168.14.2 + IPV6ADDR=2001:1::1/64 + IPV6INIT=yes + IPV6_DEFAULTGW=2001:4800:78ff:1b::1 + NETMASK=255.255.255.0 + NM_CONTROLLED=no + ONBOOT=yes + PRIO=22 + STP=off + TYPE=Bridge + USERCTL=no"""), 'ifcfg-eth0': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - DEVICE=eth0 - HWADDR=c0:d6:9f:2c:e8:80 - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Ethernet - USERCTL=no - """).rstrip(' '), + BOOTPROTO=none + DEVICE=eth0 + HWADDR=c0:d6:9f:2c:e8:80 + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth0.101': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - DEFROUTE=yes - DEVICE=eth0.101 - GATEWAY=192.168.0.1 - IPADDR=192.168.0.2 - IPADDR1=192.168.2.10 - MTU=1500 - NETMASK=255.255.255.0 - NETMASK1=255.255.255.0 - NM_CONTROLLED=no - ONBOOT=yes - PHYSDEV=eth0 - TYPE=Ethernet - USERCTL=no - VLAN=yes - """).rstrip(' '), + BOOTPROTO=none + DEFROUTE=yes + DEVICE=eth0.101 + GATEWAY=192.168.0.1 + IPADDR=192.168.0.2 + IPADDR1=192.168.2.10 + MTU=1500 + NETMASK=255.255.255.0 + NETMASK1=255.255.255.0 + NM_CONTROLLED=no + ONBOOT=yes + PHYSDEV=eth0 + TYPE=Ethernet + USERCTL=no + VLAN=yes"""), 'ifcfg-eth1': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - DEVICE=eth1 - HWADDR=aa:d6:9f:2c:e8:80 - MASTER=bond0 - NM_CONTROLLED=no - ONBOOT=yes - SLAVE=yes - TYPE=Ethernet - USERCTL=no - """).rstrip(' '), + BOOTPROTO=none + DEVICE=eth1 + HWADDR=aa:d6:9f:2c:e8:80 + MASTER=bond0 + NM_CONTROLLED=no + ONBOOT=yes + SLAVE=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth2': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - DEVICE=eth2 - HWADDR=c0:bb:9f:2c:e8:80 - MASTER=bond0 - NM_CONTROLLED=no - ONBOOT=yes - SLAVE=yes - TYPE=Ethernet - USERCTL=no - """).rstrip(' '), + BOOTPROTO=none + DEVICE=eth2 + HWADDR=c0:bb:9f:2c:e8:80 + MASTER=bond0 + NM_CONTROLLED=no + ONBOOT=yes + SLAVE=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth3': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - BRIDGE=br0 - DEVICE=eth3 - HWADDR=66:bb:9f:2c:e8:80 - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Ethernet - USERCTL=no - """).rstrip(' '), + BOOTPROTO=none + BRIDGE=br0 + DEVICE=eth3 + HWADDR=66:bb:9f:2c:e8:80 + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth4': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=none - BRIDGE=br0 - DEVICE=eth4 - HWADDR=98:bb:9f:2c:e8:80 - NM_CONTROLLED=no - ONBOOT=yes - TYPE=Ethernet - USERCTL=no - """).rstrip(' '), + BOOTPROTO=none + BRIDGE=br0 + DEVICE=eth4 + HWADDR=98:bb:9f:2c:e8:80 + NM_CONTROLLED=no + ONBOOT=yes + TYPE=Ethernet + USERCTL=no"""), 'ifcfg-eth5': textwrap.dedent("""\ - # Created by cloud-init on instance boot automatically, do not edit. - # - BOOTPROTO=dhcp - DEVICE=eth5 - HWADDR=98:bb:9f:2c:e8:8a - NM_CONTROLLED=no - ONBOOT=no - TYPE=Ethernet - USERCTL=no - """).rstrip(' ')}, + BOOTPROTO=dhcp + DEVICE=eth5 + HWADDR=98:bb:9f:2c:e8:8a + NM_CONTROLLED=no + ONBOOT=no + TYPE=Ethernet + USERCTL=no""") + }, 'yaml': textwrap.dedent(""" version: 1 config: @@ -2207,6 +2176,20 @@ class TestEniRoundTrip(CiTestCase): 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 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 test_routes_rendered(self): # as reported in bug 1649652 conf = [ @@ -2254,43 +2237,6 @@ class TestEniRoundTrip(CiTestCase): expected, [line for line in found if line]) -class TestSysconfigRoundTrip(CiTestCase): - def _render_and_read(self, network_config=None, state=None, dir=None): - if dir is None: - dir = self.tmp_dir() - - 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") - - renderer = sysconfig.Renderer() - renderer.render_network_state(ns, dir) - return dir2dict(dir) - - def testsimple_render_small(self): - entry = NETWORK_CONFIGS['small'] - files = self._render_and_read(network_config=yaml.load(entry['yaml'])) - expected_sysconfig = entry.get('expected_sysconfig') - for ifcfg_name in expected_sysconfig: - expected_ifcfg = expected_sysconfig.get(ifcfg_name) - ifcfg_path = '/etc/sysconfig/network-scripts/' + ifcfg_name - self.assertEqual(expected_ifcfg.splitlines(), - files[ifcfg_path].splitlines()) - - def testsimple_render_all(self): - entry = NETWORK_CONFIGS['all'] - files = self._render_and_read(network_config=yaml.load(entry['yaml'])) - expected_sysconfig = entry.get('expected_sysconfig') - for ifcfg_name in expected_sysconfig: - expected_ifcfg = expected_sysconfig.get(ifcfg_name) - ifcfg_path = '/etc/sysconfig/network-scripts/' + ifcfg_name - self.assertEqual(expected_ifcfg.splitlines(), - files[ifcfg_path].splitlines()) - - class TestNetRenderers(CiTestCase): @mock.patch("cloudinit.net.renderers.sysconfig.available") @mock.patch("cloudinit.net.renderers.eni.available") |
