Ondřej Svoboda has uploaded a new change for review. Change subject: networkTests: Extend a test to also consider DHCPv6 ......................................................................
networkTests: Extend a test to also consider DHCPv6 Change-Id: Ic5d821edd54681a7a8c1013a90af61ae835baa39 Signed-off-by: Ondřej Svoboda <[email protected]> --- M tests/functional/dummy.py M tests/functional/firewall.py M tests/functional/networkTests.py 3 files changed, 32 insertions(+), 16 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/32/30532/1 diff --git a/tests/functional/dummy.py b/tests/functional/dummy.py index aa56c71..b94c77d 100644 --- a/tests/functional/dummy.py +++ b/tests/functional/dummy.py @@ -54,9 +54,9 @@ (dummyName, e)) -def setIP(dummyName, ipaddr, netmask): +def setIP(dummyName, ipaddr, netmask, family=4): try: - addrAdd(dummyName, ipaddr, netmask) + addrAdd(dummyName, ipaddr, netmask, family) except IPRoute2Error: raise SkipTest('Failed to set device ip') diff --git a/tests/functional/firewall.py b/tests/functional/firewall.py index ee7bb9f..9940a75 100644 --- a/tests/functional/firewall.py +++ b/tests/functional/firewall.py @@ -43,7 +43,10 @@ if _serviceRunning('iptables'): _execCmdChecker([_IPTABLES_BINARY.cmd, '-I', 'INPUT', '-i', veth, '-p', 'udp', '--sport', '68', '--dport', - '67', '-j', 'ACCEPT']) + '67', '-j', 'ACCEPT']) # DHCPv4 + _execCmdChecker([_IPTABLES_BINARY.cmd, '-I', 'INPUT', '-i', + veth, '-p', 'udp', '--sport', '546', '--dport', + '547', '-j', 'ACCEPT']) # DHCPv6 elif _serviceRunning('firewalld'): _execCmdChecker([_FIREWALLD_BINARY.cmd, '--zone=trusted', '--change-interface=' + veth]) @@ -68,7 +71,10 @@ if _serviceRunning('iptables'): _execCmdChecker([_IPTABLES_BINARY.cmd, '-D', 'INPUT', '-i', veth, '-p', 'udp', '--sport', '68', '--dport', - '67', '-j', 'ACCEPT']) + '67', '-j', 'ACCEPT']) # DHCPv4 + _execCmdChecker([_IPTABLES_BINARY.cmd, '-D', 'INPUT', '-i', + veth, '-p', 'udp', '--sport', '546', '--dport', + '547', '-j', 'ACCEPT']) # DHCPv6 elif _serviceRunning('firewalld'): _execCmdChecker([_FIREWALLD_BINARY.cmd, '--zone=trusted', '--remove-interface=' + veth]) diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py index f87f49b..0033c19 100644 --- a/tests/functional/networkTests.py +++ b/tests/functional/networkTests.py @@ -64,8 +64,11 @@ DHCP_RANGE_TO = '240.0.0.100' CUSTOM_PROPS = {'linux': 'rules', 'vdsm': 'as well'} -IPv6_ADDRESS = 'fdb3:84e5:4ff4:55e3::1/64' +IPv6_ADDRESS = 'fdb3:84e5:4ff4:55e3::1' +IPv6_CIDR = '64' +IPv6_ADDRESS_AND_CIDR = IPv6_ADDRESS + '/' + IPv6_CIDR IPv6_GATEWAY = 'fdb3:84e5:4ff4:55e3::ff' +DHCPv6_ADDRESS = 'fdb3:84e5:4ff4:55e3::2' dummyPool = set() DUMMY_POOL_SIZE = 5 @@ -90,11 +93,16 @@ @contextmanager -def dnsmasqDhcp(interface): +def dnsmasqDhcp(interface, family=4): """Manages the life cycle of dnsmasq as a DHCP server.""" dhcpServer = dhcp.Dnsmasq() + if family == 4: + rangeFrom, rangeTo = DHCP_RANGE_FROM, DHCP_RANGE_TO + else: + rangeFrom, rangeTo = DHCPv6_ADDRESS, DHCPv6_ADDRESS + try: - dhcpServer.start(interface, DHCP_RANGE_FROM, DHCP_RANGE_TO) + dhcpServer.start(interface, rangeFrom, rangeTo) except dhcp.DhcpError as e: raise SkipTest(e) @@ -1769,11 +1777,11 @@ nic, = nics networks = { NETWORK_NAME + '1': - {'nic': nic, 'bootproto': 'none', 'ipv6addr': IPv6_ADDRESS, - 'ipv6gateway': IPv6_GATEWAY}, + {'nic': nic, 'bootproto': 'none', 'ipv6gateway': IPv6_GATEWAY, + 'ipv6addr': IPv6_ADDRESS_AND_CIDR}, NETWORK_NAME + '2': - {'nic': nic, 'bootproto': 'none', 'ipv6addr': IPv6_ADDRESS, - 'ipv6gateway': IPv6_GATEWAY, 'ipaddr': IP_ADDRESS, + {'nic': nic, 'bootproto': 'none', 'ipv6gateway': IPv6_GATEWAY, + 'ipv6addr': IPv6_ADDRESS_AND_CIDR, 'ipaddr': IP_ADDRESS, 'gateway': IP_GATEWAY, 'netmask': prefix2netmask(int(IP_CIDR))}} for network, netdict in networks.iteritems(): @@ -1783,7 +1791,7 @@ self.assertEqual(status, SUCCESS, msg) self.assertNetworkExists(network) self.assertIn( - IPv6_ADDRESS, + IPv6_ADDRESS_AND_CIDR, self.vdsm_net.netinfo.networks[network]['ipv6addrs']) self.assertEqual( IPv6_GATEWAY, @@ -1836,14 +1844,15 @@ NOCHK) @permutations([[True], [False]]) + @permutations([[(4, IP_ADDRESS, IP_CIDR)], [(6, IPv6_ADDRESS, IPv6_CIDR)]]) @cleanupNet @RequireVethMod @ValidateRunningAsRoot - def testSetupNetworksAddDelDhcp(self, bridged): + def testSetupNetworksAddDelDhcp(self, bridged, (family, addr, cidr)): with vethIf() as (left, right): - veth.setIP(left, IP_ADDRESS, IP_CIDR) + veth.setIP(left, addr, cidr) veth.setLinkUp(left) - with dnsmasqDhcp(left): + with dnsmasqDhcp(left, family): network = {NETWORK_NAME: {'nic': right, 'bridged': bridged, 'bootproto': 'dhcp', 'blockingdhcp': True}} @@ -1853,7 +1862,8 @@ self.assertNetworkExists(NETWORK_NAME) net = self.vdsm_net.netinfo.networks[NETWORK_NAME] - self.assertEqual(net['bootproto4'], 'dhcp') + if family == 4: + self.assertEqual(net['bootproto4'], 'dhcp') if bridged: self.assertEqual(net['cfg']['BOOTPROTO'], 'dhcp') -- To view, visit http://gerrit.ovirt.org/30532 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic5d821edd54681a7a8c1013a90af61ae835baa39 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Ondřej Svoboda <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
