Giuseppe Vallarelli has uploaded a new change for review. Change subject: tests: setupNetworks compatibility bond and nic. ......................................................................
tests: setupNetworks compatibility bond and nic. Added four functional tests, testing setupNetworks compatibility for nics and bonds bridged and bridgeless: * testSetupNetworksNetCompatibilityBondSingleBridge * testSetupNetworksNetCompatibilityBondSingleBridgeless * testSetupNetworksNetCompatibilityNicSingleBridge * testSetupNetworksNetCompatibilityNicSingleBridgeless Change-Id: If4a497d82723937dbecd14d42fc2c176c4c05bd2 Signed-off-by: Giuseppe Vallarelli <[email protected]> --- M tests/functional/networkTests.py 1 file changed, 265 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/21/17621/1 diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py index ab0560f..7192a65 100644 --- a/tests/functional/networkTests.py +++ b/tests/functional/networkTests.py @@ -264,3 +264,268 @@ status, msg = self.vdsm_net.delNetwork(NETWORK_NAME) self.assertEqual(status, SUCCESS, msg) + + @RequireDummyMod + @ValidateRunningAsRoot + def testSetupNetworksNetCompatibilityBondSingleBridge(self): + with dummyIf(1) as nics: + with self.vdsm_net.pinger(): + # Only single non-VLANed bridged network allowed + d = dict(bonding=BONDING_NAME, bridged=True) + status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: d}, + {BONDING_NAME: + dict(nics=nics)}, + {}) + self.assertEqual(status, SUCCESS, msg) + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, + bridged=True)) + + # Try to add additional bridgeless network, should fail + netNameBridgeless = NETWORK_NAME + '-2' + d['bridged'] = False + status, msg = self.vdsm_net.setupNetworks({netNameBridgeless: + d}, {}, {}) + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional bridged network, should fail + netNameBridged = NETWORK_NAME + '-3' + d['bridged'] = True + status, msg = self.vdsm_net.setupNetworks({netNameBridged: d}, + {}, {}) + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridgeless network, should fail + netNameVlanBridgeless = NETWORK_NAME + '-4' + networks = dict(netNameVlanBridgeless={'bonding': BONDING_NAME, + 'vlan': '100', + 'bridged': False}) + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridged network, should fail + netNameVlanBridged = NETWORK_NAME + '-5' + networks['vlan'] = '200' + networks['bridged'] = 'False' + status, msg = self.vdsm_net.setupNetworks({netNameVlanBridged: + networks}, {}, {}) + self.assertTrue(status != SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists( + netNameBridgeless)) + self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridged)) + + # Clean all + status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: + dict(remove=True)}, + {BONDING_NAME: + dict(remove=True)}, + {}) + self.assertEquals(status, SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.assertFalse(self.vdsm_net.bondExists( + BONDING_NAME, nics=nics)) + + @RequireDummyMod + @ValidateRunningAsRoot + def testSetupNetworksNetCompatibilityBondSingleBridgeless(self): + with dummyIf(1) as nics: + with self.vdsm_net.pinger(): + # Multiple VLANed networks (bridged/bridgeless) with only one + # non-VLANed bridgeless network permited + d = dict(bonding=BONDING_NAME, bridged=False) + status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: d}, + {BONDING_NAME: + dict(nics=nics)}, + {}) + self.assertEqual(status, SUCCESS, msg) + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, + bridged=False)) + + # Try to add additional bridgeless network, should fail + netNameBridgeless = NETWORK_NAME + '-2' + status, msg = self.vdsm_net.setupNetworks({netNameBridgeless: + d}, {}, {}) + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional bridged network, should fail + netNameBridged = NETWORK_NAME + '-3' + d['bridged'] = True + status, msg = self.vdsm_net.setupNetworks({netNameBridged: d}, + {}, {}) + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridgeless network, + # should succeed + netNameVlanBridgeless = NETWORK_NAME + '-4' + d['vlan'], d['bridged'] = '100', False + networks = {netNameVlanBridgeless: d} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEqual(status, SUCCESS, msg) + + # Try to add additional VLANed bridged network, should succeed + netNameVlanBridged = NETWORK_NAME + '-5' + d['vlan'], d['bridged'] = '200', True + status, msg = self.vdsm_net.setupNetworks({netNameVlanBridged: + d}, {}, {}) + self.assertEqual(status, SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists( + netNameBridgeless)) + self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) + + self.assertTrue(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertTrue(self.vdsm_net.networkExists( + netNameVlanBridged)) + + # Clean all + r = dict(remove=True) + networks = {NETWORK_NAME: r, + netNameVlanBridgeless: r, + netNameVlanBridged: r} + status, msg = self.vdsm_net.setupNetworks(networks, + {BONDING_NAME: r}, + {}) + + self.assertEquals(status, SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridged)) + self.assertFalse(self.vdsm_net.bondExists(BONDING_NAME, nics)) + + @RequireDummyMod + @ValidateRunningAsRoot + def testSetupNetworksNetCompatibilityNicSingleBridge(self): + with dummyIf(1) as nics: + nic, = nics + with self.vdsm_net.pinger(): + # Only single non-VLANed bridged network allowed + networks = {NETWORK_NAME: dict(nic=nic, bridged=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEquals(status, SUCCESS, msg) + self.assertTrue(self.vdsm_net.networkExists( + NETWORK_NAME, bridged=True)) + + # Try to add additional bridgeless network, should fail + netNameBridgeless = NETWORK_NAME + '-2' + networks = {netNameBridgeless: dict(nic=nic, bridged=False)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional bridged network, should fail + netNameBridged = NETWORK_NAME + '-3' + networks = {netNameBridged: dict(nic=nic, bridged=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridgeless network, should fail + netNameVlanBridgeless = NETWORK_NAME + '-4' + networks = {netNameVlanBridgeless: dict(nic=nic, vlan='100', + bridged=False)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridged network, should fail + netNameVlanBridged = NETWORK_NAME + '-5' + networks = {netNameVlanBridged: dict(nic=nic, vlan='200', + bridged=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists( + netNameBridgeless)) + self.assertFalse(self.vdsm_net.networkExists( + netNameBridged, bridged=True)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertFalse(self.vdsm_net.networkExists( + netNameBridged, bridged=True)) + + # Clean all + status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: + dict(remove=True)}, + {}, {}) + self.assertEquals(status, SUCCESS, msg) + self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + + @RequireDummyMod + @ValidateRunningAsRoot + def testSetupNetworksNetCompatibilityNicSingleBridgeless(self): + with dummyIf(1) as nics: + nic, = nics + with self.vdsm_net.pinger(): + # Multiple VLANed networks (bridged/bridgeless) with only one + # non-VLANed bridgeless network permited + networks = {NETWORK_NAME: dict(nic=nic, bridged=False)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEquals(status, SUCCESS, msg) + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, + bridged=False)) + + # Try to add additional bridgeless network, should fail + netNameBridgeless = NETWORK_NAME + '-2' + networks = {netNameBridgeless: dict(nic=nic, bridged=False)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional bridged network, should fail + netNameBridged = NETWORK_NAME + '-3' + networks = {netNameBridged: dict(nic=nic, bridged=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertTrue(status != SUCCESS, msg) + + # Try to add additional VLANed bridgeless network, + # should succeed + netNameVlanBridgeless = NETWORK_NAME + '-4' + networks = {netNameVlanBridgeless: dict(nic=nic, vlan='100', + bridged=False)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEquals(status, SUCCESS, msg) + + # Try to add additional VLANed bridged network, should succeed + netNameVlanBridged = NETWORK_NAME + '-5' + networks = {netNameVlanBridged: dict(nic=nic, vlan='200', + bridged=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEquals(status, SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists( + netNameBridgeless)) + self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) + self.assertTrue(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertTrue(self.vdsm_net.networkExists(netNameVlanBridged, + bridged=True)) + + # Clean all + networks = {NETWORK_NAME: dict(remove=True), + netNameVlanBridgeless: dict(remove=True), + netNameVlanBridged: dict(remove=True)} + status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) + + self.assertEqual(status, SUCCESS, msg) + + self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridgeless)) + self.assertFalse(self.vdsm_net.networkExists( + netNameVlanBridged, bridged=True)) -- To view, visit http://gerrit.ovirt.org/17621 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If4a497d82723937dbecd14d42fc2c176c4c05bd2 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Giuseppe Vallarelli <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
