From 5d03fa83a23fa79599401ebd289d0e09a1f66d28 Mon Sep 17 00:00:00 2001 From: Gaurav Aradhye Date: Mon, 23 Dec 2013 17:56:14 +0530 Subject: [PATCH] CLOUDSTACK-5518: Fixing non contiguous vlan test case --- .../component/test_non_contiguous_vlan.py | 118 +++++------------- 1 file changed, 32 insertions(+), 86 deletions(-) diff --git a/test/integration/component/test_non_contiguous_vlan.py b/test/integration/component/test_non_contiguous_vlan.py index 5ef1ec738d2..35afeaa8cb9 100644 --- a/test/integration/component/test_non_contiguous_vlan.py +++ b/test/integration/component/test_non_contiguous_vlan.py @@ -25,12 +25,21 @@ """ #Import local modules -from marvin.cloudstackTestCase import * -from marvin.cloudstackAPI import * -from marvin.cloudstackTestCase import cloudstackTestCase -from marvin.integration.lib.base import Account -from marvin.integration.lib.base import PhysicalNetwork -from marvin.integration.lib.common import * + + +from marvin.cloudstackTestCase import (cloudstackTestCase,unittest) +from marvin.integration.lib.base import (Account, + ServiceOffering, + PhysicalNetwork, + VirtualMachine, + ) +from marvin.integration.lib.common import (get_zone, + get_pod, + get_domain, + get_template) +from marvin.integration.lib.utils import (cleanup_resources, + xsplit) + from nose.plugins.attrib import attr class Services(): @@ -330,12 +339,9 @@ class TestNonContiguousVLANRanges(cloudstackTestCase): vlan1 = self.existingvlan+","+self.vlan["partial_range"][0] self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1) - vlan2 = vlan1+","+self.vlan["partial_range"][1] - self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan2) + self.debug("Removing vlan : %s" % self.vlan["partial_range"][0]) - self.debug("Removing vlan : %s" % self.vlan["partial_range"][1]) - - self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1) + self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = self.existingvlan) physicalnetworks = PhysicalNetwork.list(self.apiclient, id=self.physicalnetworkid) @@ -346,7 +352,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase): vlanranges= physicalnetworks[0].vlan - self.assert_(vlanranges.find(self.vlan["partial_range"][1]) == -1, "vlan range is not removed") + self.assert_(vlanranges.find(self.vlan["partial_range"][0]) == -1, "vlan range is not removed") return @@ -355,92 +361,32 @@ class TestNonContiguousVLANRanges(cloudstackTestCase): """ Test removing used vlan range """ - # 1. If vlan id from existing range is in use, try to delete this range and add different range, - # this operation should fail - # 2. If any of existing vlan id is not in use, delete this range and add new vlan range - # 3. Use a vlan id from this new range by deploying an instance which + # 1. Use a vlan id from existing range by deploying an instance which # will create a network with vlan id from this range # 4. Now try to remove this vlan range # 5. Vlan range should not get removed, should throw error - vlans = xsplit(self.existingvlan, ['-', ',']) - vlanstartid = int(vlans[0]) - vlanendid = int(vlans[1]) - - networks = list_networks(self.apiclient) - existingvlaninuse = False - - - # Check if any of the vlan id from existing range is in use - if isinstance(networks,list) and len(networks) > 0: - - self.debug("networks: %s" % networks) - - vlansinuse = [network for network in networks if network.vlan and (vlanstartid <= int(network.vlan) <= vlanendid)] - - self.debug("Total no. of vlans in use : %s" % len(vlansinuse)) - - if len(vlansinuse) > 0: - existingvlaninuse = True - else: - existingvlaninuse = False - - vlan1 = self.vlan["partial_range"][0] - - # If existing vlan id is in use, then try to delete this range, the operation should fail - # This serves the test case purpose, hence test case has completed successfully - if existingvlaninuse: - self.debug("Trying to remove existing vlan in use, This should fail") - with self.assertRaises(Exception) as e: - self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1) - - self.debug("operation failed with exception: %s" % e.exception) - - # If any of the existing vlan id is not in use, then add new range and deploy an instance which - # will create a network using vlan id from this new range, hence now the new range is in use - # Now try to delete this new range and add another range, operation should fail - # This serves the test case purpose, hence test case has completed successfully - else: - - self.debug("No vlan in use, hence adding a new vlan and using it by deploying an instance") - - self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1) - - self.debug("Verifying the VLAN of the updated physical network: %s, It should match with \ - the passed vlan: %s" % (self.physicalnetworkid,vlan1)) - - self.validatePhysicalNetworkVlan(self.physicalnetworkid, vlan1) - - account = Account.create( - self.apiclient, - self.services["account"], - domainid=self.domain.id - ) - - self.debug("Deploying instance in the account: %s" % - account.name) - - self.virtual_machine = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=account.name, - domainid=account.domainid, - serviceofferingid=self.service_offering.id, - mode=self.zone.networktype - ) - - self.debug("Deployed instance in account: %s" % - account.name) + account = Account.create(self.apiclient,self.services["account"], + domainid=self.domain.id) + self.debug("Deploying instance in the account: %s" % account.name) + try: + self.virtual_machine = VirtualMachine.create(self.apiclient,self.services["virtual_machine"], + accountid=account.name,domainid=account.domainid, + serviceofferingid=self.service_offering.id, + mode=self.zone.networktype) + self.debug("Deployed instance in account: %s" % account.name) self.debug("Trying to remove vlan range : %s , This should fail" % self.vlan["partial_range"][0]) with self.assertRaises(Exception) as e: - self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = self.existingvlan) + self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = self.vlan["partial_range"][0]) self.debug("operation failed with exception: %s" % e.exception) - account.delete(self.apiclient) + except Exception as e: + self.fail("Exception in test case: %s" % e) + return