Antoni Segura Puimedon has uploaded a new change for review. Change subject: net_functional_tests: bondWithManyVlans. ......................................................................
net_functional_tests: bondWithManyVlans. This patch adds a tests for adding several vlanned networks over a bond. It also adds two methods to utils to share network information. Change-Id: Ie9da7bd407cfbd9acab5e20384bff1254c26ffc5 Signed-off-by: Antoni S. Puimedon <[email protected]> --- M tests/functional/networkTests.py M tests/functional/utils.py 2 files changed, 59 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/25/16025/1 diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py index c9392dd..5536972 100644 --- a/tests/functional/networkTests.py +++ b/tests/functional/networkTests.py @@ -46,6 +46,40 @@ @permutations([[True], [False]]) @RequireDummyMod @ValidateRunningAsRoot + def testSetupNetworksAddBondWithManyVlans(self, bridged): + VLAN_COUNT = 5 + network_names = [NETWORK_NAME + str(tag) for tag in range(VLAN_COUNT)] + with dummyIf(2) as nics: + networks = dict((vlan_net, + {'vlan': str(tag), 'bonding': BONDING_NAME, + 'bridged': bridged}) + for tag, vlan_net in enumerate(network_names)) + bondings = {BONDING_NAME: {'nics': nics}} + + with self.vdsm_net.pinger(): + status, msg = self.vdsm_net.setupNetworks(networks, bondings, + {}) + net_info = self.vdsm_net.getNetInfo() + self.assertEqual(status, SUCCESS, msg) + for vlan_net in network_names: + self.assertTrue(self.vdsm_net.networkExists(vlan_net, bridged, + net_info)) + self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics, + net_info)) + self.assertTrue(self.vdsm_net.vlanExists(BONDING_NAME + '.' + + networks[vlan_net]['vlan'], net_info)) + + with self.vdsm_net.pinger(): + for vlan_net in network_names: + status, msg = self.vdsm_net.setupNetworks({vlan_net: + {'remove': True}}, {}, {}) + self.assertEqual(status, SUCCESS, msg) + self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + + @cleanupNet + @permutations([[True], [False]]) + @RequireDummyMod + @ValidateRunningAsRoot def testSetupNetworksAddDelBondedNetwork(self, bridged): with dummyIf(2) as nics: with self.vdsm_net.pinger(): @@ -54,8 +88,11 @@ {'bonding': BONDING_NAME, 'bridged': bridged}}, {BONDING_NAME: {'nics': nics, 'options': 'mode=2'}}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + net_info = self.vdsm_net.getNetInfo() + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged, + net_info)) + self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics, + net_info)) with self.vdsm_net.pinger(): status, msg = self.vdsm_net.setupNetworks( @@ -105,8 +142,12 @@ nics=nics, opts={'bridged': bridged}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + + net_info = self.vdsm_net.getNetInfo() + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged, + net_info)) + self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics, + net_info)) status, msg = self.vdsm_net.delNetwork(NETWORK_NAME) self.assertEqual(status, SUCCESS, msg) diff --git a/tests/functional/utils.py b/tests/functional/utils.py index 557d679..c4d6fdf 100644 --- a/tests/functional/utils.py +++ b/tests/functional/utils.py @@ -153,17 +153,27 @@ result = self.vdscli.setupNetworks(networks, bonds, options) return result['status']['code'], result['status']['message'] - def networkExists(self, network_name, bridged=None): - info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) + def networkExists(self, network_name, bridged=None, info=None): + if info is None: + info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) return network_name in info.networks and \ (bridged is None or info.networks[network_name]['bridged'] == bridged) - def bondExists(self, bond_name, nics=None): - info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) + def bondExists(self, bond_name, nics=None, info=None): + if info is None: + info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) return bond_name in info.bondings and \ (not nics or set(nics) == set(info.bondings[bond_name]['slaves'])) + def vlanExists(self, vlan_name, info=None): + if info is None: + info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) + return vlan_name in info.vlans + + def getNetInfo(self): + return netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info']) + @contextmanager def pinger(self): """Keeps pinging vdsm for operations that need it""" -- To view, visit http://gerrit.ovirt.org/16025 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ie9da7bd407cfbd9acab5e20384bff1254c26ffc5 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Antoni Segura Puimedon <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
