mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-6887: Fixing account cleanup issue across multiple test cases
This commit is contained in:
parent
0c28f36ff1
commit
59a98839ce
|
|
@ -924,22 +924,25 @@ class TestUpdateVirtualMachineNIC(cloudstackTestCase):
|
|||
# Create Accounts & networks
|
||||
cls.services["isolated_network"]["zoneid"] = cls.zone.id
|
||||
cls.services["shared_network"]["zoneid"] = cls.zone.id
|
||||
cls._cleanup = []
|
||||
|
||||
cls.account = Account.create(cls.api_client,cls.services["account"],domainid = cls.domain.id)
|
||||
cls._cleanup.append(cls.account)
|
||||
|
||||
cls.service_offering = ServiceOffering.create(cls.api_client,cls.services["service_offering"])
|
||||
cls._cleanup.append(cls.service_offering)
|
||||
|
||||
cls.virtual_machine = VirtualMachine.create(cls.api_client,cls.services["virtual_machine"],
|
||||
accountid=cls.account.name,domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
mode=cls.zone.networktype)
|
||||
# Create Shared Network Offering
|
||||
cls.isolated_network_offering = NetworkOffering.create(cls.api_client,cls.services["isolated_network_offering"],)
|
||||
cls.isolated_network_offering = NetworkOffering.create(cls.api_client,cls.services["isolated_network_offering"])
|
||||
cls._cleanup.append(cls.isolated_network_offering)
|
||||
# Enable Isolated Network offering
|
||||
cls.isolated_network_offering.update(cls.api_client, state='Enabled')
|
||||
cls.isolated_network = Network.create(cls.api_client,cls.services["isolated_network"],cls.account.name,
|
||||
cls.account.domainid,networkofferingid=cls.isolated_network_offering.id)
|
||||
cls._cleanup = [cls.account,cls.service_offering,cls.isolated_network_offering,]
|
||||
return
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
|||
|
|
@ -1849,59 +1849,88 @@ class TestVPCNetworkOperations(cloudstackTestCase):
|
|||
# 3. Restart/delete VPC network
|
||||
|
||||
# Validations
|
||||
# 1. In case of Restart operation, restart should be successful and persistent networks should be back in persistent state
|
||||
# 2. In case of Delete operation, VR servicing the VPC should get destroyed and sourceNAT ip should get released
|
||||
# 1. In case of Restart operation, restart should be successful
|
||||
# and persistent networks should be back in persistent state
|
||||
# 2. In case of Delete operation, VR servicing the VPC should
|
||||
# get destroyed and sourceNAT ip should get released
|
||||
|
||||
child_domain = Domain.create(self.apiclient,services=self.services["domain"],
|
||||
child_domain = Domain.create(self.apiclient,
|
||||
services=self.services["domain"],
|
||||
parentdomainid=self.domain.id)
|
||||
|
||||
account_1 = Account.create(self.apiclient,self.services["account"],domainid=child_domain.id)
|
||||
account_2 = Account.create(self.apiclient,self.services["account"],domainid=child_domain.id)
|
||||
try:
|
||||
account_1 = Account.create(
|
||||
self.apiclient,self.services["account"],
|
||||
domainid=child_domain.id
|
||||
)
|
||||
account_2 = Account.create(
|
||||
self.apiclient,self.services["account"],
|
||||
domainid=child_domain.id
|
||||
)
|
||||
|
||||
self.services["vpc"]["cidr"] = "10.1.1.1/16"
|
||||
vpc_1 = VPC.create(self.apiclient, self.services["vpc"],
|
||||
self.services["vpc"]["cidr"] = "10.1.1.1/16"
|
||||
vpc_1 = VPC.create(self.apiclient, self.services["vpc"],
|
||||
vpcofferingid=self.vpc_off.id, zoneid=self.zone.id,
|
||||
account=account_1.name, domainid=account_1.domainid)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc_1.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS, "VPC list validation failed, vpc list is %s" % vpcs)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc_1.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS,\
|
||||
"VPC list validation failed, vpc list is %s" % vpcs)
|
||||
|
||||
vpc_2 = VPC.create(self.apiclient, self.services["vpc"],
|
||||
vpc_2 = VPC.create(self.apiclient, self.services["vpc"],
|
||||
vpcofferingid=self.vpc_off.id, zoneid=self.zone.id,
|
||||
account=account_2.name, domainid=account_2.domainid)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc_2.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS, "VPC list validation failed, vpc list is %s" % vpcs)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc_2.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS,\
|
||||
"VPC list validation failed, vpc list is %s" % vpcs)
|
||||
|
||||
persistent_network_1 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_NoLB.id,
|
||||
accountid=account_1.name,domainid=account_1.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc_1.id, gateway="10.1.1.1", netmask="255.255.255.0")
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_1.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
persistent_network_1 = Network.create(
|
||||
self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_NoLB.id,
|
||||
accountid=account_1.name,domainid=account_1.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc_1.id, gateway="10.1.1.1",
|
||||
netmask="255.255.255.0")
|
||||
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
self.fail(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_1.vlan, "vlan must not be null for persistent network %s" % persistent_network_1.id)
|
||||
response = verifyNetworkState(self.apiclient,
|
||||
persistent_network_1.id,
|
||||
"implemented"
|
||||
)
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
|
||||
persistent_network_2 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_NoLB.id,
|
||||
accountid=account_2.name,domainid=account_2.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc_2.id, gateway="10.1.1.1", netmask="255.255.255.0")
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_2.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
raise Exception(exceptionMessage)
|
||||
self.assertIsNotNone(
|
||||
persistent_network_1.vlan,\
|
||||
"vlan must not be null for persistent network %s" %\
|
||||
persistent_network_1.id)
|
||||
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
self.fail(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_2.vlan, "vlan must not be null for persistent network: %s" % persistent_network_2.id)
|
||||
persistent_network_2 = Network.create(
|
||||
self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_NoLB.id,
|
||||
accountid=account_2.name,domainid=account_2.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc_2.id, gateway="10.1.1.1",
|
||||
netmask="255.255.255.0")
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_2.id,
|
||||
"implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
|
||||
# Force delete domain
|
||||
try:
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
raise Exception(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_2.vlan,\
|
||||
"vlan must not be null for persistent network: %s" %\
|
||||
persistent_network_2.id)
|
||||
|
||||
# Force delete domain
|
||||
child_domain.delete(self.apiclient, cleanup=True)
|
||||
|
||||
except Exception as e:
|
||||
self.fail("Failed to delete domain: %s" % e)
|
||||
self.cleanup.append(account_1)
|
||||
self.cleanup.append(account_2)
|
||||
self.cleanup.append(child_domain)
|
||||
self.fail(e)
|
||||
|
||||
self.debug("Waiting for account.cleanup.interval" +
|
||||
" to cleanup any remaining resouces")
|
||||
|
|
@ -1909,11 +1938,17 @@ class TestVPCNetworkOperations(cloudstackTestCase):
|
|||
wait_for_cleanup(self.apiclient, ["account.cleanup.interval"]*3)
|
||||
self.VerifyDomainCleanup(child_domain.id)
|
||||
|
||||
with self.assertRaises(Exception) as e:
|
||||
Account.list(self.apiclient,name=account_1.name, domainid=account_1.domainid,listall=True)
|
||||
with self.assertRaises(Exception):
|
||||
Account.list(
|
||||
self.apiclient,name=account_1.name,
|
||||
domainid=account_1.domainid,listall=True
|
||||
)
|
||||
|
||||
with self.assertRaises(Exception) as e:
|
||||
Account.list(self.apiclient,name=account_2.name, domainid=account_2.domainid,listall=True)
|
||||
with self.assertRaises(Exception):
|
||||
Account.list(
|
||||
self.apiclient,name=account_2.name,
|
||||
domainid=account_2.domainid,listall=True
|
||||
)
|
||||
|
||||
self.VerifyVpcCleanup(vpc_1.id)
|
||||
self.VerifyVpcCleanup(vpc_2.id)
|
||||
|
|
@ -1932,46 +1967,46 @@ class TestVPCNetworkOperations(cloudstackTestCase):
|
|||
# 1. In case of Restart operation, restart should be successful and persistent networks should be back in persistent state
|
||||
# 2. In case of Delete operation, VR servicing the VPC should get destroyed and sourceNAT ip should get released
|
||||
|
||||
# Create Account
|
||||
account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id)
|
||||
try:
|
||||
# Create Account
|
||||
account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id)
|
||||
|
||||
# Create VPC
|
||||
self.services["vpc"]["cidr"] = "10.1.1.1/16"
|
||||
vpc = VPC.create(self.apiclient, self.services["vpc"],
|
||||
# Create VPC
|
||||
self.services["vpc"]["cidr"] = "10.1.1.1/16"
|
||||
vpc = VPC.create(self.apiclient, self.services["vpc"],
|
||||
vpcofferingid=self.vpc_off.id, zoneid=self.zone.id,
|
||||
account=account.name, domainid=account.domainid)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS, "VPC list validation failed, vpc list is %s" % vpcs)
|
||||
vpcs = VPC.list(self.apiclient, id=vpc.id)
|
||||
self.assertEqual(validateList(vpcs)[0], PASS, "VPC list validation failed, vpc list is %s" % vpcs)
|
||||
|
||||
# Create Persistent Networks as tiers of VPC
|
||||
persistent_network_1 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
# Create Persistent Networks as tiers of VPC
|
||||
persistent_network_1 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_NoLB.id,
|
||||
accountid=account.name,domainid=account.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc.id, gateway="10.1.1.1", netmask="255.255.255.0")
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_1.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_1.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
self.fail(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_1.vlan, "vlan must not be null for persistent network %s" % persistent_network_1.id)
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
raise Exception(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_1.vlan, "vlan must not be null for persistent network %s" % persistent_network_1.id)
|
||||
|
||||
persistent_network_2 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
persistent_network_2 = Network.create(self.api_client,self.services["isolated_network"],
|
||||
networkofferingid=self.persistent_network_offering_LB.id,
|
||||
accountid=account.name,domainid=account.domainid,
|
||||
zoneid=self.zone.id, vpcid=vpc.id, gateway="10.1.2.1", netmask="255.255.255.0")
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_2.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
response = verifyNetworkState(self.apiclient, persistent_network_2.id, "implemented")
|
||||
exceptionOccured = response[0]
|
||||
isNetworkInDesiredState = response[1]
|
||||
exceptionMessage = response[2]
|
||||
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
self.fail(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_2.vlan, "vlan must not be null for persistent network: %s" % persistent_network_2.id)
|
||||
if (exceptionOccured or (not isNetworkInDesiredState)):
|
||||
raise Exception(exceptionMessage)
|
||||
self.assertIsNotNone(persistent_network_2.vlan, "vlan must not be null for persistent network: %s" % persistent_network_2.id)
|
||||
|
||||
# Deploy VMs in above networks (VM1, VM2 in network1 and VM3, VM4 in network2)
|
||||
try:
|
||||
# Deploy VMs in above networks (VM1, VM2 in network1 and VM3, VM4 in network2)
|
||||
virtual_machine_1 = VirtualMachine.create(self.apiclient,self.services["virtual_machine"],
|
||||
networkids=[persistent_network_1.id],serviceofferingid=self.service_offering.id,
|
||||
accountid=account.name,domainid=self.domain.id)
|
||||
|
|
@ -1987,38 +2022,39 @@ class TestVPCNetworkOperations(cloudstackTestCase):
|
|||
virtual_machine_4 = VirtualMachine.create(self.apiclient,self.services["virtual_machine"],
|
||||
networkids=[persistent_network_2.id],serviceofferingid=self.service_offering.id,
|
||||
accountid=account.name,domainid=self.domain.id)
|
||||
except Exception as e:
|
||||
self.fail("vm creation failed: %s" % e)
|
||||
|
||||
# Associate IP addresses to persistent networks
|
||||
ipaddress_1 = self.GetAssociatedIpForNetwork(persistent_network_1.id, vpcid=vpc.id, account=account)
|
||||
ipaddress_2 = self.GetAssociatedIpForNetwork(persistent_network_1.id, vpcid=vpc.id, account=account)
|
||||
ipaddress_3 = self.GetAssociatedIpForNetwork(persistent_network_2.id, vpcid=vpc.id, account=account)
|
||||
# Associate IP addresses to persistent networks
|
||||
ipaddress_1 = self.GetAssociatedIpForNetwork(persistent_network_1.id, vpcid=vpc.id, account=account)
|
||||
ipaddress_2 = self.GetAssociatedIpForNetwork(persistent_network_1.id, vpcid=vpc.id, account=account)
|
||||
ipaddress_3 = self.GetAssociatedIpForNetwork(persistent_network_2.id, vpcid=vpc.id, account=account)
|
||||
|
||||
# Create NAT rule for VM 1
|
||||
NATRule.create(self.api_client, virtual_machine_1,
|
||||
# Create NAT rule for VM 1
|
||||
NATRule.create(self.api_client, virtual_machine_1,
|
||||
self.services["natrule"],ipaddressid=ipaddress_1.ipaddress.id,
|
||||
networkid=persistent_network_1.id)
|
||||
|
||||
# Create Static NAT rule for VM 2
|
||||
StaticNATRule.enable(self.apiclient, ipaddressid=ipaddress_2.ipaddress.id,
|
||||
# Create Static NAT rule for VM 2
|
||||
StaticNATRule.enable(self.apiclient, ipaddressid=ipaddress_2.ipaddress.id,
|
||||
virtualmachineid=virtual_machine_2.id,
|
||||
networkid=persistent_network_1.id)
|
||||
|
||||
# Create load balancer rule for ipaddress3 and assign to VM3 and VM4
|
||||
lb_rule = LoadBalancerRule.create(self.apiclient,self.services["lbrule"],
|
||||
# Create load balancer rule for ipaddress3 and assign to VM3 and VM4
|
||||
lb_rule = LoadBalancerRule.create(self.apiclient,self.services["lbrule"],
|
||||
ipaddressid=ipaddress_3.ipaddress.id, accountid=account.name,
|
||||
networkid=persistent_network_2.id, domainid=account.domainid)
|
||||
lb_rule.assign(self.api_client, [virtual_machine_3, virtual_machine_4])
|
||||
lb_rule.assign(self.api_client, [virtual_machine_3, virtual_machine_4])
|
||||
|
||||
# Create network ACL for both ther persistent networks (tiers of VPC)
|
||||
ingressAclNetwork1, egressAclNetwork1 = self.CreateIngressEgressNetworkACLForNetwork(persistent_network_1.id)
|
||||
ingressAclNetwork2, egressAclNetwork2 = self.CreateIngressEgressNetworkACLForNetwork(persistent_network_2.id)
|
||||
# Create network ACL for both ther persistent networks (tiers of VPC)
|
||||
ingressAclNetwork1, egressAclNetwork1 = self.CreateIngressEgressNetworkACLForNetwork(persistent_network_1.id)
|
||||
ingressAclNetwork2, egressAclNetwork2 = self.CreateIngressEgressNetworkACLForNetwork(persistent_network_2.id)
|
||||
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_1, ipaddress_1.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_2, ipaddress_2.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_3, ipaddress_3.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_4, ipaddress_3.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_1, ipaddress_1.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_2, ipaddress_2.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_3, ipaddress_3.ipaddress.ipaddress)
|
||||
self.CheckIngressEgressConnectivityofVM(virtual_machine_4, ipaddress_3.ipaddress.ipaddress)
|
||||
except Exception as e:
|
||||
self.cleanup.append(account)
|
||||
self.fail(e)
|
||||
|
||||
# Delete account
|
||||
account.delete(self.apiclient)
|
||||
|
|
|
|||
|
|
@ -1474,6 +1474,7 @@ class TestProjectSuspendActivate(cloudstackTestCase):
|
|||
cls._cleanup = [
|
||||
cls.project,
|
||||
cls.account,
|
||||
cls.user,
|
||||
cls.disk_offering,
|
||||
cls.service_offering
|
||||
]
|
||||
|
|
|
|||
|
|
@ -16,13 +16,22 @@
|
|||
# under the License.
|
||||
|
||||
from nose.plugins.attrib import attr
|
||||
from marvin.cloudstackTestCase import *
|
||||
from marvin.cloudstackAPI import *
|
||||
from marvin.lib.utils import *
|
||||
from marvin.lib.base import *
|
||||
from marvin.lib.common import *
|
||||
from marvin.lib.utils import is_snapshot_on_nfs
|
||||
|
||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
||||
#from marvin.cloudstackAPI import *
|
||||
from marvin.lib.utils import (
|
||||
is_snapshot_on_nfs,
|
||||
cleanup_resources)
|
||||
from marvin.lib.base import (Account,
|
||||
Snapshot,
|
||||
ServiceOffering,
|
||||
VirtualMachine)
|
||||
from marvin.lib.common import (get_domain,
|
||||
get_zone,
|
||||
get_template,
|
||||
list_volumes,
|
||||
list_accounts,
|
||||
list_snapshots,
|
||||
wait_for_cleanup)
|
||||
|
||||
class Services:
|
||||
"""Test Snapshots Services
|
||||
|
|
@ -177,7 +186,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
|
|||
volume = volumes[0]
|
||||
|
||||
# Create a snapshot from the ROOTDISK
|
||||
cls.snapshot = Snapshot.create(cls.api_client, volumes[0].id)
|
||||
cls.snapshot = Snapshot.create(cls.api_client, volume.id)
|
||||
except Exception, e:
|
||||
cls.tearDownClass()
|
||||
unittest.SkipTest("setupClass fails for %s" % cls.__name__)
|
||||
|
|
@ -223,70 +232,50 @@ class TestAccountSnapshotClean(cloudstackTestCase):
|
|||
# b) snapshot image($snapshot_id) should be deleted from the
|
||||
# /secondary/snapshots/$accountid/$volumeid/
|
||||
|
||||
accounts = list_accounts(
|
||||
try:
|
||||
accounts = list_accounts(
|
||||
self.apiclient,
|
||||
id=self.account.id
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(accounts, list),
|
||||
True,
|
||||
"Check list response returns a valid list"
|
||||
)
|
||||
self.assertNotEqual(
|
||||
self.assertNotEqual(
|
||||
len(accounts),
|
||||
0,
|
||||
"Check list Accounts response"
|
||||
)
|
||||
|
||||
# VM should be in 'Running' state
|
||||
virtual_machines = list_virtual_machines(
|
||||
self.apiclient,
|
||||
id=self.virtual_machine.id
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(virtual_machines, list),
|
||||
True,
|
||||
"Check list response returns a valid list"
|
||||
)
|
||||
self.assertNotEqual(
|
||||
len(virtual_machines),
|
||||
0,
|
||||
"Check list virtual machines response"
|
||||
)
|
||||
for virtual_machine in virtual_machines:
|
||||
self.debug("VM ID: %s, VM state: %s" % (
|
||||
virtual_machine.id,
|
||||
virtual_machine.state
|
||||
))
|
||||
self.assertEqual(
|
||||
virtual_machine.state,
|
||||
'Running',
|
||||
"Check list VM response for Running state"
|
||||
)
|
||||
|
||||
# Verify the snapshot was created or not
|
||||
snapshots = list_snapshots(
|
||||
# Verify the snapshot was created or not
|
||||
snapshots = list_snapshots(
|
||||
self.apiclient,
|
||||
id=self.snapshot.id
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(snapshots, list),
|
||||
True,
|
||||
"Check list response returns a valid list"
|
||||
)
|
||||
self.assertNotEqual(
|
||||
self.assertNotEqual(
|
||||
snapshots,
|
||||
None,
|
||||
"No such snapshot %s found" % self.snapshot.id
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
snapshots[0].id,
|
||||
self.snapshot.id,
|
||||
"Check snapshot id in list resources call"
|
||||
)
|
||||
|
||||
self.assertTrue(is_snapshot_on_nfs(self.apiclient, self.dbclient, self.config, self.zone.id, self.snapshot.id),
|
||||
"Snapshot was not found on NFS")
|
||||
self.assertTrue(is_snapshot_on_nfs(self.apiclient, self.dbclient, self.config, self.zone.id, self.snapshot.id),
|
||||
"Snapshot was not found on NFS")
|
||||
|
||||
raise Exception("self raised exception")
|
||||
except Exception as e:
|
||||
self._cleanup.append(self.account)
|
||||
self.fail("Exception occured: %s" % e)
|
||||
|
||||
self.debug("Deleting account: %s" % self.account.name)
|
||||
# Delete account
|
||||
|
|
|
|||
|
|
@ -173,8 +173,6 @@ class TestSnapshotLimit(cloudstackTestCase):
|
|||
cls.tearDownClass()
|
||||
unittest.SkipTest("setupClass fails for %s" % cls.__name__)
|
||||
raise e
|
||||
else:
|
||||
cls._cleanup.remove(cls.account)
|
||||
return
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -1462,6 +1462,7 @@ class TestVpnUsage(cloudstackTestCase):
|
|||
cls.services["server"]["zoneid"] = cls.zone.id
|
||||
|
||||
cls.services["template"] = template.id
|
||||
cls._cleanup = []
|
||||
|
||||
# Create Service offerings, VMs etc
|
||||
cls.account = Account.create(
|
||||
|
|
@ -1470,6 +1471,7 @@ class TestVpnUsage(cloudstackTestCase):
|
|||
admin=True,
|
||||
domainid=cls.domain.id
|
||||
)
|
||||
cls._cleanup.append(cls.account)
|
||||
|
||||
cls.services["account"] = cls.account.name
|
||||
|
||||
|
|
@ -1477,6 +1479,7 @@ class TestVpnUsage(cloudstackTestCase):
|
|||
cls.api_client,
|
||||
cls.services["service_offering"]
|
||||
)
|
||||
cls._cleanup.append(cls.sevice_offering)
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["server"],
|
||||
|
|
@ -1492,10 +1495,6 @@ class TestVpnUsage(cloudstackTestCase):
|
|||
domainid=cls.virtual_machine.domainid,
|
||||
services=cls.services["server"]
|
||||
)
|
||||
cls._cleanup = [
|
||||
cls.service_offering,
|
||||
cls.account,
|
||||
]
|
||||
return
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -1041,6 +1041,7 @@ class TestVolumes(cloudstackTestCase):
|
|||
name="NROOT",
|
||||
parentdomainid=self.domain.id
|
||||
)
|
||||
self.cleanup.append(dom)
|
||||
self.assertTrue(dom is not None, msg="Domain creation failed")
|
||||
|
||||
domuser = Account.create(
|
||||
|
|
@ -1049,6 +1050,7 @@ class TestVolumes(cloudstackTestCase):
|
|||
admin=False,
|
||||
domainid=dom.id
|
||||
)
|
||||
self.cleanup.insert(-2, domuser)
|
||||
self.assertTrue(domuser is not None)
|
||||
|
||||
domapiclient = self.testClient.getUserApiClient(UserName=domuser.name, DomainName=dom.name)
|
||||
|
|
|
|||
|
|
@ -152,10 +152,10 @@ class TestDeployVmWithAffinityGroup(cloudstackTestCase):
|
|||
msg="Both VMs of affinity group %s are on the same host" % self.ag.name)
|
||||
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
try:
|
||||
#Clean up, terminate the created templates
|
||||
cleanup_resources(cls.apiclient, cls._cleanup)
|
||||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
try:
|
||||
#Clean up, terminate the created templates
|
||||
cleanup_resources(cls.apiclient, cls._cleanup)
|
||||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
|
|
|
|||
Loading…
Reference in New Issue