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 <osvoboda(a)redhat.com>
---
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 <osvoboda(a)redhat.com>