CLOUDSTACK-6536: Code cleanup - removing unnecessary waits after VM stop operation, modifying imports, removing white-spaces, adding try catch blocks whenever necessary

This commit is contained in:
Girish Shilamkar 2014-04-30 03:40:40 -04:00 committed by Gaurav Aradhye
parent d4f167032b
commit 247c796693
28 changed files with 1342 additions and 1621 deletions

View File

@ -347,14 +347,10 @@ class TestAddNetworkToVirtualMachine(cloudstackTestCase):
# Validate the following:
# 1. New nic is generated for the added network
self.debug("Stopping Virtual Machine: %s" % self.virtual_machine.id)
try:
self.virtual_machine.stop(self.apiclient)
vm_list = list_virtual_machines(self.apiclient,id=self.virtual_machine.id)
vm_list_validation_result = validateList(vm_list)
self.assertEqual(vm_list_validation_result[0], PASS, "vm list validation failed due to %s" %
vm_list_validation_result[2])
self.assertTrue(vm_list[0].state == 'Stopped', "Failed to stop VM, the state is %s" % vm_list[0].state)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
network = None #The network which we are adding to the vm
if value == "isolated":
@ -451,16 +447,10 @@ class TestAddNetworkToVirtualMachine(cloudstackTestCase):
# Validate the following:
# 1. Adding VPC to vm should fail
self.debug("Stopping Virtual Machine: %s" % self.virtual_machine.id)
try:
self.virtual_machine.stop(self.apiclient)
vm_list = list_virtual_machines(self.apiclient,id=self.virtual_machine.id)
#validation vm list
vm_list_validation_result = validateList(vm_list)
self.assertEqual(vm_list_validation_result[0], PASS, "vm list validation failed due to %s" %
vm_list_validation_result[2])
self.assertTrue(vm_list[0].state == 'Stopped', "Failed to stop VM, the state is %s" % vm_list[0].state)
except Exception as e:
self.fail("Failed to stop virtual machine: %s" % e)
self.addNetworkToVm(self.isolated_network, self.virtual_machine)

View File

@ -28,7 +28,7 @@ from marvin.lib.base import (Snapshot,
StaticNATRule,
FireWallRule,
Volume)
from marvin.lib.utils import cleanup_resources
from marvin.lib.utils import cleanup_resources, validateList
from marvin.lib.common import (get_zone,
get_domain,
get_template,
@ -36,8 +36,9 @@ from marvin.lib.common import (get_zone,
get_builtin_template_info)
#Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackAPI import restartNetwork
from marvin.codes import PASS
import time
@ -744,17 +745,21 @@ class TestTemplates(cloudstackTestCase):
cls.services["ostype"]
)
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
cls._cleanup = []
try:
cls.account = Account.create(
cls.api_client,
cls.services["account"],
domainid=cls.domain.id
)
cls._cleanup.append(cls.account)
cls.services["account"] = cls.account.name
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"],
)
cls._cleanup.append(cls.service_offering)
# create virtual machine
cls.virtual_machine = VirtualMachine.create(
@ -768,24 +773,17 @@ class TestTemplates(cloudstackTestCase):
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
#Wait before server has be successfully stopped
time.sleep(30)
list_volume = Volume.list(
listvolumes = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
listall=True
)
try:
if isinstance(list_volume, list):
cls.volume = list_volume[0]
assert validateList(listvolumes)[0] == PASS, "volumes list is empty"
cls.volume = listvolumes[0]
except Exception as e:
raise Exception("Warning: Exception during setup : %s" % e)
cls._cleanup = [
cls.service_offering,
cls.account,
]
cls.tearDownClass()
raise unittest.SkipTest("Exception in setUpClass: %s" % e)
@classmethod
def tearDownClass(cls):

View File

@ -17,12 +17,19 @@
""" P1 tests for user provide hostname cases
"""
#Import Local Modules
import marvin
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import *
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.utils import (cleanup_resources,
random_gen)
from marvin.lib.base import (ServiceOffering,
Configurations,
VirtualMachine,
Account)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
is_config_suitable)
class Services:

View File

@ -24,12 +24,22 @@
Feature Specifications: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Compute+Offering+FS
"""
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from marvin.lib.utils import (cleanup_resources,
validateList,
random_gen)
from marvin.lib.base import (Account,
VirtualMachine,
ServiceOffering,
Resources,
AffinityGroup,
Host)
from marvin.lib.common import (get_zone,
get_domain,
get_template,
verifyComputeOfferingCreation)
from nose.plugins.attrib import attr
from marvin.codes import PASS, ADMIN_ACCOUNT, USER_ACCOUNT
from marvin.codes import PASS, ADMIN_ACCOUNT, USER_ACCOUNT, FAILED
from ddt import ddt, data
@ddt
@ -460,27 +470,6 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
def stopVM(self, vm):
"""Stop VM and verify that it is indeed in stopped state"""
try:
vm.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
retriesCount = 10
while True:
vmlist = VirtualMachine.list(self.apiclient, id=vm.id)
if str(vmlist[0].state).lower() == "stopped":
break
elif retriesCount == 0:
self.fail("Failed to stop VM even after 10 minutes")
else:
retriesCount -= 1
time.sleep(60)
continue
# End while
return
@data(ADMIN_ACCOUNT, USER_ACCOUNT)
@attr(tags=["basic","advanced"])
def test_change_so_stopped_vm_static_to_static(self, value):
@ -500,12 +489,13 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
if value == USER_ACCOUNT:
isadmin=False
try:
# Create Account
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
self.cleanup.append(self.account)
apiclient = self.testClient.getUserApiClient(
UserName=self.account.name,
DomainName=self.account.domain)
self.cleanup.append(self.account)
# Create static service offerings (Second offering should have
# one of the custom values greater than 1st one, scaling down is not allowed
@ -525,21 +515,17 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
self.cleanup_co.append(serviceOffering_static_2)
# Deploy VM
try:
virtualMachine = VirtualMachine.create(apiclient,self.services["virtual_machine"],
serviceofferingid=serviceOffering_static_1.id,
accountid=self.account.name,domainid=self.account.domainid)
except Exception as e:
self.fail("vm creation failed: %s" % e)
# Stop VM and verify it is in stopped state
self.stopVM(virtualMachine)
# Stop VM
virtualMachine.stop(apiclient)
# Scale VM to new static service offering
try:
virtualMachine.scale(apiclient, serviceOfferingId=serviceOffering_static_2.id)
except Exception as e:
self.fail("Failure while changing service offering: %s" % e)
self.fail("Exception occured: %s" % e)
return
@data(ADMIN_ACCOUNT, USER_ACCOUNT)
@ -565,6 +551,7 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
if value == USER_ACCOUNT:
isadmin=False
try:
# Create Account and api client
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
apiclient = self.testClient.getUserApiClient(
@ -592,42 +579,31 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
self.cleanup_co.append(serviceOffering_dynamic)
# Deploy VM with static service offering
try:
virtualMachine_1 = VirtualMachine.create(apiclient,self.services["virtual_machine"],
serviceofferingid=serviceOffering_static.id,
accountid=self.account.name,domainid=self.account.domainid)
except Exception as e:
self.fail("vm creation failed: %s" % e)
# Stop VM and verify it is in stopped state
self.stopVM(virtualMachine_1)
# Stop VM
virtualMachine_1.stop(apiclient)
# Scale VM to dynamic service offering proving all custom values
try:
virtualMachine_1.scale(apiclient, serviceOfferingId=serviceOffering_dynamic.id,
customcpunumber=4, customcpuspeed=256, custommemory=128)
except Exception as e:
self.fail("Failure while changing service offering: %s" % e)
# Deploy VM with static service offering
try:
virtualMachine_2 = VirtualMachine.create(apiclient,self.services["virtual_machine"],
serviceofferingid=serviceOffering_static.id,
accountid=self.account.name,domainid=self.account.domainid)
except Exception as e:
self.fail("vm creation failed: %s" % e)
# Stop VM and verify it is in stopped state
self.stopVM(virtualMachine_2)
# Stop VM
virtualMachine_2.stop(apiclient)
except Exception as e:
self.fail("Exception occuered: %s" % e)
# Scale VM to dynamic service offering proving only custom cpu number
try:
with self.assertRaises(Exception):
virtualMachine_2.scale(apiclient, serviceOfferingId=serviceOffering_dynamic.id,
customcpunumber=4)
self.fail("Changing service offering with incomplete data should have failed, it succeded")
except Exception as e:
self.debug("Failure while changing service offering as expected: %s" % e)
return
@data(ADMIN_ACCOUNT, USER_ACCOUNT)
@ -649,6 +625,7 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
if value == USER_ACCOUNT:
isadmin=False
try:
# Create account and api client
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
apiclient = self.testClient.getUserApiClient(
@ -675,22 +652,18 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
self.cleanup_co.append(serviceOffering_dynamic)
# Deploy VM with dynamic service offering
try:
virtualMachine = VirtualMachine.create(apiclient,self.services["virtual_machine"],
serviceofferingid=serviceOffering_dynamic.id,
accountid=self.account.name,domainid=self.account.domainid,
customcpunumber=2, customcpuspeed=256, custommemory=128)
except Exception as e:
self.fail("vm creation failed: %s" % e)
# Stop VM and verify that it is in stopped state
self.stopVM(virtualMachine)
virtualMachine.stop(apiclient)
# Scale VM to static service offering
try:
virtualMachine.scale(apiclient, serviceOfferingId=serviceOffering_static.id)
except Exception as e:
self.fail("Failure while changing service offering: %s" % e)
self.fail("Exception occured: %s" % e)
return
@data(ADMIN_ACCOUNT, USER_ACCOUNT)
@ -717,6 +690,7 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
if value == USER_ACCOUNT:
isadmin=False
try:
# Create Account
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
apiclient = self.testClient.getUserApiClient(
@ -739,40 +713,29 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
self.cleanup_co.append(serviceOffering_dynamic_2)
# Deploy VM with dynamic service offering
try:
virtualMachine = VirtualMachine.create(apiclient,self.services["virtual_machine"],
serviceofferingid=serviceOffering_dynamic_1.id,
accountid=self.account.name,domainid=self.account.domainid,
customcpunumber=2, customcpuspeed=256, custommemory=128)
except Exception as e:
self.fail("vm creation failed: %s" % e)
# Stop VM and verify that it is in stopped state
self.stopVM(virtualMachine)
# Stop VM
virtualMachine.stop(apiclient)
# Scale VM with same dynamic service offering
try:
virtualMachine.scale(apiclient, serviceOfferingId=serviceOffering_dynamic_1.id,
customcpunumber=4, customcpuspeed=512, custommemory=256)
except Exception as e:
self.fail("Failure while changing service offering: %s" % e)
# Scale VM with other dynamic service offering
try:
virtualMachine.scale(apiclient, serviceOfferingId=serviceOffering_dynamic_2.id,
customcpunumber=4, customcpuspeed=512, custommemory=256)
except Exception as e:
self.fail("Failure while changing service offering: %s" % e)
self.fail("Exception occured: %s" % e)
# Scale VM with dynamic service offering proving custom value
# only for cpu number
try:
with self.assertRaises(Exception):
virtualMachine.scale(apiclient, serviceOfferingId=serviceOffering_dynamic_1.id,
customcpunumber=4)
self.fail("Changing service offering should have failed, it succeded")
except Exception as e:
self.debug("Failure while changing service offering: %s" % e)
return
@data(ADMIN_ACCOUNT, USER_ACCOUNT)

View File

@ -1901,27 +1901,11 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
"Check egress rule created properly"
)
try:
# Stop virtual machine
self.debug("Stopping virtual machine: %s" % self.virtual_machine.id)
self.virtual_machine.stop(self.apiclient)
vms = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
listall=True
)
self.assertEqual(
isinstance(vms, list),
True,
"List VM should return a valid list"
)
vm = vms[0]
self.assertEqual(
vm.state,
"Stopped",
"VM state should be stopped"
)
self.debug("VM: %s state: %s" % (vm.id, vm.state))
except Exception as e:
self.fail("Failed to stop instance: %s" % e)
# Start virtual machine
self.debug("Starting virtual machine: %s" % self.virtual_machine.id)

View File

@ -16,17 +16,41 @@
# under the License.
#Import Local Modules
from marvin.cloudstackTestCase import *
from marvin.cloudstackException import *
from marvin.cloudstackAPI import *
from marvin.sshClient import SshClient
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from marvin.lib.utils import checkVolumeSize
from marvin.codes import SUCCESS
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.cloudstackAPI import (createVolume,
createTemplate)
from marvin.lib.base import (Volume,
Iso,
VirtualMachine,
Template,
Snapshot,
SecurityGroup,
Account,
Zone,
Network,
NetworkOffering,
DiskOffering,
ServiceOffering,
VmSnapshot,
SnapshotPolicy,
SSHKeyPair,
Resources,
Configurations,
VpnCustomerGateway,
Hypervisor,
VpcOffering,
VPC,
NetworkACL)
from marvin.lib.common import (get_zone,
get_domain,
get_template,
list_os_types)
from marvin.lib.utils import (validateList,
cleanup_resources,
random_gen)
from marvin.codes import (PASS, FAIL, EMPTY_LIST)
from nose.plugins.attrib import attr
from time import sleep
import time
class TestVolumes(cloudstackTestCase):
@ -3198,22 +3222,6 @@ class TestListInstances(cloudstackTestCase):
self.userapiclient,
forced=True
)
# Listing VM details
list_vm = VirtualMachine.list(
self.userapiclient,
id=vm_created.id
)
status = validateList(list_vm)
self.assertEquals(
PASS,
status[0],
"Listing of VM failed"
)
self.assertEquals(
"Stopped",
list_vm[0].state,
"Stopped VM is not in stopped state"
)
# Listing all the SSH Key pairs
list_keypairs_before = SSHKeyPair.list(
self.userapiclient
@ -3465,7 +3473,6 @@ class TestListInstances(cloudstackTestCase):
default_nic = vm_nics_after[i]
else:
non_default_nic = vm_nics_after[i]
self.assertEquals(
1,
default_count,
@ -4504,22 +4511,6 @@ class TestInstances(cloudstackTestCase):
self.userapiclient,
forced=True
)
# Listing VM details
list_vm = VirtualMachine.list(
self.userapiclient,
id=vm_created.id
)
status = validateList(list_vms_after)
self.assertEquals(
PASS,
status[0],
"Listing of VM failed"
)
self.assertEquals(
"Stopped",
list_vm[0].state,
"Stopped VM is not in stopped state"
)
# Listing all the service offerings
service_offerings_list = ServiceOffering.list(
self.userapiclient,
@ -4629,22 +4620,6 @@ class TestInstances(cloudstackTestCase):
self.userapiclient,
forced=True
)
# Listing VM details
list_vm = VirtualMachine.list(
self.userapiclient,
id=vm_created.id
)
status = validateList(list_vm)
self.assertEquals(
PASS,
status[0],
"Listing of VM failed"
)
self.assertEquals(
"Stopped",
list_vm[0].state,
"Stopped VM is not in stopped state"
)
# Listing all the SSH Key pairs
list_keypairs_before = SSHKeyPair.list(
self.userapiclient

View File

@ -18,15 +18,28 @@
""" P1 tests for netscaler configurations
"""
#Import Local Modules
import marvin
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.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackAPI import *
from marvin.lib.utils import (cleanup_resources,
random_gen)
from marvin.lib.base import (VirtualMachine,
NetworkServiceProvider,
PublicIPAddress,
Account,
Network,
NetScaler,
LoadBalancerRule,
NetworkOffering,
ServiceOffering,
PhysicalNetwork,
Configurations)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
add_netscaler)
from marvin.sshClient import SshClient
import datetime
import time
class Services:
@ -559,7 +572,7 @@ class TestNetScalerDedicated(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -621,11 +634,11 @@ class TestNetScalerDedicated(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -781,7 +794,7 @@ class TestNetScalerShared(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -839,11 +852,11 @@ class TestNetScalerShared(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1023,7 +1036,7 @@ class TestNetScalerCustomCapacity(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1087,11 +1100,11 @@ class TestNetScalerCustomCapacity(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1244,7 +1257,7 @@ class TestNetScalerCustomCapacity(cloudstackTestCase):
self.debug("Deploying VM in account: %s" % self.account_3.name)
with self.assertRaises(Exception):
# Spawn an instance in that network
virtual_machine_3 = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_3.name,
@ -1295,7 +1308,7 @@ class TestNetScalerNoCapacity(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1359,11 +1372,11 @@ class TestNetScalerNoCapacity(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1517,7 +1530,7 @@ class TestNetScalerNoCapacity(cloudstackTestCase):
self.debug("Deploying VM in account: %s" % self.account_3.name)
with self.assertRaises(Exception):
# Spawn an instance in that network
virtual_machine_3 = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_3.name,
@ -1568,7 +1581,7 @@ class TestGuestNetworkWithNetScaler(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1626,11 +1639,11 @@ class TestGuestNetworkWithNetScaler(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2030,11 +2043,11 @@ class TestGuestNetworkWithNetScaler(cloudstackTestCase):
self.debug("Account: %s is deleted!" % self.account_1.name)
self.debug("Waiting for network.gc.interval & network.gc.wait..")
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2223,15 +2236,18 @@ class TestGuestNetworkShutDown(cloudstackTestCase):
"Stopping all the VM instances for the account: %s" %
self.account.name)
try:
self.vm_1.stop(self.apiclient)
self.vm_2.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop instance: %s" % e)
self.debug("Sleep for network.gc.interval + network.gc.wait")
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2529,7 +2545,7 @@ class TestServiceProvider(cloudstackTestCase):
cls.netscaler_provider = nw_service_providers[0]
if cls.netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=cls.netscaler_provider.id,
state='Enabled'
@ -2586,11 +2602,11 @@ class TestServiceProvider(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2843,7 +2859,7 @@ class TestDeleteNetscaler(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -2901,11 +2917,11 @@ class TestDeleteNetscaler(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)

View File

@ -18,15 +18,27 @@
""" P1 tests for netscaler load balancing
"""
#Import Local Modules
import marvin
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.cloudstackTestCase import cloudstackTestCase
from marvin.cloudstackAPI import migrateVirtualMachine
from marvin.lib.utils import (cleanup_resources,
random_gen)
from marvin.lib.base import (Account,
VirtualMachine,
PublicIPAddress,
LoadBalancerRule,
ServiceOffering,
NetworkOffering,
Host,
Network,
NATRule,
Configurations)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
add_netscaler)
from marvin.sshClient import SshClient
import datetime
import time
class Services:
@ -209,11 +221,11 @@ class TestLbSourceNat(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -418,11 +430,11 @@ class TestLbOnIpWithPf(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -630,11 +642,11 @@ class TestPfOnIpWithLb(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -771,7 +783,7 @@ class TestPfOnIpWithLb(cloudstackTestCase):
with self.assertRaises(Exception):
NATRule.create(
self.apiclient,
virtual_machine,
virtual_machine_1,
self.services["natrule"],
ipaddressid=ip_with_lb_rule.ipaddress.id
)
@ -843,11 +855,11 @@ class TestLbOnNonSourceNat(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1059,11 +1071,11 @@ class TestAddMultipleVmsLb(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1338,11 +1350,11 @@ class TestMultipleLbRules(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1656,11 +1668,11 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2246,7 +2258,7 @@ class TestDeleteCreateLBRule(cloudstackTestCase):
self.debug("Create a new LB rule with different public port")
self.services["lbrule"]["publicport"] = 23
lb_rule = LoadBalancerRule.create(
LoadBalancerRule.create(
self.apiclient,
self.services["lbrule"],
ipaddressid=self.public_ip.ipaddress.id,
@ -2462,18 +2474,11 @@ class TestVmWithLb(cloudstackTestCase):
# 4. In netscaler, LB rules for this VM still remain configured.But
# it will be marked as being down
self.debug("Adding instances: %s, %s to LB rule: %s" % (
self.vm_1.name,
self.vm_2.name,
self.lb_rule_1.name))
try:
self.lb_rule_1.assign(self.apiclient, [self.vm_1, self.vm_2])
self.debug("Assigned instances: %s, %s to LB rule: %s" % (
self.vm_1.name,
self.vm_2.name,
self.lb_rule_1.name))
self.debug("Stopping VM instance: %s" % self.vm_2.name)
self.vm_2.stop(self.apiclient)
self.debug("Stopped VM: %s" % self.vm_2.name)
except Exception as e:
self.fail("Exception occured: %s" % e)
try:
self.debug(
@ -2642,7 +2647,7 @@ class TestVmWithLb(cloudstackTestCase):
cmd.virtualmachineid = self.vm_2.id
self.apiclient.migrateVirtualMachine(cmd)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.vm_2.id
)
@ -2852,11 +2857,11 @@ class TestVmWithLb(cloudstackTestCase):
self.fail("Exception occured during SSH: %s - %s" % (
self.public_ip_1.ipaddress.ipaddress,
e))
delay = list_configurations(
delay = Configurations.list(
self.apiclient,
name='expunge.delay'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='expunge.interval'
)

View File

@ -18,15 +18,32 @@
""" P1 tests for multiple netscaler instances
"""
#Import Local Modules
import marvin
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.sshClient import SshClient
import datetime
from marvin.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackAPI import *
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (NATRule,
LoadBalancerRule,
FireWallRule,
PublicIPAddress,
VirtualMachine,
Network,
Account,
NetScaler,
PhysicalNetwork,
NetworkServiceProvider,
NetworkOffering,
Vpn,
Zone,
ServiceOffering,
Configurations
)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
add_netscaler,
)
import time
class Services:
@ -540,7 +557,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -767,7 +784,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
with self.assertRaises(Exception):
# Spawn an instance in that network
virtual_machine_3 = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_3.name,
@ -955,7 +972,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
with self.assertRaises(Exception):
# Spawn an instance in that network
virtual_machine_5 = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_5.name,
@ -983,14 +1000,10 @@ class TestNetScalerSharedMode(cloudstackTestCase):
self.account_4.delete(self.apiclient)
self.debug("Account: %s is deleted" % self.account_4.name)
interval = list_configurations(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
self.apiclient,
name='network.gc.wait'
)
interval = Configurations.list(self.apiclient,
name='network.gc.interval')
wait = Configurations.list(self.apiclient,
name='network.gc.wait')
self.debug("Sleeping for: network.gc.interval + network.gc.wait")
# Sleep to ensure that all resources are deleted
time.sleep(int(interval[0].value) + int(wait[0].value))
@ -1084,7 +1097,7 @@ class TestNwOffDedicatedNetscaler(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1135,11 +1148,11 @@ class TestNwOffDedicatedNetscaler(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1256,7 +1269,7 @@ class TestNwOffNetscaler(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1326,11 +1339,11 @@ class TestNwOffNetscaler(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1386,14 +1399,13 @@ class TestNwOffNetscaler(cloudstackTestCase):
zoneid=self.zone.id
)
self.debug("Deploying VM in account: %s" % self.account_1.name)
virtual_machine = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_1.name,
domainid=self.account_1.domainid,
serviceofferingid=self.service_offering.id,
networkids=[str(self.network.id)]
)
networkids=[str(self.network.id)])
# Creating network using the network offering created
self.debug("Creating different network with network offering: %s" %
self.network_offering.id)
@ -1421,14 +1433,12 @@ class TestNwOffNetscaler(cloudstackTestCase):
self.debug("Deleting account: %s" % self.account_1.name)
self.account_1.delete(self.apiclient)
self.debug("Account: %s deleted!" % self.account_1.name)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
self.apiclient,
name='network.gc.wait'
)
wait = Configurations.list(self.apiclient,
name='network.gc.wait')
self.debug("Sleeping for: network.gc.interval + network.gc.wait")
# Sleep to ensure that all resources are deleted
time.sleep(int(interval[0].value) + int(wait[0].value))
@ -1564,7 +1574,7 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -1634,11 +1644,11 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -1823,29 +1833,6 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
self.account_1.name)
virtual_machine_1.stop(self.apiclient)
list_vm_response = VirtualMachine.list(
self.apiclient,
id=virtual_machine_1.id
)
self.debug(
"Verify listVirtualMachines response for virtual machine: %s" \
% virtual_machine_1.id
)
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
"Stopped",
"VM state should be running after deployment"
)
self.debug("All Vms are in stopped state")
self.debug("Upgrading the network: %s" % self.network_1.id)
self.network_1.update(
self.apiclient,
@ -1917,7 +1904,7 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
"Creating LB rule for IP address: %s with round robin algo" %
public_ip.ipaddress.ipaddress)
lb_rule = LoadBalancerRule.create(
LoadBalancerRule.create(
self.apiclient,
self.services["lbrule"],
ipaddressid=public_ip.ipaddress.id,
@ -1978,7 +1965,7 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
netscaler_provider = nw_service_providers[0]
if netscaler_provider.state != 'Enabled':
response = NetworkServiceProvider.update(
NetworkServiceProvider.update(
cls.api_client,
id=netscaler_provider.id,
state='Enabled'
@ -2048,11 +2035,11 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
self.debug("Cleaning up the resources")
#Clean up, terminate the created network offerings
cleanup_resources(self.apiclient, self.cleanup)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.interval'
)
wait = list_configurations(
wait = Configurations.list(
self.apiclient,
name='network.gc.wait'
)
@ -2227,29 +2214,6 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
self.debug("Stopping all VMs in account: %s" % self.account_3.name)
virtual_machine_3.stop(self.apiclient)
list_vm_response = VirtualMachine.list(
self.apiclient,
id=virtual_machine_3.id
)
self.debug(
"Verify listVirtualMachines response for virtual machine: %s" \
% virtual_machine_3.id
)
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
"Stopped",
"VM state should be stopped"
)
self.debug("All user VMs stopped")
self.debug("Upgrading the network: %s" % self.network_3.id)
self.network_3.update(
self.apiclient,
@ -2318,7 +2282,7 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
"Creating LB rule for IP address: %s with round robin algo" %
public_ip.ipaddress.ipaddress)
lb_rule = LoadBalancerRule.create(
LoadBalancerRule.create(
self.apiclient,
self.services["lbrule"],
ipaddressid=public_ip.ipaddress.id,
@ -2936,7 +2900,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
# User should be able to enable VPN on source NAT
self.debug("Created VPN with source NAT IP: %s" % src_nat.ipaddress)
# Assign VPN to source NAT
vpn = Vpn.create(
Vpn.create(
self.apiclient,
src_nat.id,
account=self.account.name,

View File

@ -18,14 +18,23 @@
""" P1 tests for network offering
"""
#Import Local Modules
import marvin
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 *
import datetime
from marvin.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackAPI import *
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (VirtualMachine,
Account,
Network,
LoadBalancerRule,
PublicIPAddress,
FireWallRule,
NATRule,
Vpn,
ServiceOffering,
NetworkOffering)
from marvin.lib.common import (get_domain,
get_zone,
get_template)
class Services:
@ -700,7 +709,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
# User should be able to enable VPN on source NAT
self.debug("Created VPN with source NAT IP: %s" % src_nat.ipaddress)
# Assign VPN to source NAT
vpn = Vpn.create(
Vpn.create(
self.apiclient,
src_nat.id,
account=self.account.name,
@ -942,7 +951,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
# Assign VPN to source NAT
self.debug("Enabling VPN on source NAT")
vpn = Vpn.create(
Vpn.create(
self.apiclient,
src_nat.id,
account=self.account.name,
@ -1142,7 +1151,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
# Assign VPN to source NAT
self.debug("Enabling VPN on source NAT")
vpn = Vpn.create(
Vpn.create(
self.apiclient,
src_nat.id,
account=self.account.name,
@ -1262,7 +1271,7 @@ class TestNOWithOnlySourceNAT(cloudstackTestCase):
self.debug("Deploying VM in account: %s on the network %s" % (self.account.name, self.network.id))
# Spawn an instance in that network
virtual_machine = VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account.name,

View File

@ -15,11 +15,32 @@
# specific language governing permissions and limitations
# under the License.
""" Tests for Persistent Networks without running VMs feature"""
from marvin.cloudstackException import CloudstackAPIException
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
import netaddr
from marvin.lib.utils import (cleanup_resources,
validateList,
get_hypervisor_type)
from marvin.lib.base import (Account,
VPC,
VirtualMachine,
LoadBalancerRule,
Network,
Domain,
Router,
NetworkACL,
PublicIPAddress,
VpcOffering,
ServiceOffering,
Project,
NetworkOffering,
NATRule,
FireWallRule,
Host,
StaticNATRule)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
verifyNetworkState,
add_netscaler,
wait_for_cleanup)
from nose.plugins.attrib import attr
from marvin.codes import PASS, FAIL, FAILED
from marvin.sshClient import SshClient
@ -1051,15 +1072,9 @@ class TestAssignVirtualMachine(cloudstackTestCase):
networkids=[network.id],
serviceofferingid=self.service_offering.id,
accountid=account_1.name,domainid=self.domain.id)
except Exception as e:
self.fail("vm creation failed: %s" % e)
virtual_machine.stop(self.apiclient)
vms = VirtualMachine.list(self.apiclient, id=virtual_machine.id)
self.assertEqual(validateList(vms)[0], PASS, "vm list validation failed, vm list is %s" % vms)
self.assertEqual(str(vms[0].state).lower(), "stopped", "vm state should be stopped, it is %s" % vms[0].state)
# Assign virtual machine to different account
virtual_machine.assign_virtual_machine(self.apiclient, account=account_2.name, domainid=self.domain.id)
@ -1069,6 +1084,8 @@ class TestAssignVirtualMachine(cloudstackTestCase):
# Verify that new network is created in other account
networks = Network.list(self.apiclient, account=account_2.name, domainid = account_2.domainid)
self.assertEqual(validateList(networks)[0], PASS, "networks list validation failed, list is %s" % networks)
except Exception as e:
self.fail("Exception occured: %s" % e)
return
@ddt

View File

@ -18,7 +18,7 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.base import (VirtualMachine,
Account,
Project,
@ -458,7 +458,6 @@ class TestNetwork(cloudstackTestCase):
True,
"Check for the valid network list response"
)
network_response = networks[0]
self.debug("Deploying VM with network: %s" % network.id)
@ -631,6 +630,7 @@ class TestTemplates(cloudstackTestCase):
# 3. Verify that template created in project can be used in project
# without any restrictions
try:
self.debug("Deploying VM for with public template: %s" %
self.template.id)
virtual_machine_1 = VirtualMachine.create(
@ -678,6 +678,8 @@ class TestTemplates(cloudstackTestCase):
True,
"Check Template is in ready state or not"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
return
@attr(tags=["advanced", "basic", "sg", "eip", "advancedns", "selfservice"])
@ -690,6 +692,7 @@ class TestTemplates(cloudstackTestCase):
# be granted to the Project (use API 'updateTemplatePermissions'
# with project id to achieve that).
try:
self.debug("Deploying VM for with public template: %s" %
self.template.id)
virtual_machine_1 = VirtualMachine.create(
@ -701,12 +704,9 @@ class TestTemplates(cloudstackTestCase):
)
self.cleanup.append(virtual_machine_1)
# Verify VM state
self.assertEqual(
virtual_machine_1.state,
self.assertEqual(virtual_machine_1.state,
'Running',
"Check VM state is Running or not"
)
self.debug("Stopping the VM: %s" % virtual_machine_1.id)
"Check VM state is Running or not")
virtual_machine_1.stop(self.apiclient)
# Get the Root disk of VM
volumes = list_volumes(
@ -767,6 +767,8 @@ class TestTemplates(cloudstackTestCase):
'Running',
"Check VM state is Running or not"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
return
@ -882,7 +884,6 @@ class TestSnapshots(cloudstackTestCase):
True,
"Check for list volume response return valid data"
)
volume = volumes[0]
self.debug("Creating snapshot from volume: %s" % volumes[0].id)
# Create a snapshot from the ROOTDISK

View File

@ -17,16 +17,29 @@
""" P1 tests for Snapshots
"""
#Import Local Modules
import marvin
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.sshClient import SshClient
import datetime
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackAPI import deleteVolume
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (Project,
VirtualMachine,
Account,
Network,
PublicIPAddress,
NATRule,
ServiceOffering,
Vpn,
VpnUser,
Snapshot,
ImageStore,
DiskOffering,
LoadBalancerRule,
Template,
Iso)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
list_volumes)
class Services:
"""Test Snapshots Services
@ -204,14 +217,19 @@ class TestVmUsage(cloudstackTestCase):
# VM.Destroy and volume .delete Event for the created account
# 4. Delete the account
try:
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
# Stop the VM
self.virtual_machine.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
time.sleep(self.services["sleep"])
try:
# Destroy the VM
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
self.virtual_machine.delete(self.apiclient)
except Exception as e:
self.fail("Failed to delete VM: %s" % e)
# Fetch project account ID from project UUID
self.debug(
@ -574,7 +592,10 @@ class TestVolumeUsage(cloudstackTestCase):
# Stop VM
self.debug("Stopping VM with ID: %s" % self.virtual_machine.id)
try:
self.virtual_machine.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
volume_response = list_volumes(
self.apiclient,
@ -594,7 +615,10 @@ class TestVolumeUsage(cloudstackTestCase):
data_volume.id,
self.virtual_machine.id
))
try:
self.virtual_machine.detach_volume(self.apiclient, data_volume)
except Exception as e:
self.fail("Failed to detach volume: %s" % e)
# Delete Data disk
self.debug("Delete volume ID: %s" % data_volume.id)
@ -680,11 +704,14 @@ class TestTemplateUsage(cloudstackTestCase):
cls.services["ostype"]
)
cls.services["server"]["zoneid"] = cls.zone.id
cls._cleanup = []
try:
cls.account = Account.create(
cls.api_client,
cls.services["account"],
domainid=cls.domain.id
)
cls._cleanup.append(cls.account)
cls.services["account"] = cls.account.name
cls.project = Project.create(
@ -693,11 +720,10 @@ class TestTemplateUsage(cloudstackTestCase):
account=cls.account.name,
domainid=cls.account.domainid
)
cls._cleanup.append(cls.account)
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
)
cls.services["service_offering"])
#create virtual machine
cls.virtual_machine = VirtualMachine.create(
cls.api_client,
@ -710,8 +736,6 @@ class TestTemplateUsage(cloudstackTestCase):
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
#Wait before server has be successfully stopped
time.sleep(30)
list_volume = list_volumes(
cls.api_client,
projectid=cls.project.id,
@ -722,10 +746,9 @@ class TestTemplateUsage(cloudstackTestCase):
cls.volume = list_volume[0]
else:
raise Exception("List Volumes failed!")
cls._cleanup = [
cls.project,
cls.account,
]
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Failed during setUpClass: %s" % e)
return
@classmethod
@ -1271,8 +1294,6 @@ class TestSnapshotUsage(cloudstackTestCase):
"Check if list volumes return a valid data"
)
volume = volumes[0]
# Create a snapshot from the ROOTDISK
self.debug("Creating snapshot from volume: %s" % volumes[0].id)
snapshot = Snapshot.create(self.apiclient, volumes[0].id)

View File

@ -16,13 +16,22 @@
# under the License.
from nose.plugins.attrib import attr
from marvin.lib.base import *
from marvin.lib.utils import *
from marvin.lib.common import *
from marvin.lib.base import (Account,
Network,
ServiceOffering,
NetworkOffering,
VirtualMachine,
Router,
Configurations)
from marvin.lib.utils import cleanup_resources
from marvin.lib.common import (get_domain,
get_zone,
get_template)
#Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.cloudstackAPI import *
from marvin.cloudstackAPI import startRouter
import time
class Services:
"""Test Services for customer defects
@ -304,13 +313,6 @@ class TestRedundantRouterNetworkCleanups(cloudstackTestCase):
"Length of the list router should be 2 (Backup & master)"
)
if routers[0].redundantstate == 'MASTER':
master_router = routers[0]
backup_router = routers[1]
else:
master_router = routers[1]
backup_router = routers[0]
self.debug("restarting network with cleanup=False")
try:
network.restart(self.apiclient, cleanup=False)
@ -445,13 +447,6 @@ class TestRedundantRouterNetworkCleanups(cloudstackTestCase):
"Length of the list router should be 2 (Backup & master)"
)
if routers[0].redundantstate == 'MASTER':
master_router = routers[0]
backup_router = routers[1]
else:
master_router = routers[1]
backup_router = routers[0]
self.debug("restarting network with cleanup=True")
try:
network.restart(self.apiclient, cleanup=True)
@ -597,12 +592,12 @@ class TestRedundantRouterNetworkCleanups(cloudstackTestCase):
self.fail("Failed to stop guest Vm: %s - %s" %
(virtual_machine.name, e))
interval = list_configurations(
interval = Configurations(
self.apiclient,
name='network.gc.interval'
)
delay = int(interval[0].value)
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='network.gc.wait'
)

View File

@ -24,12 +24,11 @@ from marvin.lib.base import (VirtualMachine,
Account,
Template,
ServiceOffering,
EgressFireWallRule)
EgressFireWallRule,
Volume)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
list_virtual_machines,
list_volumes)
get_template)
from marvin.lib.utils import (cleanup_resources,
random_gen,
validateList)
@ -136,17 +135,19 @@ class TestResetSSHKeypair(cloudstackTestCase):
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
cls.services["virtual_machine"]["template"] = template.id
cls._cleanup = []
try:
# Create VMs, NAT Rules etc
cls.account = Account.create(
cls.api_client,
cls.services["account"],
domainid=domain.id
)
domainid=domain.id)
cls._cleanup.append(cls.account)
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
)
cls.services["service_offering"])
cls._cleanup.append(cls.service_offering)
cls.virtual_machine = VirtualMachine.create(
cls.api_client,
@ -154,8 +155,7 @@ class TestResetSSHKeypair(cloudstackTestCase):
accountid=cls.account.name,
domainid=cls.account.domainid,
serviceofferingid=cls.service_offering.id,
mode=cls.services["mode"]
)
mode=cls.services["mode"])
networkid = cls.virtual_machine.nic[0].networkid
@ -189,41 +189,17 @@ class TestResetSSHKeypair(cloudstackTestCase):
"chkconfig --add cloud-set-guest-sshkey.in"
]
for c in cmds:
result = ssh.execute(c)
ssh.execute(c)
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
# Poll listVM to ensure VM is stopped properly
timeout = cls.services["timeout"]
while True:
time.sleep(cls.services["sleep"])
# Ensure that VM is in stopped state
list_vm_response = list_virtual_machines(
cls.api_client,
id=cls.virtual_machine.id
)
if isinstance(list_vm_response, list):
vm = list_vm_response[0]
if vm.state == 'Stopped':
break
if timeout == 0:
raise Exception(
"Failed to stop VM (ID: %s) " %
vm.id)
timeout = timeout - 1
list_volume = list_volumes(
list_volume = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
listall=True
)
listall=True)
if isinstance(list_volume, list):
cls.volume = list_volume[0]
else:
@ -240,14 +216,12 @@ class TestResetSSHKeypair(cloudstackTestCase):
account=cls.account.name,
domainid=cls.account.domainid
)
cls._cleanup.append(cls.pw_ssh_enabled_template)
# Delete the VM - No longer needed
cls.virtual_machine.delete(cls.api_client)
cls._cleanup = [
cls.service_offering,
cls.pw_ssh_enabled_template,
cls.account
]
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Exception in setUpClass: %s" % e)
@classmethod
def tearDownClass(cls):
@ -1026,36 +1000,16 @@ class TestResetSSHKeyUserRights(cloudstackTestCase):
"chkconfig --add cloud-set-guest-sshkey.in"
]
for c in cmds:
result = ssh.execute(c)
ssh.execute(c)
try:
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Exception in setUpClass: %s" % e)
# Poll listVM to ensure VM is stopped properly
timeout = cls.services["timeout"]
while True:
time.sleep(cls.services["sleep"])
# Ensure that VM is in stopped state
list_vm_response = list_virtual_machines(
cls.api_client,
id=cls.virtual_machine.id
)
if isinstance(list_vm_response, list):
vm = list_vm_response[0]
if vm.state == 'Stopped':
break
if timeout == 0:
raise Exception(
"Failed to stop VM (ID: %s) " %
vm.id)
timeout = timeout - 1
list_volume = list_volumes(
list_volume = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',

View File

@ -747,6 +747,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# 3. Try to create 2 templates in account 2. Verify account 2 should be
# able to create template without any error
try:
self.debug(
"Updating template resource limit for account: %s" %
self.account_1.name)
@ -831,7 +832,8 @@ class TestResourceLimitsAccount(cloudstackTestCase):
True,
"Check Template is in ready state or not"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
# Exception should be raised for second snapshot (account_1)
with self.assertRaises(Exception):
Template.create(
@ -841,6 +843,8 @@ class TestResourceLimitsAccount(cloudstackTestCase):
account=self.account_1.name,
domainid=self.account_1.domainid,
)
try:
virtual_machine_2.stop(self.apiclient)
# Get the Root disk of VM
volumes = list_volumes(
@ -892,6 +896,8 @@ class TestResourceLimitsAccount(cloudstackTestCase):
True,
"Check Template is in ready state or not"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
return
@ -1256,6 +1262,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# 4. Try create 3rd template in the domain. It should give the user an
# appropriate error and an alert should be generated.
try:
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
@ -1264,9 +1271,6 @@ class TestResourceLimitsDomain(cloudstackTestCase):
max=5
)
self.debug(
"Updating template resource limits for domain: %s" %
self.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
@ -1274,8 +1278,6 @@ class TestResourceLimitsDomain(cloudstackTestCase):
domainid=self.account.domainid,
max=2
)
self.debug("Deploying VM for account: %s" % self.account.name)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
self.services["server"],
@ -1340,6 +1342,8 @@ class TestResourceLimitsDomain(cloudstackTestCase):
True,
"Check Template is in ready state or not"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
# Exception should be raised for second template
with self.assertRaises(Exception):

View File

@ -18,13 +18,21 @@
""" P1 for Security groups
"""
#Import Local Modules
import marvin
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.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackAPI import *
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Account,
ServiceOffering,
VirtualMachine,
SecurityGroup,
Router,
Host,
Configurations)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
get_process_status)
from marvin.sshClient import SshClient
#Import System modules
@ -186,7 +194,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
self.debug("Deployed VM with ID: %s" % self.virtual_machine.id)
self.cleanup.append(self.virtual_machine)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -225,7 +233,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
"Verify list routers response for account: %s" \
% self.account.name
)
routers = list_routers(
routers = Router.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
@ -300,7 +308,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
self.debug("Deployed VM with ID: %s" % self.virtual_machine.id)
self.cleanup.append(self.virtual_machine)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -362,7 +370,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
# SSH Attempt to VM should fail
with self.assertRaises(Exception):
self.debug("SSH into VM: %s" % self.virtual_machine.ssh_ip)
ssh = SshClient(
SshClient(
self.virtual_machine.ssh_ip,
self.virtual_machine.ssh_port,
self.virtual_machine.username,
@ -651,7 +659,7 @@ class TestRevokeIngressRule(cloudstackTestCase):
self.debug("Revoking ingress rule for sec group ID: %s for ssh access"
% security_group.id)
# Revoke Security group to SSH to VM
result = security_group.revoke(
security_group.revoke(
self.apiclient,
id=ssh_rule["ruleid"]
)
@ -752,7 +760,7 @@ class TestDhcpOnlyRouter(cloudstackTestCase):
#2. The only service supported by this router should be dhcp
# Find router associated with user account
list_router_response = list_routers(
list_router_response = Router.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
@ -764,7 +772,7 @@ class TestDhcpOnlyRouter(cloudstackTestCase):
)
router = list_router_response[0]
hosts = list_hosts(
hosts = Host.list(
self.apiclient,
zoneid=router.zoneid,
type='Routing',
@ -886,7 +894,7 @@ class TestdeployVMWithUserData(cloudstackTestCase):
# router for this VM
# Find router associated with user account
list_router_response = list_routers(
list_router_response = Router.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
@ -1201,7 +1209,7 @@ class TestDeleteSecurityGroup(cloudstackTestCase):
# Destroy the VM
self.virtual_machine.delete(self.apiclient)
config = list_configurations(
config = Configurations.list(
self.apiclient,
name='expunge.delay'
)
@ -1220,8 +1228,8 @@ class TestDeleteSecurityGroup(cloudstackTestCase):
self.debug("Deleting Security Group: %s" % security_group.id)
security_group.delete(self.apiclient)
except Exception as e:
self.fail("Failed to delete security group - ID: %s" \
% security_group.id
self.fail("Failed to delete security group - ID: %s: %s" \
% (security_group.id, e)
)
return
@ -1639,15 +1647,13 @@ class TestIngressRule(cloudstackTestCase):
% ingress_rule["id"]
)
try:
self.virtual_machine.stop(self.apiclient)
# Sleep to ensure that VM is in stopped state
time.sleep(self.services["sleep"])
self.virtual_machine.start(self.apiclient)
# Sleep to ensure that VM is in running state
time.sleep(self.services["sleep"])
except Exception as e:
self.fail("Exception occured: %s" % e)
# SSH should be allowed on 22 port after restart
try:

View File

@ -18,13 +18,27 @@
""" P1 for stopped Virtual Maschine life cycle
"""
#Import Local Modules
import marvin
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.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackAPI import *
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Account,
VirtualMachine,
ServiceOffering,
Volume,
Router,
DiskOffering,
Host,
Iso,
Cluster,
StoragePool,
Configurations,
Template)
from marvin.lib.common import (get_zone,
get_domain,
get_template,
get_builtin_template_info,
update_resource_limit)
#Import System modules
import time
@ -194,7 +208,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -245,7 +259,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -297,7 +311,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -340,17 +354,17 @@ class TestDeployVM(cloudstackTestCase):
)
self.debug("Instance destroyed..waiting till expunge interval")
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='expunge.interval'
)
delay = list_configurations(
delay = Configurations.list(
self.apiclient,
name='expunge.delay'
)
# Sleep to ensure that all resources are deleted
time.sleep((int(interval[0].value) + int(delay[0].value)))
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -387,7 +401,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -425,7 +439,7 @@ class TestDeployVM(cloudstackTestCase):
try:
self.virtual_machine.attach_volume(self.apiclient, volume)
except Exception as e:
self.fail("Attach volume failed!")
self.fail("Attach volume failed with Exception: %s" % e)
return
@attr(tags=["advanced", "eip", "advancedns", "basic", "sg", "selfservice"])
@ -452,7 +466,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -528,7 +542,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -566,7 +580,7 @@ class TestDeployVM(cloudstackTestCase):
try:
self.virtual_machine.attach_volume(self.apiclient, volume)
except Exception as e:
self.fail("Attach volume failed!")
self.fail("Attach volume failed with Exception: %s" % e)
self.debug("Detaching the disk: %s" % volume.name)
self.virtual_machine.detach_volume(self.apiclient, volume)
@ -611,7 +625,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -702,7 +716,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine_1.id
)
@ -738,7 +752,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine_2.id
)
@ -868,7 +882,7 @@ class TestDeployVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -889,28 +903,10 @@ class TestDeployVM(cloudstackTestCase):
"Running",
"VM should be in Running state after deployment"
)
self.debug("Stopping instance: %s" % self.virtual_machine.name)
try:
self.virtual_machine.stop(self.apiclient)
self.debug("Instance is stopped!")
self.debug(
"Verify listVirtualMachines response for virtual machine: %s" \
% self.virtual_machine.id
)
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.virtual_machine.id
)
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
"Stopped",
"VM should be in Stopped state after stoping vm"
)
except Exception as e:
self.fail("failed to stop instance: %s" % e)
volumes = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
@ -1047,7 +1043,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -1112,7 +1108,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -1161,7 +1157,7 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -1278,7 +1274,7 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine_1.id
)
@ -1328,7 +1324,7 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine_2.id
)
@ -1375,11 +1371,11 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
self.virtual_machine_2.delete(self.apiclient)
self.debug("Instance destroyed..waiting till expunge interval")
interval = list_configurations(
interval = Configurations.list(
self.apiclient,
name='expunge.interval'
)
delay = list_configurations(
delay = Configurations.list(
self.apiclient,
name='expunge.delay'
)
@ -1578,7 +1574,7 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
self.debug("Deployed instance in account: %s" %
self.account.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -1605,7 +1601,7 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
self.virtual_machine.start(self.apiclient)
self.debug("Started the instance: %s" % self.virtual_machine.name)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)

View File

@ -17,15 +17,31 @@
""" P1 tests for tags
"""
#Import Local Modules
import marvin
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 *
import datetime
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Tag,
Account,
VirtualMachine,
Iso,
Volume,
Network,
Host,
DiskOffering,
NATRule,
PublicIPAddress,
FireWallRule,
LoadBalancerRule,
Vpn,
Template,
Snapshot,
ServiceOffering,
Project)
from marvin.lib.common import (get_zone,
get_domain,
get_template)
from marvin.codes import FAILED
import time
class Services:
"""Test tags Services
@ -924,14 +940,14 @@ class TestResourceTags(cloudstackTestCase):
# 1. Create a tag on template/ISO using createTags API
# 2. Delete above created tag using deleteTags API
try:
self.debug("Stopping the virtual machine: %s" % self.vm_1.name)
#Stop virtual machine
self.vm_1.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
timeout = self.services["timeout"]
#Wait before server has be successfully stopped
time.sleep(self.services["sleep"])
while True:
list_volume = Volume.list(
self.apiclient,
@ -991,7 +1007,7 @@ class TestResourceTags(cloudstackTestCase):
'The tag should have original value'
)
templates = Template.list(
Template.list(
self.apiclient,
templatefilter=\
self.services["template"]["templatefilter"],
@ -1044,10 +1060,8 @@ class TestResourceTags(cloudstackTestCase):
)
self.debug("ISO created with ID: %s" % iso.id)
list_iso_response = list_isos(
self.apiclient,
id=iso.id
)
list_iso_response = Iso.list(self.apiclient,
id=iso.id)
self.assertEqual(
isinstance(list_iso_response, list),
True,
@ -1225,12 +1239,10 @@ class TestResourceTags(cloudstackTestCase):
self.debug("Creating snapshot on ROOT volume for VM: %s " %
self.vm_1.name)
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
volumes = Volume.list(self.apiclient,
virtualmachineid=self.vm_1.id,
type='ROOT',
listall=True
)
listall=True)
volume = volumes[0]
# Create a snapshot from the ROOTDISK
@ -1238,10 +1250,8 @@ class TestResourceTags(cloudstackTestCase):
self.debug("Snapshot created: ID - %s" % snapshot.id)
self.cleanup.append(snapshot)
snapshots = list_snapshots(
self.apiclient,
id=snapshot.id
)
snapshots = Snapshot.list(self.apiclient,
id=snapshot.id)
self.assertEqual(
isinstance(snapshots, list),
True,
@ -1275,13 +1285,10 @@ class TestResourceTags(cloudstackTestCase):
'manual',
'The tag should have original value'
)
snapshots = list_snapshots(
self.apiclient,
snapshots = Snapshot.list(self.apiclient,
listall=True,
key='type',
value='manual'
)
value='manual')
self.assertEqual(
isinstance(snapshots, list),
True,
@ -1563,21 +1570,16 @@ class TestResourceTags(cloudstackTestCase):
'India',
'The tag should have original value'
)
self.debug("Creating the same tag with caps for user VM")
try:
tag_2 = Tag.create(
self.apiclient,
Tag.create(self.apiclient,
resourceIds=self.vm_1.id,
resourceType='userVM',
tags={'REGION': 'INDIA'}
)
tags={'REGION': 'INDIA'})
except Exception as e:
pass
else:
assert("Creating same tag in upper case succeeded")
self.debug("Deleting the created tag..")
try:
tag_1.delete(
self.apiclient,
@ -1801,10 +1803,8 @@ class TestResourceTags(cloudstackTestCase):
)
self.debug("ISO created with ID: %s" % iso.id)
list_iso_response = list_isos(
self.apiclient,
id=iso.id
)
list_iso_response = Iso.list(self.apiclient,
id=iso.id)
self.assertEqual(
isinstance(list_iso_response, list),
True,
@ -1828,8 +1828,6 @@ class TestResourceTags(cloudstackTestCase):
domainid=user_account.domainid,
key='region',
)
self.debug("Verify listTag API using user account")
self.assertEqual(
isinstance(tags, list),
True,
@ -1884,26 +1882,18 @@ class TestResourceTags(cloudstackTestCase):
account=user_account.name,
domainid=user_account.domainid
)
self.debug("ISO created with ID: %s" % iso.id)
list_iso_response = list_isos(
self.apiclient,
id=iso.id
)
list_iso_response = Iso.list(self.apiclient,
id=iso.id)
self.assertEqual(
isinstance(list_iso_response, list),
True,
"Check list response returns a valid list"
)
self.debug("Creating a tag for the ISO")
tag = Tag.create(
self.apiclient,
Tag.create(self.apiclient,
resourceIds=iso.id,
resourceType='ISO',
tags={'region': 'India'}
)
self.debug("Tag created: %s" % tag.__dict__)
tags={'region': 'India'})
tags = Tag.list(
self.apiclient,
@ -1913,8 +1903,6 @@ class TestResourceTags(cloudstackTestCase):
domainid=user_account.domainid,
key='region',
)
self.debug("Verify listTag API using user account")
self.assertEqual(
isinstance(tags, list),
True,
@ -2200,37 +2188,11 @@ class TestResourceTags(cloudstackTestCase):
def test_21_create_tag_stopped_vm(self):
"Test creation of tag on stopped vm."
try:
self.debug("Stopping the virtual machine: %s" % self.vm_1.name)
#Stop virtual machine
self.vm_1.stop(self.apiclient)
timeout = self.services["timeout"]
#Wait before server has be successfully stopped
time.sleep(self.services["sleep"])
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.vm_1.id
)
self.debug(
"Verify listVirtualMachines response for virtual machine: %s" \
% self.vm_1.id
)
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
"Stopped",
"VM should be in stopped state after deployment"
)
self.debug("Creating a tag for user VM")
tag = Tag.create(
self.apiclient,
@ -2262,7 +2224,6 @@ class TestResourceTags(cloudstackTestCase):
)
self.debug("Deleting the created tag..")
try:
tag.delete(
self.apiclient,
resourceIds=self.vm_1.id,
@ -2270,7 +2231,7 @@ class TestResourceTags(cloudstackTestCase):
tags={'region': 'India'}
)
except Exception as e:
self.fail("Failed to delete the tag - %s" % e)
self.fail("Exception occured - %s" % e)
return
@attr(tags=["advanced", "basic", "selfservice"])

View File

@ -17,15 +17,20 @@
""" P1 tests for Templates
"""
#Import Local Modules
import marvin
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 *
import urllib
from random import random
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackAPI import listZones
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (Account,
Template,
ServiceOffering,
VirtualMachine,
Snapshot,
Volume)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
get_builtin_template_info)
#Import System modules
import time
@ -201,14 +206,13 @@ class TestCreateTemplate(cloudstackTestCase):
time.sleep(self.services["sleep"])
timeout = self.services["timeout"]
while True:
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter='all',
id=template.id,
zoneid=self.zone.id,
account=self.account.name,
domainid=self.account.domainid
)
domainid=self.account.domainid)
if isinstance(list_template_response, list):
break
elif timeout == 0:
@ -247,12 +251,10 @@ class TestCreateTemplate(cloudstackTestCase):
mode=self.services["mode"]
)
self.debug("creating an instance with template ID: %s" % template.id)
vm_response = list_virtual_machines(
self.apiclient,
vm_response = VirtualMachine.list(self.apiclient,
id=virtual_machine.id,
account=self.account.name,
domainid=self.account.domainid
)
domainid=self.account.domainid)
self.assertEqual(
isinstance(vm_response, list),
True,
@ -300,17 +302,21 @@ class TestTemplates(cloudstackTestCase):
cls.services["ostype"]
)
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
cls._cleanup = []
try:
cls.account = Account.create(
cls.api_client,
cls.services["account"],
domainid=cls.domain.id
)
cls._cleanup.append(cls.account)
cls.services["account"] = cls.account.name
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
)
cls._cleanup.append(cls.service_offering)
# create virtual machine
cls.virtual_machine = VirtualMachine.create(
@ -325,16 +331,13 @@ class TestTemplates(cloudstackTestCase):
cls.virtual_machine.stop(cls.api_client)
timeout = cls.services["timeout"]
#Wait before server has be successfully stopped
time.sleep(cls.services["sleep"])
while True:
list_volume = list_volumes(
list_volume = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
listall=True
)
listall=True)
if isinstance(list_volume, list):
break
elif timeout == 0:
@ -351,10 +354,9 @@ class TestTemplates(cloudstackTestCase):
cls.services["template"],
cls.volume.id
)
cls._cleanup = [
cls.service_offering,
cls.account,
]
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Failure in setUpClass: %s" % e)
@classmethod
def tearDownClass(cls):
@ -405,12 +407,11 @@ class TestTemplates(cloudstackTestCase):
self.debug("creating an instance with template ID: %s" % self.template.id)
self.cleanup.append(virtual_machine)
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=virtual_machine.id,
account=self.account.name,
domainid=self.account.domainid
)
domainid=self.account.domainid)
#Verify VM response to check whether VM deployment was successful
self.assertNotEqual(
len(vm_response),
@ -435,13 +436,12 @@ class TestTemplates(cloudstackTestCase):
# 2. Delete the created template and again verify list template response
# Verify template response for updated attributes
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["template"]["templatefilter"],
id=self.template.id,
zoneid=self.zone.id
)
zoneid=self.zone.id)
self.assertEqual(
isinstance(list_template_response, list),
True,
@ -467,7 +467,7 @@ class TestTemplates(cloudstackTestCase):
self.template.delete(self.apiclient)
self.debug("Delete template: %s successful" % self.template)
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["template"]["templatefilter"],
@ -493,7 +493,7 @@ class TestTemplates(cloudstackTestCase):
# 4. Deploy Virtual machine using this template
# 5. VM should be in running state
volumes = list_volumes(
volumes = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='ROOT',
@ -518,7 +518,7 @@ class TestTemplates(cloudstackTestCase):
)
self.cleanup.append(template)
# Verify created template
templates = list_templates(
templates = Template.list(
self.apiclient,
templatefilter=\
self.services["template"]["templatefilter"],
@ -547,7 +547,7 @@ class TestTemplates(cloudstackTestCase):
)
self.cleanup.append(virtual_machine)
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=virtual_machine.id,
account=self.account.name,

View File

@ -17,16 +17,27 @@
""" P1 tests for Snapshots
"""
#Import Local Modules
import marvin
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.sshClient import SshClient
import datetime
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackAPI import deleteVolume
from marvin.lib.utils import (cleanup_resources)
from marvin.lib.base import (Account,
ServiceOffering,
NATRule,
VirtualMachine,
Snapshot,
Iso,
ImageStore,
LoadBalancerRule,
PublicIPAddress,
DiskOffering,
Template,
VpnUser,
Vpn,
Volume)
from marvin.lib.common import (get_zone,
get_domain,
get_template)
class Services:
"""Test Snapshots Services
@ -193,14 +204,19 @@ class TestVmUsage(cloudstackTestCase):
# VM.Destroy and volume .delete Event for the created account
# 4. Delete the account
try:
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
# Stop the VM
self.virtual_machine.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop instance: %s" % e)
time.sleep(self.services["sleep"])
try:
# Destroy the VM
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
self.virtual_machine.delete(self.apiclient)
except Exception as e:
self.fail("Failed to destroy VM: %s" % e)
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
@ -536,16 +552,18 @@ class TestVolumeUsage(cloudstackTestCase):
# 4. Destroy the Data disk. Volume.delete event is generated for data
# disk of the destroyed VM
try:
# Stop VM
self.debug("Stopping VM with ID: %s" % self.virtual_machine.id)
self.virtual_machine.stop(self.apiclient)
except Exception as e:
self.fail("Failed to stop instance: %s" % e)
volume_response = list_volumes(
volume_response = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
listall=True
)
listall=True)
self.assertEqual(
isinstance(volume_response, list),
True,
@ -643,17 +661,20 @@ class TestTemplateUsage(cloudstackTestCase):
cls.services["ostype"]
)
cls.services["server"]["zoneid"] = cls.zone.id
try:
cls.account = Account.create(
cls.api_client,
cls.services["account"],
domainid=cls.domain.id
)
cls._cleanup.append(cls.account)
cls.services["account"] = cls.account.name
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
)
cls._cleanup.append(cls.service_offering)
#create virtual machine
cls.virtual_machine = VirtualMachine.create(
cls.api_client,
@ -668,21 +689,18 @@ class TestTemplateUsage(cloudstackTestCase):
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
#Wait before server has be successfully stopped
time.sleep(30)
list_volume = list_volumes(
list_volume = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
listall=True
)
listall=True)
if isinstance(list_volume, list):
cls.volume = list_volume[0]
else:
raise Exception("List Volumes failed!")
cls._cleanup = [
cls.account,
]
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Exception in setUpClass: %s" % e)
return
@classmethod
@ -1180,20 +1198,17 @@ class TestSnapshotUsage(cloudstackTestCase):
# 3. Delete the account
# Get the Root disk of VM
volumes = list_volumes(
volumes = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='ROOT',
listall=True
)
listall=True)
self.assertEqual(
isinstance(volumes, list),
True,
"Check if list volumes return a valid data"
)
volume = volumes[0]
# Create a snapshot from the ROOTDISK
self.debug("Creating snapshot from volume: %s" % volumes[0].id)
snapshot = Snapshot.create(self.apiclient, volumes[0].id)

View File

@ -18,11 +18,24 @@
"""
#Import Local Modules
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.cloudstackTestCase import cloudstackTestCase
from marvin.cloudstackAPI import (listHypervisorCapabilities,
attachIso,
deleteVolume)
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Account,
ServiceOffering,
VirtualMachine,
Volume,
Host,
Iso,
Configurations,
DiskOffering,
Domain)
from marvin.lib.common import (get_domain,
get_zone,
get_template,
get_pod)
#Import System modules
import time
@ -186,8 +199,8 @@ class TestAttachVolume(cloudstackTestCase):
# 5. Start The VM. Start VM should be successful
# Create 5 volumes and attach to VM
try:
for i in range(self.max_data_volumes):
self.debug(i)
volume = Volume.create(
self.apiclient,
self.services["volume"],
@ -196,12 +209,8 @@ class TestAttachVolume(cloudstackTestCase):
domainid=self.account.domainid,
diskofferingid=self.disk_offering.id
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=volume.id
)
@ -215,12 +224,8 @@ class TestAttachVolume(cloudstackTestCase):
self.apiclient,
volume
)
self.debug("Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
))
# Check all volumes attached to same VM
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
@ -229,23 +234,20 @@ class TestAttachVolume(cloudstackTestCase):
self.assertNotEqual(
list_volume_response,
None,
"Check if volume exists in ListVolumes"
)
"Check if volume exists in ListVolumes")
self.assertEqual(
isinstance(list_volume_response, list),
True,
"Check list volumes response for valid list"
)
"Check list volumes response for valid list")
self.assertEqual(
len(list_volume_response),
self.max_data_volumes,
"Volumes attached to the VM %s. Expected %s" % (len(list_volume_response), self.max_data_volumes)
)
"Volumes attached to the VM %s. Expected %s" % (len(list_volume_response), self.max_data_volumes))
self.debug("Rebooting the VM: %s" % self.virtual_machine.id)
# Reboot VM
self.virtual_machine.reboot(self.apiclient)
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
)
@ -267,41 +269,15 @@ class TestAttachVolume(cloudstackTestCase):
"Check the state of VM"
)
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
# Stop VM
self.virtual_machine.stop(self.apiclient)
vm_response = list_virtual_machines(
self.apiclient,
id=self.virtual_machine.id,
)
self.assertEqual(
isinstance(vm_response, list),
True,
"Check list VM response for valid list"
)
#Verify VM response to check whether VM deployment was successful
self.assertNotEqual(
len(vm_response),
0,
"Check VMs available in List VMs response"
)
vm = vm_response[0]
self.assertEqual(
vm.state,
'Stopped',
"Check the state of VM"
)
self.debug("Starting the VM: %s" % self.virtual_machine.id)
# Start VM
self.virtual_machine.start(self.apiclient)
# Sleep to ensure that VM is in ready state
time.sleep(self.services["sleep"])
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
)
@ -324,6 +300,8 @@ class TestAttachVolume(cloudstackTestCase):
'Running',
"Check the state of VM"
)
except Exception as e:
self.fail("Exception occured: %s" % e)
return
@attr(tags = ["advanced", "advancedns"])
@ -349,7 +327,7 @@ class TestAttachVolume(cloudstackTestCase):
self.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=volume.id
)
@ -476,6 +454,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
# 5. Stop the VM. Stop VM should be successful
# 6. Start The VM. Start VM should be successful
try:
volumes = []
# Create 5 volumes and attach to VM
for i in range(self.max_data_volumes):
@ -487,32 +466,22 @@ class TestAttachDetachVolume(cloudstackTestCase):
domainid=self.account.domainid,
diskofferingid=self.disk_offering.id
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.name
))
self.cleanup.append(volume)
volumes.append(volume)
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=volume.id
)
self.assertNotEqual(
list_volume_response,
None,
"Check if volume exists in ListVolumes"
)
"Check if volume exists in ListVolumes")
self.assertEqual(
isinstance(list_volume_response, list),
True,
"Check list volumes response for valid list"
)
self.debug("Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
))
"Check list volumes response for valid list")
# Attach volume to VM
self.virtual_machine.attach_volume(
self.apiclient,
@ -520,7 +489,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
)
# Check all volumes attached to same VM
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
@ -544,10 +513,6 @@ class TestAttachDetachVolume(cloudstackTestCase):
# Detach all volumes from VM
for volume in volumes:
self.debug("Detach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
))
self.virtual_machine.detach_volume(
self.apiclient,
volume
@ -558,7 +523,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
# Sleep to ensure that VM is in ready state
time.sleep(self.services["sleep"])
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
)
@ -582,40 +547,14 @@ class TestAttachDetachVolume(cloudstackTestCase):
)
# Stop VM
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
self.virtual_machine.stop(self.apiclient)
# Sleep to ensure that VM is in ready state
time.sleep(self.services["sleep"])
vm_response = list_virtual_machines(
self.apiclient,
id=self.virtual_machine.id,
)
#Verify VM response to check whether VM deployment was successful
self.assertEqual(
isinstance(vm_response, list),
True,
"Check list VM response for valid list"
)
self.assertNotEqual(
len(vm_response),
0,
"Check VMs available in List VMs response"
)
vm = vm_response[0]
self.assertEqual(
vm.state,
'Stopped',
"Check the state of VM"
)
# Start VM
self.debug("Starting the VM: %s" % self.virtual_machine.id)
self.virtual_machine.start(self.apiclient)
# Sleep to ensure that VM is in ready state
time.sleep(self.services["sleep"])
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
)
@ -636,6 +575,8 @@ class TestAttachDetachVolume(cloudstackTestCase):
'Running',
"Check the state of VM"
)
except Exception as e:
self.fail("Exception occuered: %s" % e)
return
@ -754,7 +695,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
self.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=volume.id
)
@ -775,7 +716,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
)
# Check all volumes attached to same VM
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
@ -826,7 +767,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
self.apiclient.attachIso(cmd)
# Verify ISO is attached to VM
vm_response = list_virtual_machines(
vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id,
)
@ -941,7 +882,7 @@ class TestVolumes(cloudstackTestCase):
# response before volume attach (to VM)
# Check the list volumes response for vmname and virtualmachineid
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=self.volume.id
)
@ -982,7 +923,7 @@ class TestVolumes(cloudstackTestCase):
self.virtual_machine.attach_volume(self.apiclient, self.volume)
# Check all volumes attached to same VM
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
@ -1030,7 +971,7 @@ class TestVolumes(cloudstackTestCase):
#Sleep to ensure the current state will reflected in other calls
time.sleep(self.services["sleep"])
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=self.volume.id
)
@ -1074,7 +1015,7 @@ class TestVolumes(cloudstackTestCase):
#Sleep to ensure the current state will reflected in other calls
time.sleep(self.services["sleep"])
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiclient,
id=self.volume.id,
)

View File

@ -1933,8 +1933,6 @@ class TestVPCNetworkUpgrade(cloudstackTestCase):
except Exception as e:
self.fail("Failed to stop VMs, %s" % e)
wait_for_cleanup(self.apiclient, ["expunge.interval", "expunge.delay"])
# When all Vms ain network are stopped, network state changes from Implemented --> Shutdown --> Allocated
# We can't update the network when it is in Shutodown state, hence we should wait for the state to change to
# Allocated and then update the network
@ -2108,8 +2106,6 @@ class TestVPCNetworkUpgrade(cloudstackTestCase):
except Exception as e:
self.fail("Failed to stop VMs, %s" % e)
wait_for_cleanup(self.apiclient, ["expunge.interval", "expunge.delay"])
self.debug("Upgrading network offering to support PF services")
with self.assertRaises(Exception):
network_1.update(

View File

@ -19,7 +19,7 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.lib.utils import cleanup_resources, validateList
from marvin.lib.base import (VirtualMachine,
NATRule,
@ -1256,24 +1256,6 @@ class TestVMLifeCycleSharedNwVPC(cloudstackTestCase):
except Exception as e:
self.fail("Failed to stop the virtual instances, %s" % e)
self.debug("Check if the instance is in stopped state?")
vms = VirtualMachine.list(
self.apiclient,
id=self.vm_2.id,
listall=True
)
self.assertEqual(
isinstance(vms, list),
True,
"List virtual machines should return a valid list"
)
vm = vms[0]
self.assertEqual(
vm.state,
"Stopped",
"Virtual machine should be in stopped state"
)
self.debug("Validating if network rules are coonfigured properly?")
self.validate_network_rules()
return
@ -3099,35 +3081,7 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase):
self.account.name)
try:
self.vm_1.stop(self.apiclient)
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.vm_1.id
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
'Stopped',
"VM state should be stopped"
)
self.vm_2.stop(self.apiclient)
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.vm_2.id
)
vm_response = list_vm_response[0]
self.assertEqual(
vm_response.state,
'Stopped',
"VM state should be stopped"
)
except Exception as e:
self.fail("Failed to stop the virtual instances, %s" % e)

View File

@ -85,7 +85,6 @@ class TestCreateServiceOffering(cloudstackTestCase):
0,
"Check Service offering is created"
)
service_response = list_service_response[0]
self.assertEqual(
list_service_response[0].cpunumber,
@ -293,23 +292,10 @@ class TestServiceOfferings(cloudstackTestCase):
# 2. Using listVM command verify that this Vm
# has Small service offering Id.
self.debug("Stopping VM - ID: %s" % self.medium_virtual_machine.id)
try:
self.medium_virtual_machine.stop(self.apiclient)
# Ensure that VM is in stopped state
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.medium_virtual_machine.id
)
if isinstance(list_vm_response, list):
vm = list_vm_response[0]
if vm.state == 'Stopped':
self.debug("VM state: %s" % vm.state)
else:
raise Exception(
"Failed to stop VM (ID: %s) in change service offering" % vm.id)
self.debug("Change Service offering VM - ID: %s" %
self.medium_virtual_machine.id)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
cmd = changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd()
cmd.id = self.medium_virtual_machine.id

View File

@ -17,19 +17,28 @@
""" BVT tests for Templates ISO
"""
#Import Local Modules
import marvin
from marvin.codes import FAILED
from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import *
from marvin.sshClient import SshClient
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackAPI import (updateTemplate,
extractTemplate,
listZones,
updateTemplatePermissions,
deleteTemplate,
copyTemplate)
from marvin.lib.utils import random_gen, cleanup_resources
from marvin.lib.base import (Account,
ServiceOffering,
VirtualMachine,
DiskOffering,
Template,
Volume)
from marvin.lib.common import (get_domain,
get_zone,
get_template)
from nose.plugins.attrib import attr
import urllib
from random import random
#Import System modules
import datetime
import time
_multiprocess_shared_ = True
@ -62,10 +71,14 @@ class TestCreateTemplate(cloudstackTestCase):
cls.domain = get_domain(cls.apiclient)
cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
cls.services['mode'] = cls.zone.networktype
cls._cleanup = []
try:
cls.disk_offering = DiskOffering.create(
cls.apiclient,
cls.services["disk_offering"]
)
cls._cleanup.append(cls.disk_offering)
template = get_template(
cls.apiclient,
cls.zone.id,
@ -82,16 +95,17 @@ class TestCreateTemplate(cloudstackTestCase):
cls.services["volume"]["diskoffering"] = cls.disk_offering.id
cls.services["volume"]["zoneid"] = cls.zone.id
cls.services["sourcezoneid"] = cls.zone.id
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"]
)
cls._cleanup.append(cls.service_offering)
#create virtual machine
cls.virtual_machine = VirtualMachine.create(
cls.apiclient,
@ -102,35 +116,10 @@ class TestCreateTemplate(cloudstackTestCase):
serviceofferingid=cls.service_offering.id,
mode=cls.services["mode"]
)
#Stop virtual machine
cls.virtual_machine.stop(cls.apiclient)
# Poll listVM to ensure VM is stopped properly
timeout = cls.services["timeout"]
while True:
time.sleep(cls.services["sleep"])
# Ensure that VM is in stopped state
list_vm_response = list_virtual_machines(
cls.apiclient,
id=cls.virtual_machine.id
)
if isinstance(list_vm_response, list):
vm = list_vm_response[0]
if vm.state == 'Stopped':
break
if timeout == 0:
raise Exception(
"Failed to stop VM (ID: %s) in change service offering" %
vm.id)
timeout = timeout - 1
list_volume = list_volumes(
list_volume = Volume.list(
cls.apiclient,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
@ -138,11 +127,9 @@ class TestCreateTemplate(cloudstackTestCase):
)
cls.volume = list_volume[0]
cls._cleanup = [
cls.account,
cls.service_offering,
cls.disk_offering,
]
except Exception as e:
cls.tearDownClass()
raise unittest.SkipTest("Exception in setUpClass: %s" % e)
return
@classmethod
@ -180,7 +167,7 @@ class TestCreateTemplate(cloudstackTestCase):
self.debug("Created template with ID: %s" % template.id)
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["templatefilter"],
@ -289,31 +276,7 @@ class TestTemplates(cloudstackTestCase):
#Stop virtual machine
cls.virtual_machine.stop(cls.apiclient)
# Poll listVM to ensure VM is stopped properly
timeout = cls.services["timeout"]
while True:
time.sleep(cls.services["sleep"])
# Ensure that VM is in stopped state
list_vm_response = list_virtual_machines(
cls.apiclient,
id=cls.virtual_machine.id
)
if isinstance(list_vm_response, list):
vm = list_vm_response[0]
if vm.state == 'Stopped':
break
if timeout == 0:
raise Exception(
"Failed to stop VM (ID: %s) in change service offering" %
vm.id)
timeout = timeout - 1
list_volume = list_volumes(
list_volume = Volume.list(
cls.apiclient,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
@ -323,8 +286,8 @@ class TestTemplates(cloudstackTestCase):
cls.volume = list_volume[0]
except Exception as e:
raise Exception(
"Exception: Unable to find root volume foe VM: %s" %
cls.virtual_machine.id)
"Exception: Unable to find root volume foe VM: %s - %s" %
(cls.virtual_machine.id, e))
#Create templates for Edit, Delete & update permissions testcases
cls.template_1 = Template.create(
@ -407,7 +370,7 @@ class TestTemplates(cloudstackTestCase):
timeout = self.services["timeout"]
while True:
# Verify template response for updated attributes
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["templatefilter"],
@ -473,7 +436,7 @@ class TestTemplates(cloudstackTestCase):
self.template_1.delete(self.apiclient)
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["templatefilter"],
@ -560,7 +523,7 @@ class TestTemplates(cloudstackTestCase):
cmd.isextractable = self.services["isextractable"]
self.apiclient.updateTemplatePermissions(cmd)
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter='featured',
id=self.template_2.id,
@ -617,7 +580,7 @@ class TestTemplates(cloudstackTestCase):
self.apiclient.copyTemplate(cmd)
# Verify template is copied to another zone using ListTemplates
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["templatefilter"],
@ -651,7 +614,7 @@ class TestTemplates(cloudstackTestCase):
timeout = self.services["timeout"]
while True:
time.sleep(self.services["sleep"])
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter=\
self.services["templatefilter"],
@ -691,7 +654,7 @@ class TestTemplates(cloudstackTestCase):
# Validate the following
# 1. ListTemplates should show only 'public' templates for normal user
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter='featured',
account=self.user.name,
@ -723,7 +686,7 @@ class TestTemplates(cloudstackTestCase):
# Validate the following
# 1. ListTemplates should not show 'SYSTEM' templates for normal user
list_template_response = list_templates(
list_template_response = Template.list(
self.apiclient,
templatefilter='featured',
account=self.user.name,

View File

@ -18,12 +18,24 @@
"""
#Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase
from marvin.codes import FAILED
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.cloudstackAPI import (recoverVirtualMachine,
destroyVirtualMachine,
attachIso,
detachIso)
from marvin.lib.utils import (cleanup_resources,
validateList,
get_hypervisor_type)
from marvin.lib.base import (Account,
ServiceOffering,
VirtualMachine,
Host,
Iso,
Router,
Configurations)
from marvin.lib.common import (get_domain,
get_zone,
get_template)
from marvin.codes import FAILED, PASS
from nose.plugins.attrib import attr
#Import System modules
import time
@ -110,7 +122,7 @@ class TestDeployVM(cloudstackTestCase):
# Validate the following:
# 1. Virtual Machine is accessible via SSH
# 2. listVirtualMachines returns accurate information
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.virtual_machine.id
)
@ -159,7 +171,7 @@ class TestDeployVM(cloudstackTestCase):
3. Has a linklocalip, publicip and a guestip
@return:
"""
routers = list_routers(self.apiclient, account=self.account.name)
routers = Router.list(self.apiclient, account=self.account.name)
self.assertTrue(len(routers) > 0, msg = "No virtual router found")
router = routers[0]
@ -181,7 +193,7 @@ class TestDeployVM(cloudstackTestCase):
2. is in the account the VM was deployed in
@return:
"""
routers = list_routers(self.apiclient, account=self.account.name)
routers = Router.list(self.apiclient, account=self.account.name)
self.assertTrue(len(routers) > 0, msg = "No virtual router found")
router = routers[0]
@ -301,31 +313,10 @@ class TestVMLifeCycle(cloudstackTestCase):
# 1. Should Not be able to login to the VM.
# 2. listVM command should return
# this VM.State of this VM should be ""Stopped"".
self.debug("Stopping VM - ID: %s" % self.virtual_machine.id)
try:
self.small_virtual_machine.stop(self.apiclient)
list_vm_response = list_virtual_machines(
self.apiclient,
id=self.small_virtual_machine.id
)
self.assertEqual(
isinstance(list_vm_response, list),
True,
"Check list response returns a valid list"
)
self.assertNotEqual(
len(list_vm_response),
0,
"Check VM available in List Virtual Machines"
)
self.assertEqual(
list_vm_response[0].state,
"Stopped",
"Check virtual machine is in stopped state"
)
except Exception as e:
self.fail("Failed to stop VM: %s" % e)
return
@attr(tags = ["devcloud", "advanced", "advancedns", "smoke", "basic", "sg", "selfservice"])
@ -339,7 +330,7 @@ class TestVMLifeCycle(cloudstackTestCase):
self.debug("Starting VM - ID: %s" % self.virtual_machine.id)
self.small_virtual_machine.start(self.apiclient)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.small_virtual_machine.id
)
@ -379,7 +370,7 @@ class TestVMLifeCycle(cloudstackTestCase):
self.debug("Rebooting VM - ID: %s" % self.virtual_machine.id)
self.small_virtual_machine.reboot(self.apiclient)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.small_virtual_machine.id
)
@ -416,7 +407,7 @@ class TestVMLifeCycle(cloudstackTestCase):
self.debug("Destroy VM - ID: %s" % self.small_virtual_machine.id)
self.small_virtual_machine.delete(self.apiclient)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.small_virtual_machine.id
)
@ -456,7 +447,7 @@ class TestVMLifeCycle(cloudstackTestCase):
cmd.id = self.small_virtual_machine.id
self.apiclient.recoverVirtualMachine(cmd)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.small_virtual_machine.id
)
@ -540,7 +531,7 @@ class TestVMLifeCycle(cloudstackTestCase):
self.vm_to_migrate.migrate(self.apiclient, migrate_host.id)
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.vm_to_migrate.id
)
@ -580,7 +571,7 @@ class TestVMLifeCycle(cloudstackTestCase):
cmd.id = self.small_virtual_machine.id
self.apiclient.destroyVirtualMachine(cmd)
config = list_configurations(
config = Configurations.list(
self.apiclient,
name='expunge.delay'
)
@ -590,14 +581,14 @@ class TestVMLifeCycle(cloudstackTestCase):
#VM should be destroyed unless expunge thread hasn't run
#Wait for two cycles of the expunge thread
config = list_configurations(
config = Configurations.list(
self.apiclient,
name='expunge.interval'
)
expunge_cycle = int(config[0].value)
wait_time = expunge_cycle * 2
while wait_time >= 0:
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=self.small_virtual_machine.id
)
@ -676,7 +667,7 @@ class TestVMLifeCycle(cloudstackTestCase):
self.debug("Found a mount point at %s with size %s" % (res, size))
# Get ISO size
iso_response = list_isos(
iso_response = Iso.list(
self.apiclient,
id=iso.id
)

View File

@ -17,15 +17,25 @@
""" BVT tests for Volumes
"""
#Import Local Modules
from marvin.cloudstackTestCase import *
from marvin.cloudstackException import *
from marvin.cloudstackAPI import *
from marvin.sshClient import SshClient
from marvin.lib.utils import *
from marvin.lib.base import *
from marvin.lib.common import *
from marvin.cloudstackTestCase import cloudstackTestCase
#from marvin.cloudstackException import *
from marvin.cloudstackAPI import (deleteVolume,
extractVolume,
resizeVolume)
#from marvin.sshClient import SshClient
from marvin.lib.utils import (cleanup_resources,
format_volume_to_ext3)
from marvin.lib.base import (ServiceOffering,
VirtualMachine,
Account,
Volume,
Host,
DiskOffering)
from marvin.lib.common import (get_domain,
get_zone,
get_template)
from marvin.lib.utils import checkVolumeSize
from marvin.codes import SUCCESS
from marvin.codes import SUCCESS, FAILED
from nose.plugins.attrib import attr
#Import System modules
import os
@ -149,10 +159,9 @@ class TestCreateVolume(cloudstackTestCase):
#Attach a volume with different disk offerings
#and check the memory allocated to each of them
for volume in self.volumes:
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=volume.id
)
id=volume.id)
self.assertEqual(
isinstance(list_volume_response, list),
True,
@ -186,7 +195,7 @@ class TestCreateVolume(cloudstackTestCase):
time.sleep(self.services["sleep"])
# Ensure that VM is in running state
list_vm_response = list_virtual_machines(
list_vm_response = VirtualMachine.list(
self.apiClient,
id=self.virtual_machine.id
)
@ -337,7 +346,7 @@ class TestVolumes(cloudstackTestCase):
))
self.virtual_machine.attach_volume(self.apiClient, self.volume)
self.attached = True
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=self.volume.id
)
@ -429,7 +438,7 @@ class TestVolumes(cloudstackTestCase):
self.attached = False
#Sleep to ensure the current state will reflected in other calls
time.sleep(self.services["sleep"])
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=self.volume.id
)
@ -501,7 +510,7 @@ class TestVolumes(cloudstackTestCase):
cmd.diskofferingid = self.services['resizeddiskofferingid']
success = False
try:
response = self.apiClient.resizeVolume(cmd)
self.apiClient.resizeVolume(cmd)
except Exception as ex:
#print str(ex)
if "invalid" in str(ex):
@ -516,7 +525,7 @@ class TestVolumes(cloudstackTestCase):
cmd.diskofferingid = "invalid id"
success = False
try:
response = self.apiClient.resizeVolume(cmd)
self.apiClient.resizeVolume(cmd)
except Exception as ex:
if "invalid" in str(ex):
success = True
@ -527,7 +536,7 @@ class TestVolumes(cloudstackTestCase):
# try to resize a root disk with a disk offering, root can only be resized by size=
# get root vol from created vm
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
virtualmachineid=self.virtual_machine.id,
type='ROOT',
@ -540,7 +549,7 @@ class TestVolumes(cloudstackTestCase):
cmd.diskofferingid = self.services['diskofferingid']
success = False
try:
response = self.apiClient.resizeVolume(cmd)
self.apiClient.resizeVolume(cmd)
except Exception as ex:
if "Can only resize Data volumes" in str(ex):
success = True
@ -578,7 +587,7 @@ class TestVolumes(cloudstackTestCase):
count = 0
success = True
while count < 10:
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=self.volume.id,
type='DATADISK'
@ -637,7 +646,7 @@ class TestVolumes(cloudstackTestCase):
count = 0
success = False
while count < 3:
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=self.volume.id,
type='DATADISK'
@ -661,7 +670,7 @@ class TestVolumes(cloudstackTestCase):
self.debug("Resize Root for : %s" % self.virtual_machine.id)
# get root vol from created vm
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
virtualmachineid=self.virtual_machine.id,
type='ROOT',
@ -679,7 +688,7 @@ class TestVolumes(cloudstackTestCase):
count = 0
success = False
while count < 3:
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=rootvolume.id
)
@ -732,7 +741,7 @@ class TestVolumes(cloudstackTestCase):
cmd.id = self.volume_1.id
self.apiClient.deleteVolume(cmd)
list_volume_response = list_volumes(
list_volume_response = Volume.list(
self.apiClient,
id=self.volume_1.id,
type='DATADISK'