mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
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:
parent
d4f167032b
commit
247c796693
@ -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)
|
||||
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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'
|
||||
)
|
||||
|
||||
@ -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'
|
||||
)
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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'
|
||||
)
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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):
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
)
|
||||
|
||||
@ -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"])
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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,
|
||||
)
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
)
|
||||
|
||||
@ -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'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user