diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py index 9fce1ef1baf..50341ac7c3c 100644 --- a/test/integration/component/test_volumes.py +++ b/test/integration/component/test_volumes.py @@ -1454,11 +1454,7 @@ class TestMigrateVolume(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - cleanup_resources(cls.api_client, cls._cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestMigrateVolume,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1470,8 +1466,7 @@ class TestMigrateVolume(cloudstackTestCase): return def tearDown(self): - cleanup_resources(self.apiclient, self.cleanup) - return + super(TestMigrateVolume,self).tearDown() @attr(tags=["advanced", "sg", "advancedsg"], required_hardware='true') def test_01_migrateVolume(self): diff --git a/test/integration/smoke/test_accounts.py b/test/integration/smoke/test_accounts.py index 43aa6bdfbef..bec615d6f5a 100644 --- a/test/integration/smoke/test_accounts.py +++ b/test/integration/smoke/test_accounts.py @@ -153,12 +153,7 @@ class TestAccounts(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestAccounts,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -167,12 +162,7 @@ class TestAccounts(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created accounts, domains etc - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestAccounts,self).tearDown() @attr( tags=[ @@ -352,12 +342,7 @@ class TestRemoveUserFromAccount(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestRemoveUserFromAccount,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -366,12 +351,7 @@ class TestRemoveUserFromAccount(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created instance, users etc - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestRemoveUserFromAccount,self).tearDown() @attr( tags=[ @@ -513,12 +493,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestNonRootAdminsPrivileges,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -527,12 +502,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created accounts - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestNonRootAdminsPrivileges,self).tearDown() @attr( tags=[ @@ -642,12 +612,7 @@ class TestServiceOfferingSiblings(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestServiceOfferingSiblings,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -656,12 +621,7 @@ class TestServiceOfferingSiblings(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created domains, accounts - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestServiceOfferingSiblings,self).tearDown() @attr( tags=[ @@ -766,12 +726,7 @@ class TestServiceOfferingHierarchy(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestServiceOfferingHierarchy,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -780,12 +735,7 @@ class TestServiceOfferingHierarchy(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created instance, volumes and snapshots - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestServiceOfferingHierarchy,self).tearDown() @attr( tags=[ @@ -908,12 +858,7 @@ class TestTemplateHierarchy(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestTemplateHierarchy,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -922,12 +867,7 @@ class TestTemplateHierarchy(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created instance, volumes and snapshots - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestTemplateHierarchy,self).tearDown() @attr(tags=["advanced", "basic", "eip", "advancedns", "sg"], required_hardware="true") def test_01_template_hierarchy(self): @@ -1064,12 +1004,7 @@ class TestAddVmToSubDomain(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Clean up, terminate the created resources - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestAddVmToSubDomain,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1078,12 +1013,7 @@ class TestAddVmToSubDomain(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created resources - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestAddVmToSubDomain,self).tearDown() @attr( tags=[ @@ -1160,12 +1090,7 @@ class TestUserDetails(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserDetails,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1174,12 +1099,7 @@ class TestUserDetails(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created network offerings - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserDetails,self).tearDown() @attr(tags=[ "role", @@ -1459,12 +1379,7 @@ class TestUserLogin(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserLogin,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1473,12 +1388,7 @@ class TestUserLogin(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created network offerings - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserLogin,self).tearDown() @attr(tags=["login", "accounts", "simulator", "advanced", "advancedns", "basic", "eip", "sg"]) @@ -1716,12 +1626,7 @@ class TestUserAPIKeys(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Cleanup resources used - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserAPIKeys,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1730,12 +1635,7 @@ class TestUserAPIKeys(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created network offerings - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestUserAPIKeys,self).tearDown() @attr(tags=[ "role", @@ -1868,13 +1768,7 @@ class TestDomainForceRemove(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Clean up, terminate the created resources - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestDomainForceRemove,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -1883,12 +1777,7 @@ class TestDomainForceRemove(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created resources - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestDomainForceRemove,self).tearDown() @attr( tags=[ @@ -2247,13 +2136,7 @@ class TestMoveUser(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - # Clean up, terminate the created resources - cleanup_resources(cls.api_client, reversed(cls._cleanup)) - except Exception as e: - - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestMoveUser,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() @@ -2284,12 +2167,7 @@ class TestMoveUser(cloudstackTestCase): return def tearDown(self): - try: - # Clean up, terminate the created resources - cleanup_resources(self.apiclient, reversed(self.cleanup)) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestMoveUser,self).tearDownClass() @attr(tags=["domains", "advanced", "advancedns", "simulator","dvs"], required_hardware="false") def test_move_user_to_accountID(self): diff --git a/test/integration/smoke/test_deploy_virtio_scsi_vm.py b/test/integration/smoke/test_deploy_virtio_scsi_vm.py index 89690977121..0bcf999882d 100644 --- a/test/integration/smoke/test_deploy_virtio_scsi_vm.py +++ b/test/integration/smoke/test_deploy_virtio_scsi_vm.py @@ -33,9 +33,6 @@ from marvin.lib.base import (Account, Host, GuestOs) -# utils - utility classes for common cleanup, external library wrappers etc -from marvin.lib.utils import cleanup_resources, get_hypervisor_type, validateList - # common - commonly used methods for all tests are listed here from marvin.lib.common import get_zone, get_domain, get_pod @@ -96,7 +93,7 @@ class TestDeployVirtioSCSIVM(cloudstackTestCase): cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests()) cls.pod = get_pod(cls.apiclient, cls.zone.id) cls.services['mode'] = cls.zone.networktype - cls.cleanup = [] + cls._cleanup = [] if cls.hypervisor.lower() not in ['kvm']: cls.hypervisorNotSupported = True return @@ -108,6 +105,7 @@ class TestDeployVirtioSCSIVM(cloudstackTestCase): hypervisor=cls.hypervisor.lower(), domainid=cls.domain.id) cls.template.download(cls.apiclient) + cls._cleanup.append(cls.template) if cls.template == FAILED: assert False, "get_template() failed to return template" @@ -120,16 +118,19 @@ class TestDeployVirtioSCSIVM(cloudstackTestCase): cls.services["account"], domainid=cls.domain.id ) + cls._cleanup.append(cls.account) cls.service_offering = ServiceOffering.create( cls.apiclient, cls.services["service_offerings"]["small"] ) + cls._cleanup.append(cls.service_offering) cls.sparse_disk_offering = DiskOffering.create( cls.apiclient, cls.services["sparse_disk_offering"] ) + cls._cleanup.append(cls.sparse_disk_offering) cls.virtual_machine = VirtualMachine.create( cls.apiclient, @@ -158,29 +159,20 @@ class TestDeployVirtioSCSIVM(cloudstackTestCase): # Start VM after password reset cls.virtual_machine.start(cls.apiclient) + cls._cleanup.append(cls.virtual_machine) - cls.cleanup = [ - cls.template, - cls.service_offering, - cls.sparse_disk_offering, - cls.account - ] @classmethod def tearDownClass(cls): - try: - cls.apiclient = super( - TestDeployVirtioSCSIVM, - cls - ).getClsTestClient().getApiClient() - # Cleanup resources used - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) + super(TestDeployVirtioSCSIVM, cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() self.dbclient = self.testClient.getDbConnection() + self.cleanup = [] + + def tearDown(self): + super(TestDeployVirtioSCSIVM, self).tearDown() def verifyVirshState(self, diskcount): host = self.vmhost.ipaddress diff --git a/test/integration/smoke/test_deploy_vms_with_varied_deploymentplanners.py b/test/integration/smoke/test_deploy_vms_with_varied_deploymentplanners.py index 62ba1a44b90..181958d74e5 100644 --- a/test/integration/smoke/test_deploy_vms_with_varied_deploymentplanners.py +++ b/test/integration/smoke/test_deploy_vms_with_varied_deploymentplanners.py @@ -19,7 +19,6 @@ from marvin.codes import FAILED from marvin.cloudstackTestCase import cloudstackTestCase from marvin.lib.base import Account, VirtualMachine, ServiceOffering, Host, Cluster from marvin.lib.common import get_zone, get_domain, get_test_template -from marvin.lib.utils import cleanup_resources from nose.plugins.attrib import attr class TestDeployVmWithVariedPlanners(cloudstackTestCase): @@ -57,9 +56,8 @@ class TestDeployVmWithVariedPlanners(cloudstackTestCase): ) cls.hosts = Host.list(cls.apiclient, type='Routing') cls.clusters = Cluster.list(cls.apiclient) - cls.cleanup = [ - cls.account - ] + cls._cleanup = [] + cls._cleanup.append(cls.account) @attr(tags=["advanced", "basic", "sg"], required_hardware="false") def test_deployvm_firstfit(self): @@ -230,7 +228,4 @@ class TestDeployVmWithVariedPlanners(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) + super(TestDeployVmWithVariedPlanners,cls).tearDownClass() diff --git a/test/integration/smoke/test_diagnostics.py b/test/integration/smoke/test_diagnostics.py index 810dbb83093..176f74b9b33 100644 --- a/test/integration/smoke/test_diagnostics.py +++ b/test/integration/smoke/test_diagnostics.py @@ -30,7 +30,6 @@ from marvin.lib.common import (get_domain, get_test_template, list_ssvms, list_routers) -from marvin.lib.utils import (cleanup_resources) from nose.plugins.attrib import attr @@ -61,16 +60,20 @@ class TestRemoteDiagnostics(cloudstackTestCase): cls.services["virtual_machine"]["zoneid"] = cls.zone.id + cls._cleanup = [] + # Create an account, network, VM and IP addresses cls.account = Account.create( cls.apiclient, cls.services["account"], domainid=cls.domain.id ) + cls._cleanup.append(cls.account) cls.service_offering = ServiceOffering.create( cls.apiclient, cls.services["service_offerings"]["tiny"] ) + cls._cleanup.append(cls.service_offering) cls.vm_1 = VirtualMachine.create( cls.apiclient, cls.services["virtual_machine"], @@ -79,27 +82,19 @@ class TestRemoteDiagnostics(cloudstackTestCase): domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id ) - cls.cleanup = [ - cls.account, - cls.service_offering - ] + cls._cleanup.append(cls.vm_1) @classmethod def tearDownClass(cls): - try: - cls.apiclient = super( - TestRemoteDiagnostics, - cls - ).getClsTestClient().getApiClient() - # Clean up, terminate the created templates - cleanup_resources(cls.apiclient, cls.cleanup) - - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) + super(TestRemoteDiagnostics,cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() self.hypervisor = self.testClient.getHypervisorInfo() + self.cleanup = [] + + def tearDown(self): + super(TestRemoteDiagnostics,self).tearDown() @attr(tags=["advanced", "advancedns", "ssh", "smoke"], required_hardware="true") def test_01_ping_in_vr_success(self): diff --git a/test/integration/smoke/test_routers.py b/test/integration/smoke/test_routers.py index f84afdb4529..3a20d64fe15 100644 --- a/test/integration/smoke/test_routers.py +++ b/test/integration/smoke/test_routers.py @@ -69,16 +69,20 @@ class TestRouterServices(cloudstackTestCase): cls.services["virtual_machine"]["zoneid"] = cls.zone.id + cls._cleanup = [] + # Create an account, network, VM and IP addresses cls.account = Account.create( cls.apiclient, cls.services["account"], domainid=cls.domain.id ) + cls._cleanup.append(cls.account) cls.service_offering = ServiceOffering.create( cls.apiclient, cls.services["service_offerings"]["tiny"] ) + cls._cleanup.append(cls.service_offering) cls.vm_1 = VirtualMachine.create( cls.apiclient, cls.services["virtual_machine"], @@ -87,30 +91,20 @@ class TestRouterServices(cloudstackTestCase): domainid=cls.account.domainid, serviceofferingid=cls.service_offering.id ) - cls.cleanup = [ - cls.account, - cls.service_offering - ] + cls._cleanup.append(cls.vm_1) return @classmethod def tearDownClass(cls): - try: - cls.apiclient = super( - TestRouterServices, - cls - ).getClsTestClient().getApiClient() - # Clean up, terminate the created templates - cleanup_resources(cls.apiclient, cls.cleanup) - - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + super(TestRouterServices, cls).tearDownClass() def setUp(self): self.apiclient = self.testClient.getApiClient() self.hypervisor = self.testClient.getHypervisorInfo() - return + self.cleanup = [] + + def tearDown(self): + super(TestRouterServices, self).tearDown() @attr(tags=["advanced", "basic", "sg", "smoke"], required_hardware="true") def test_01_router_internal_basic(self): diff --git a/test/integration/smoke/test_vpc_vpn.py b/test/integration/smoke/test_vpc_vpn.py index c119c612944..26b1daf946f 100644 --- a/test/integration/smoke/test_vpc_vpn.py +++ b/test/integration/smoke/test_vpc_vpn.py @@ -20,13 +20,9 @@ from marvin.codes import PASS, FAILED from marvin.cloudstackTestCase import cloudstackTestCase from marvin.lib.utils import (validateList, - cleanup_resources, - get_process_status, wait_until) -from marvin.lib.base import (Domain, - Account, - Configurations, +from marvin.lib.base import (Account, VPC, VpcOffering, ServiceOffering, @@ -34,14 +30,8 @@ from marvin.lib.base import (Domain, Network, PublicIPAddress, NATRule, - NetworkACL, NetworkACLList, - LoadBalancerRule, - ApplicationLoadBalancer, VirtualMachine, - Template, - FireWallRule, - StaticNATRule, Vpn, VpnCustomerGateway, VpnUser @@ -52,8 +42,7 @@ from marvin.sshClient import SshClient from marvin.lib.common import (get_zone, get_domain, - get_test_template, - list_network_offerings) + get_test_template) from nose.plugins.attrib import attr @@ -236,12 +225,16 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests()) cls.domain = get_domain(cls.apiclient) + cls._cleanup = [] + cls.compute_offering = ServiceOffering.create( cls.apiclient, cls.services["compute_offering"] ) + cls._cleanup.append(cls.compute_offering) cls.account = Account.create( cls.apiclient, services=cls.services["account"]) + cls._cleanup.append(cls.account) cls.hypervisor = testClient.getHypervisorInfo() @@ -253,7 +246,6 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): %s" % (cls.account.name, cls.account.id)) - cls.cleanup = [cls.account, cls.compute_offering] return @attr(tags=["advanced"], required_hardware="true") @@ -285,6 +277,7 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): account=self.account.name, domainid=self.domain.id ) + self.cleanup.append(vpc) except Exception as e: self.fail(e) finally: @@ -306,6 +299,7 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk, "Network failed to create") + self.cleanup.append(ntwk) self.logger.debug( "Network %s created in VPC %s" % (ntwk.id, vpc.id)) @@ -321,6 +315,7 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): hypervisor=self.hypervisor ) self.assert_(vm is not None, "VM failed to deploy") + self.cleanup.append(vm) self.assert_(vm.state == 'Running', "VM is not running") self.debug("VM %s deployed in VPC %s" % (vm.id, vpc.id)) except Exception as e: @@ -387,12 +382,15 @@ class TestVpcRemoteAccessVpn(cloudstackTestCase): @classmethod def tearDownClass(cls): + super(TestVpcRemoteAccessVpn, cls).tearDownClass() - try: - cls.logger.debug("Cleaning up resources") - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception, e: - raise Exception("Cleanup failed with %s" % e) + def setUp(self): + self.apiclient = self.testClient.getApiClient() + self.hypervisor = self.testClient.getHypervisorInfo() + self.cleanup = [] + + def tearDown(self): + super(TestVpcRemoteAccessVpn, self).tearDown() class TestVpcSite2SiteVpn(cloudstackTestCase): @@ -411,13 +409,17 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests()) cls.domain = get_domain(cls.apiclient) + cls._cleanup = [] + cls.compute_offering = ServiceOffering.create( cls.apiclient, cls.services["compute_offering"] ) + cls._cleanup.append(cls.compute_offering) cls.account = Account.create( cls.apiclient, services=cls.services["account"]) + cls._cleanup.append(cls.account) cls.hypervisor = testClient.getHypervisorInfo() @@ -428,10 +430,13 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): cls.logger.debug("Successfully created account: %s, id: \ %s" % (cls.account.name, cls.account.id)) - - cls.cleanup = [cls.account, cls.compute_offering] return + def setUp(self): + self.apiclient = self.testClient.getApiClient() + self.hypervisor = self.testClient.getHypervisorInfo() + self.cleanup = [] + def _get_ssh_client(self, virtual_machine, services, retries): """ Setup ssh client connection and return connection vm requires attributes public_ip, public_port, username, password """ @@ -547,7 +552,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc1 is not None, "VPC1 creation failed") - + self.cleanup.append(vpc1) self.logger.debug("VPC1 %s created" % vpc1.id) vpc2 = None @@ -566,7 +571,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc2 is not None, "VPC2 creation failed") - + self.cleanup.append(vpc2) self.logger.debug("VPC2 %s created" % vpc2.id) default_acl = NetworkACLList.list( @@ -589,7 +594,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk1, "Network failed to create") - + self.cleanup.append(ntwk1) self.logger.debug("Network %s created in VPC %s" % (ntwk1.id, vpc1.id)) ntwk2 = None @@ -609,7 +614,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk2, "Network failed to create") - + self.cleanup.append(ntwk2) self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) vm1 = None @@ -629,7 +634,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): finally: self.assert_(vm1 is not None, "VM failed to deploy") self.assert_(vm1.state == 'Running', "VM is not running") - + self.cleanup.append(vm1) self.logger.debug("VM %s deployed in VPC %s" % (vm1.id, vpc1.id)) vm2 = None @@ -649,7 +654,7 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): finally: self.assert_(vm2 is not None, "VM failed to deploy") self.assert_(vm2.state == 'Running', "VM is not running") - + self.cleanup.append(vm2) self.debug("VM %s deployed in VPC %s" % (vm2.id, vpc2.id)) # 4) Enable Site-to-Site VPN for VPC @@ -758,10 +763,10 @@ class TestVpcSite2SiteVpn(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception, e: - raise Exception("Cleanup failed with %s" % e) + super(TestVpcSite2SiteVpn, cls).tearDownClass() + + def tearDown(self): + super(TestVpcSite2SiteVpn, self).tearDown() class TestRVPCSite2SiteVpn(cloudstackTestCase): @@ -779,14 +784,17 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests()) cls.domain = get_domain(cls.apiclient) + cls._cleanup = [] cls.compute_offering = ServiceOffering.create( cls.apiclient, cls.services["compute_offering"] ) + cls._cleanup.append(cls.compute_offering) cls.account = Account.create( cls.apiclient, services=cls.services["account"]) + cls._cleanup.append(cls.account) cls.hypervisor = testClient.getHypervisorInfo() @@ -797,8 +805,6 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): cls.logger.debug("Successfully created account: %s, id: \ %s" % (cls.account.name, cls.account.id)) - - cls.cleanup = [cls.account, cls.compute_offering] return def _validate_vpc_offering(self, vpc_offering): @@ -901,7 +907,6 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): 'redundant_vpc_offering') self.assert_(redundant_vpc_offering is not None, "Failed to create redundant VPC Offering") - redundant_vpc_offering.update(self.apiclient, state='Enabled') # Create VPC 1 @@ -920,7 +925,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc1 is not None, "VPC1 creation failed") - + self.cleanup.append(vpc1) self.logger.debug("VPC1 %s created" % vpc1.id) # Create VPC 2 @@ -939,7 +944,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc2 is not None, "VPC2 creation failed") - + self.cleanup.append(vpc2) self.logger.debug("VPC2 %s created" % vpc2.id) default_acl = NetworkACLList.list( @@ -962,7 +967,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk1, "Network failed to create") - + self.cleanup.append(ntwk1) self.logger.debug("Network %s created in VPC %s" % (ntwk1.id, vpc1.id)) # Create network in VPC 2 @@ -982,7 +987,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk2, "Network failed to create") - + self.cleanup.append(ntwk2) self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) # Deploy a vm in network 2 @@ -1002,7 +1007,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): finally: self.assert_(vm1 is not None, "VM failed to deploy") self.assert_(vm1.state == 'Running', "VM is not running") - + self.cleanup.append(vm1) self.logger.debug("VM %s deployed in VPC %s" % (vm1.id, vpc1.id)) # Deploy a vm in network 2 @@ -1022,7 +1027,7 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): finally: self.assert_(vm2 is not None, "VM failed to deploy") self.assert_(vm2.state == 'Running', "VM is not running") - + self.cleanup.append(vm2) self.debug("VM %s deployed in VPC %s" % (vm2.id, vpc2.id)) # 4) Enable Site-to-Site VPN for VPC @@ -1130,11 +1135,15 @@ class TestRVPCSite2SiteVpn(cloudstackTestCase): @classmethod def tearDownClass(cls): - try: - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception, e: - raise Exception("Cleanup failed with %s" % e) + super(TestRVPCSite2SiteVpn, cls).tearDownClass() + def setUp(self): + self.apiclient = self.testClient.getApiClient() + self.hypervisor = self.testClient.getHypervisorInfo() + self.cleanup = [] + + def tearDown(self): + super(TestRVPCSite2SiteVpn, self).tearDown() class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): @@ -1152,13 +1161,17 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests()) cls.domain = get_domain(cls.apiclient) + cls._cleanup = [] + cls.compute_offering = ServiceOffering.create( cls.apiclient, cls.services["compute_offering"] ) + cls._cleanup.append(cls.compute_offering) cls.account = Account.create( cls.apiclient, services=cls.services["account"]) + cls._cleanup.append(cls.account) cls.hypervisor = testClient.getHypervisorInfo() @@ -1169,10 +1182,13 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): cls.logger.debug("Successfully created account: %s, id: \ %s" % (cls.account.name, cls.account.id)) - - cls.cleanup = [cls.account, cls.compute_offering] return + def setUp(self): + self.apiclient = self.testClient.getApiClient() + self.hypervisor = self.testClient.getHypervisorInfo() + self.cleanup = [] + def _get_ssh_client(self, virtual_machine, services, retries): """ Setup ssh client connection and return connection vm requires attributes public_ip, public_port, username, password """ @@ -1288,7 +1304,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc1 is not None, "VPC1 creation failed") - + self.cleanup.append(vpc1) self.logger.debug("VPC1 %s created" % vpc1.id) vpc2 = None @@ -1307,7 +1323,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): self.fail(e) finally: self.assert_(vpc2 is not None, "VPC2 creation failed") - + self.cleanup.append(vpc2) self.logger.debug("VPC2 %s created" % vpc2.id) default_acl = NetworkACLList.list( @@ -1330,7 +1346,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk1, "Network failed to create") - + self.cleanup.append(ntwk1) self.logger.debug("Network %s created in VPC %s" % (ntwk1.id, vpc1.id)) ntwk2 = None @@ -1350,7 +1366,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): self.fail(e) finally: self.assertIsNotNone(ntwk2, "Network failed to create") - + self.cleanup.append(ntwk2) self.logger.debug("Network %s created in VPC %s" % (ntwk2.id, vpc2.id)) vm1 = None @@ -1370,7 +1386,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): finally: self.assert_(vm1 is not None, "VM failed to deploy") self.assert_(vm1.state == 'Running', "VM is not running") - + self.cleanup.append(vm1) self.logger.debug("VM %s deployed in VPC %s" % (vm1.id, vpc1.id)) vm2 = None @@ -1390,7 +1406,7 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): finally: self.assert_(vm2 is not None, "VM failed to deploy") self.assert_(vm2.state == 'Running', "VM is not running") - + self.cleanup.append(vm2) self.debug("VM %s deployed in VPC %s" % (vm2.id, vpc2.id)) # default config @@ -1567,10 +1583,6 @@ class TestVPCSite2SiteVPNMultipleOptions(cloudstackTestCase): out['esplifetime'] = c['esp_life'] return out - @classmethod def tearDownClass(cls): - try: - cleanup_resources(cls.apiclient, cls.cleanup) - except Exception, e: - raise Exception("Cleanup failed with %s" % e) + super(TestVPCSite2SiteVPNMultipleOptions, cls).tearDownClass() diff --git a/test/integration/testpaths/testpath_storage_migration.py b/test/integration/testpaths/testpath_storage_migration.py index 848594daf67..d696f24485a 100644 --- a/test/integration/testpaths/testpath_storage_migration.py +++ b/test/integration/testpaths/testpath_storage_migration.py @@ -324,7 +324,7 @@ class TestStorageMigration(cloudstackTestCase): @classmethod def tearDownClass(cls): try: - cleanup_resources(cls.apiclient, cls._cleanup) + cleanup_resources(cls.apiclient, reversed(cls._cleanup)) except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) @@ -335,13 +335,9 @@ class TestStorageMigration(cloudstackTestCase): self.cleanup = [] def tearDown(self): - try: - for storagePool in self.pools: - StoragePool.update(self.apiclient, id=storagePool.id, tags="") - cleanup_resources(self.apiclient, self.cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return + for storagePool in self.pools: + StoragePool.update(self.apiclient, id=storagePool.id, tags="") + super(TestStorageMigration,self).tearDown() @attr(tags=["advanced", "basic"], required_hardware="true") def test_01_migrate_root_and_data_disk_nonlive(self): diff --git a/tools/marvin/marvin/cloudstackTestCase.py b/tools/marvin/marvin/cloudstackTestCase.py index 2939d129327..4a57ae2fb72 100644 --- a/tools/marvin/marvin/cloudstackTestCase.py +++ b/tools/marvin/marvin/cloudstackTestCase.py @@ -16,7 +16,7 @@ # under the License. import unittest -from marvin.lib.utils import verifyElementInList +from marvin.lib.utils import verifyElementInList, cleanup_resources from marvin.codes import PASS @@ -56,3 +56,22 @@ class cloudstackTestCase(unittest.case.TestCase): @classmethod def getClsConfig(cls): return cls.config + + @classmethod + def tearDownClass(cls): + try: + if hasattr(cls,'_cleanup'): + if hasattr(cls,'apiclient'): + cleanup_resources(cls.apiclient, reversed(cls._cleanup)) + elif hasattr(cls,'api_client'): + cleanup_resources(cls.api_client, reversed(cls._cleanup)) + except Exception as e: + raise Exception("Warning: Exception during cleanup : %s" % e) + + def tearDown(self): + try: + if hasattr(self,'apiclient') and hasattr(self,'cleanup'): + cleanup_resources(self.apiclient, reversed(self.cleanup)) + except Exception as e: + raise Exception("Warning: Exception during cleanup : %s" % e) + return