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)
|
||||
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)
|
||||
try:
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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)
|
||||
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)
|
||||
try:
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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,20 +745,24 @@ class TestTemplates(cloudstackTestCase):
|
||||
cls.services["ostype"]
|
||||
)
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
cls.account = Account.create(
|
||||
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.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(
|
||||
# create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["virtual_machine"],
|
||||
templateid=template.id,
|
||||
@ -765,27 +770,20 @@ class TestTemplates(cloudstackTestCase):
|
||||
domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
)
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
#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,46 +489,43 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
|
||||
if value == USER_ACCOUNT:
|
||||
isadmin=False
|
||||
|
||||
# Create Account
|
||||
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
|
||||
apiclient = self.testClient.getUserApiClient(
|
||||
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
|
||||
self.services["service_offering"]["cpunumber"] = "2"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
# Create static service offerings (Second offering should have
|
||||
# one of the custom values greater than 1st one, scaling down is not allowed
|
||||
self.services["service_offering"]["cpunumber"] = "2"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
|
||||
serviceOffering_static_1 = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_static_1 = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.services["service_offering"]["cpunumber"] = "4"
|
||||
self.services["service_offering"]["cpunumber"] = "4"
|
||||
|
||||
serviceOffering_static_2 = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_static_2 = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.cleanup_co.append(serviceOffering_static_1)
|
||||
self.cleanup_co.append(serviceOffering_static_2)
|
||||
self.cleanup_co.append(serviceOffering_static_1)
|
||||
self.cleanup_co.append(serviceOffering_static_2)
|
||||
|
||||
# Deploy VM
|
||||
try:
|
||||
# Deploy VM
|
||||
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:
|
||||
# Scale VM to new static service offering
|
||||
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,69 +551,59 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
|
||||
if value == USER_ACCOUNT:
|
||||
isadmin=False
|
||||
|
||||
# Create Account and api client
|
||||
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
|
||||
apiclient = self.testClient.getUserApiClient(
|
||||
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(
|
||||
UserName=self.account.name,
|
||||
DomainName=self.account.domain)
|
||||
self.cleanup.append(self.account)
|
||||
self.cleanup.append(self.account)
|
||||
|
||||
# Create static and dynamic service offerings
|
||||
self.services["service_offering"]["cpunumber"] = "2"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
# Create static and dynamic service offerings
|
||||
self.services["service_offering"]["cpunumber"] = "2"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
|
||||
serviceOffering_static = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_static = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
|
||||
serviceOffering_dynamic = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_dynamic = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.cleanup_co.append(serviceOffering_static)
|
||||
self.cleanup_co.append(serviceOffering_dynamic)
|
||||
self.cleanup_co.append(serviceOffering_static)
|
||||
self.cleanup_co.append(serviceOffering_dynamic)
|
||||
|
||||
# Deploy VM with static service offering
|
||||
try:
|
||||
# Deploy VM with static service offering
|
||||
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:
|
||||
# Scale VM to dynamic service offering proving all custom values
|
||||
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:
|
||||
# Deploy VM with static service offering
|
||||
virtualMachine_2 = VirtualMachine.create(apiclient,self.services["virtual_machine"],
|
||||
serviceofferingid=serviceOffering_static.id,
|
||||
accountid=self.account.name,domainid=self.account.domainid)
|
||||
|
||||
# Stop VM
|
||||
virtualMachine_2.stop(apiclient)
|
||||
except Exception as e:
|
||||
self.fail("vm creation failed: %s" % e)
|
||||
self.fail("Exception occuered: %s" % e)
|
||||
|
||||
# Stop VM and verify it is in stopped state
|
||||
self.stopVM(virtualMachine_2)
|
||||
|
||||
# Scale VM to dynamic service offering proving only custom cpu number
|
||||
try:
|
||||
# Scale VM to dynamic service offering proving only custom cpu number
|
||||
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,48 +625,45 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
|
||||
if value == USER_ACCOUNT:
|
||||
isadmin=False
|
||||
|
||||
# Create account and api client
|
||||
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
|
||||
apiclient = self.testClient.getUserApiClient(
|
||||
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(
|
||||
UserName=self.account.name,
|
||||
DomainName=self.account.domain)
|
||||
self.cleanup.append(self.account)
|
||||
self.cleanup.append(self.account)
|
||||
|
||||
# Create dynamic and static service offering
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
# Create dynamic and static service offering
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
|
||||
serviceOffering_dynamic = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_dynamic = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.services["service_offering"]["cpunumber"] = "4"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
self.services["service_offering"]["cpunumber"] = "4"
|
||||
self.services["service_offering"]["cpuspeed"] = "256"
|
||||
self.services["service_offering"]["memory"] = "128"
|
||||
|
||||
serviceOffering_static = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_static = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.cleanup_co.append(serviceOffering_static)
|
||||
self.cleanup_co.append(serviceOffering_dynamic)
|
||||
self.cleanup_co.append(serviceOffering_static)
|
||||
self.cleanup_co.append(serviceOffering_dynamic)
|
||||
|
||||
# Deploy VM with dynamic service offering
|
||||
try:
|
||||
# Deploy VM with dynamic service offering
|
||||
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)
|
||||
# Stop VM and verify that it is in stopped state
|
||||
virtualMachine.stop(apiclient)
|
||||
|
||||
# Scale VM to static service offering
|
||||
try:
|
||||
# Scale VM to static service offering
|
||||
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,62 +690,52 @@ class TestScaleVmDynamicServiceOffering(cloudstackTestCase):
|
||||
if value == USER_ACCOUNT:
|
||||
isadmin=False
|
||||
|
||||
# Create Account
|
||||
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
|
||||
apiclient = self.testClient.getUserApiClient(
|
||||
try:
|
||||
# Create Account
|
||||
self.account = Account.create(self.apiclient,self.services["account"],domainid=self.domain.id, admin=isadmin)
|
||||
apiclient = self.testClient.getUserApiClient(
|
||||
UserName=self.account.name,
|
||||
DomainName=self.account.domain)
|
||||
self.cleanup.append(self.account)
|
||||
self.cleanup.append(self.account)
|
||||
|
||||
# Create dynamic service offerings
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
# Create dynamic service offerings
|
||||
self.services["service_offering"]["cpunumber"] = ""
|
||||
self.services["service_offering"]["cpuspeed"] = ""
|
||||
self.services["service_offering"]["memory"] = ""
|
||||
|
||||
serviceOffering_dynamic_1 = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_dynamic_1 = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
serviceOffering_dynamic_2 = ServiceOffering.create(self.apiclient,
|
||||
serviceOffering_dynamic_2 = ServiceOffering.create(self.apiclient,
|
||||
self.services["service_offering"])
|
||||
|
||||
self.cleanup_co.append(serviceOffering_dynamic_1)
|
||||
self.cleanup_co.append(serviceOffering_dynamic_2)
|
||||
self.cleanup_co.append(serviceOffering_dynamic_1)
|
||||
self.cleanup_co.append(serviceOffering_dynamic_2)
|
||||
|
||||
# Deploy VM with dynamic service offering
|
||||
try:
|
||||
# Deploy VM with dynamic service offering
|
||||
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:
|
||||
# Scale VM with same dynamic service offering
|
||||
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:
|
||||
# Scale VM with other dynamic service offering
|
||||
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)
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -1901,27 +1901,11 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
|
||||
"Check egress rule created properly"
|
||||
)
|
||||
|
||||
# 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))
|
||||
try:
|
||||
# Stop virtual machine
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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,23 +16,47 @@
|
||||
# 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):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
||||
|
||||
cls.testClient = super(TestVolumes, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -112,9 +136,9 @@ class TestVolumes(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
raise Exception("Warning: Exception during cleanup : %s" % e)
|
||||
|
||||
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@summary: Function to verify expected and actual values
|
||||
Step1: Initializing return flag to True
|
||||
Step1: Verifying length of expected and actual dictionaries is matching.
|
||||
@ -2142,7 +2166,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "selfservice"])
|
||||
def test_04_list_Destroyed_vm(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test List Destroyed VM's
|
||||
@Steps:
|
||||
Step1: Listing all the Destroyed VMs for a user
|
||||
@ -2250,7 +2274,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "selfservice"])
|
||||
def test_05_list_vm_by_id(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test List VM by Id
|
||||
@Steps:
|
||||
Step1: Listing all the VMs for a user
|
||||
@ -2352,7 +2376,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "selfservice"])
|
||||
def test_06_list_vm_by_name(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test List VM's by Name
|
||||
@Steps:
|
||||
Step1: Listing all the VMs for a user
|
||||
@ -2394,7 +2418,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
)
|
||||
self.cleanup.append(vm_created)
|
||||
vms.update({i: vm_created})
|
||||
|
||||
|
||||
# Listing all the VM's for a User
|
||||
list_vms_after = VirtualMachine.list(
|
||||
self.userapiclient,
|
||||
@ -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
|
||||
@ -3284,7 +3292,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "provisioning"])
|
||||
def test_12_vm_nics(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify Nics for a VM
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
@ -3293,7 +3301,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
Step4: Creating 1 network
|
||||
Step5: Listing all the networks again
|
||||
Step6: Verifying that the list size is 2
|
||||
Step7: Verifying that VM deployed in step1 has only 1 nic
|
||||
Step7: Verifying that VM deployed in step1 has only 1 nic
|
||||
and it is same as network listed in step3
|
||||
Step8: Adding the networks created in step4 to VM deployed in step1
|
||||
Step9: Verifying that VM deployed in step1 has 2 nics
|
||||
@ -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,
|
||||
@ -3513,7 +3520,7 @@ class TestListInstances(cloudstackTestCase):
|
||||
default_nic = vm_nics_after[i]
|
||||
else:
|
||||
non_default_nic = vm_nics_after[i]
|
||||
|
||||
|
||||
self.assertEquals(
|
||||
1,
|
||||
default_count,
|
||||
@ -3566,7 +3573,7 @@ class TestInstances(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestInstances, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -3587,13 +3594,13 @@ class TestInstances(cloudstackTestCase):
|
||||
cls.storagetype = 'shared'
|
||||
cls.services["service_offerings"]["tiny"]["storagetype"] = 'shared'
|
||||
cls.services["disk_offering"]["storagetype"] = 'shared'
|
||||
|
||||
|
||||
cls.services['mode'] = cls.zone.networktype
|
||||
cls.services["virtual_machine"]["hypervisor"] = cls.testClient.getHypervisorInfo()
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
cls.services["virtual_machine"]["template"] = cls.template.id
|
||||
cls.services["custom_volume"]["zoneid"] = cls.zone.id
|
||||
|
||||
|
||||
# Creating Disk offering, Service Offering and Account
|
||||
cls.disk_offering = DiskOffering.create(
|
||||
cls.api_client,
|
||||
@ -3648,7 +3655,7 @@ class TestInstances(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -3660,10 +3667,10 @@ class TestInstances(cloudstackTestCase):
|
||||
Step4: returning the return flag after all the values are verified
|
||||
"""
|
||||
return_flag = True
|
||||
|
||||
|
||||
if len(expected_vals) != len(actual_vals):
|
||||
return False
|
||||
|
||||
|
||||
keys = expected_vals.keys()
|
||||
for i in range(0, len(expected_vals)):
|
||||
exp_val = expected_vals[keys[i]]
|
||||
@ -3680,8 +3687,8 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_13_attach_detach_iso(self):
|
||||
"""
|
||||
@Desc: Test Attach ISO to VM and Detach ISO from VM.
|
||||
"""
|
||||
@Desc: Test Attach ISO to VM and Detach ISO from VM.
|
||||
@Steps:
|
||||
Step1: Listing all the VMs for a user
|
||||
Step2: Verifying that the size of the list is 0
|
||||
@ -3808,15 +3815,15 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_14_vm_snapshot_pagination(self):
|
||||
"""
|
||||
@Desc: Test VM Snapshots pagination.
|
||||
"""
|
||||
@Desc: Test VM Snapshots pagination.
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
Step2: Listing all the Snapshots of the VM deployed in Step 1
|
||||
Step3: Verifying that the list size is 0
|
||||
Step4: Creating (pagesize + 1) number of Snapshots for the VM
|
||||
Step5: Listing all the Snapshots of the VM deployed in Step 1
|
||||
Step6: Verifying that the list size is (pagesize + 1)
|
||||
Step6: Verifying that the list size is (pagesize + 1)
|
||||
Step7: Listing all the VM snapshots in Page 1 with page size
|
||||
Step8: Verifying that size of the list is same as page size
|
||||
Step9: Listing all the VM snapshots in Page 2 with page size
|
||||
@ -3965,8 +3972,8 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_15_revert_vm_to_snapshot(self):
|
||||
"""
|
||||
@Desc: Test Revert VM to Snapshot functionality.
|
||||
"""
|
||||
@Desc: Test Revert VM to Snapshot functionality.
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
Step2: Listing all the Snapshots of the VM deployed in Step 1
|
||||
@ -4064,14 +4071,14 @@ class TestInstances(cloudstackTestCase):
|
||||
len(list_snapshots_after),
|
||||
"Count of VM Snapshots is not matching"
|
||||
)
|
||||
# Verifying that only 1 snapshot is having current flag set to true
|
||||
# Verifying that only 1 snapshot is having current flag set to true
|
||||
# and that snapshot is the latest snapshot created (snapshot2)
|
||||
current_count = 0
|
||||
for i in range(0, len(list_snapshots_after)):
|
||||
if(list_snapshots_after[i].current is True):
|
||||
current_count = current_count + 1
|
||||
current_snapshot = list_snapshots_after[i]
|
||||
|
||||
|
||||
self.assertEquals(
|
||||
1,
|
||||
current_count,
|
||||
@ -4104,7 +4111,7 @@ class TestInstances(cloudstackTestCase):
|
||||
len(list_snapshots_after),
|
||||
"Count of VM Snapshots is not matching"
|
||||
)
|
||||
# Verifying that only 1 snapshot is having current flag set to true
|
||||
# Verifying that only 1 snapshot is having current flag set to true
|
||||
# and that snapshot is snapshot1
|
||||
current_count = 0
|
||||
for i in range(0, len(list_snapshots_after)):
|
||||
@ -4125,7 +4132,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "selfservice"])
|
||||
def test_16_list_vm_volumes_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify pagination of Volumes for a VM
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
@ -4218,7 +4225,7 @@ class TestInstances(cloudstackTestCase):
|
||||
self.userapiclient,
|
||||
volume_created
|
||||
)
|
||||
|
||||
|
||||
# List all the volumes for the VM again
|
||||
list_volumes_after = Volume.list(
|
||||
self.userapiclient,
|
||||
@ -4299,7 +4306,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_17_running_vm_scaleup(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify change service for Running VM
|
||||
@Steps:
|
||||
Step1: Checking if dynamic scaling of virtual machines is enabled in zone and template.
|
||||
@ -4437,7 +4444,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_18_stopped_vm_change_service(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify change service for Stopped VM
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
@ -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,
|
||||
@ -4573,7 +4564,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_19_create_reset_vm_sshkey(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify creation and reset of SSH Key for VM
|
||||
@Steps:
|
||||
Step1: Deploying a VM
|
||||
@ -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
|
||||
@ -4652,7 +4627,7 @@ class TestInstances(cloudstackTestCase):
|
||||
list_keypairs_before_size = 0
|
||||
if list_keypairs_before is not None:
|
||||
list_keypairs_before_size = len(list_keypairs_before)
|
||||
|
||||
|
||||
# Creating a new Key pair
|
||||
new_keypair = SSHKeyPair.create(
|
||||
self.userapiclient,
|
||||
@ -4716,7 +4691,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "selfservice"])
|
||||
def test_20_update_vm_displayname_group(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify Update VM details
|
||||
@Steps:
|
||||
Step1: List all the VM's for a user
|
||||
@ -4817,7 +4792,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_21_restore_vm(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify Restore VM
|
||||
@Steps:
|
||||
Step1: List all the VM's for a user
|
||||
@ -4904,7 +4879,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "selfservice"])
|
||||
def test_22_deploy_vm_multiple_networks(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify deploy VM with multiple networks
|
||||
@Steps:
|
||||
Step1: List all the networks for user
|
||||
@ -4924,7 +4899,7 @@ class TestInstances(cloudstackTestCase):
|
||||
networks_list_size = 0
|
||||
if networks_list_before is not None:
|
||||
networks_list_size = len(networks_list_before)
|
||||
|
||||
|
||||
# Listing Network Offerings
|
||||
network_offerings_list = NetworkOffering.list(
|
||||
self.apiClient,
|
||||
@ -4956,7 +4931,7 @@ class TestInstances(cloudstackTestCase):
|
||||
)
|
||||
self.cleanup.append(network)
|
||||
networks_list_size = networks_list_size + 1
|
||||
|
||||
|
||||
# Listing the networks again
|
||||
networks_list_after = Network.list(
|
||||
self.userapiclient,
|
||||
@ -5036,7 +5011,7 @@ class TestInstances(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["basic", "provisioning"])
|
||||
def test_23_deploy_vm_multiple_securitygroups(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to verify deploy VM with multiple Security Groups
|
||||
@Steps:
|
||||
Step1: List all the security groups for user
|
||||
@ -5057,7 +5032,7 @@ class TestInstances(cloudstackTestCase):
|
||||
security_groups_list_size = 0
|
||||
if security_groups_list is not None:
|
||||
security_groups_list_size = len(security_groups_list)
|
||||
|
||||
|
||||
while security_groups_list_size < 2:
|
||||
# Creating a security group
|
||||
security_group = SecurityGroup.create(
|
||||
@ -5072,7 +5047,7 @@ class TestInstances(cloudstackTestCase):
|
||||
)
|
||||
self.cleanup.append(security_group)
|
||||
security_groups_list_size = security_groups_list_size + 1
|
||||
|
||||
|
||||
# Listing the networks again
|
||||
security_groups_list = SecurityGroup.list(
|
||||
self.userapiclient,
|
||||
@ -5142,7 +5117,7 @@ class TestInstances(cloudstackTestCase):
|
||||
(vm_securitygroups[i].id != security_groups_list[1].id)):
|
||||
vm_securitygroups_flag = False
|
||||
break
|
||||
|
||||
|
||||
self.assertEquals(
|
||||
True,
|
||||
vm_securitygroups_flag,
|
||||
@ -5155,7 +5130,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestSnapshots, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -5175,7 +5150,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
cls.storagetype = 'shared'
|
||||
cls.services["service_offerings"]["tiny"]["storagetype"] = 'shared'
|
||||
cls.services["disk_offering"]["storagetype"] = 'shared'
|
||||
|
||||
|
||||
cls.services['mode'] = cls.zone.networktype
|
||||
cls.services["virtual_machine"]["hypervisor"] = cls.testClient.getHypervisorInfo()
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
@ -5235,7 +5210,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -5267,7 +5242,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_01_list_volume_snapshots_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List Volume Snapshots pagination
|
||||
@steps:
|
||||
Step1: Listing all the volume snapshots for a user
|
||||
@ -5399,7 +5374,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_02_list_volume_snapshots_byid(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List Volume Snapshots by Id
|
||||
@Steps:
|
||||
Step1: Listing all the volume snapshots for a user
|
||||
@ -5517,7 +5492,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_03_list_vm_snapshots_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List VM Snapshots pagination
|
||||
@Steps:
|
||||
Step1: Listing all the VM snapshots for a user
|
||||
@ -5653,7 +5628,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_04_list_vm_snapshots_byid(self):
|
||||
"""
|
||||
"""
|
||||
@summary: Test to List VM Snapshots by Id
|
||||
|
||||
Step1: Listing all the VM snapshots for a user
|
||||
@ -5749,7 +5724,7 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestSecurityGroups, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -5796,7 +5771,7 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -5828,11 +5803,11 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["basic", "provisioning"])
|
||||
def test_01_list_securitygroups_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List Security Groups pagination
|
||||
@steps:
|
||||
Step1: Listing all the Security Groups for a user
|
||||
Step2: Verifying that list size is 1
|
||||
Step2: Verifying that list size is 1
|
||||
Step3: Creating (page size) number of Security Groups
|
||||
Step4: Listing all the Security Groups again for a user
|
||||
Step5: Verifying that list size is (page size + 1)
|
||||
@ -5953,11 +5928,11 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["basic", "provisioning"])
|
||||
def test_02_securitygroups_authorize_revoke_ingress(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Authorize and Revoke Ingress for Security Group
|
||||
@steps:
|
||||
Step1: Listing all the Security Groups for a user
|
||||
Step2: Verifying that list size is 1
|
||||
Step2: Verifying that list size is 1
|
||||
Step3: Creating a Security Groups
|
||||
Step4: Listing all the Security Groups again for a user
|
||||
Step5: Verifying that list size is 2
|
||||
@ -6117,11 +6092,11 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["basic", "provisioning"])
|
||||
def test_03_securitygroups_authorize_revoke_egress(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Authorize and Revoke Egress for Security Group
|
||||
@steps:
|
||||
Step1: Listing all the Security Groups for a user
|
||||
Step2: Verifying that list size is 1
|
||||
Step2: Verifying that list size is 1
|
||||
Step3: Creating a Security Groups
|
||||
Step4: Listing all the Security Groups again for a user
|
||||
Step5: Verifying that list size is 2
|
||||
@ -6284,7 +6259,7 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestVpnCustomerGateways, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -6331,7 +6306,7 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -6363,7 +6338,7 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_01_list_vpncustomergateways_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List VPN Customer Gateways pagination
|
||||
@steps:
|
||||
Step1: Listing all the VPN Customer Gateways for a user
|
||||
@ -6483,7 +6458,7 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_02_update_vpncustomergateways(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to update VPN Customer Gateways pagination
|
||||
@steps:
|
||||
Step1: Listing all the VPN Customer Gateways for a user
|
||||
@ -6613,7 +6588,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestTemplates, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -6661,7 +6636,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -6693,7 +6668,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_01_list_templates_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List Templates pagination
|
||||
@steps:
|
||||
Step1: Listing all the Templates for a user
|
||||
@ -6706,8 +6681,8 @@ class TestTemplates(cloudstackTestCase):
|
||||
Step8: Listing all the Templates in page2
|
||||
Step9: Verifying that list size is 1
|
||||
Step10: Listing the template by Id
|
||||
Step11: Verifying if the template is downloaded and ready.
|
||||
If yes the continuing
|
||||
Step11: Verifying if the template is downloaded and ready.
|
||||
If yes the continuing
|
||||
If not waiting and checking for template to be ready till timeout
|
||||
Step12: Deleting the Template present in page 2
|
||||
Step13: Listing all the Templates in page2
|
||||
@ -6853,7 +6828,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_02_download_template(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Download Template
|
||||
@steps:
|
||||
Step1: Listing all the Templates for a user
|
||||
@ -6861,8 +6836,8 @@ class TestTemplates(cloudstackTestCase):
|
||||
Step3: Creating a Templates
|
||||
Step4: Listing all the Templates again for a user
|
||||
Step5: Verifying that list size is 1
|
||||
Step6: Verifying if the template is in ready state.
|
||||
If yes the continuing
|
||||
Step6: Verifying if the template is in ready state.
|
||||
If yes the continuing
|
||||
If not waiting and checking for template to be ready till timeout
|
||||
Step7: Downloading the template (Extract)
|
||||
Step8: Verifying that Template is downloaded
|
||||
@ -6974,7 +6949,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_03_edit_template_details(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Edit Template name, displaytext, OSType
|
||||
@steps:
|
||||
Step1: Listing all the Templates for a user
|
||||
@ -6982,8 +6957,8 @@ class TestTemplates(cloudstackTestCase):
|
||||
Step3: Creating a Templates
|
||||
Step4: Listing all the Templates again for a user
|
||||
Step5: Verifying that list size is 1
|
||||
Step6: Verifying if the template is in ready state.
|
||||
If yes the continuing
|
||||
Step6: Verifying if the template is in ready state.
|
||||
If yes the continuing
|
||||
If not waiting and checking for template to be ready till timeout
|
||||
Step7: Editing the template name
|
||||
Step8: Verifying that Template name is edited
|
||||
@ -7160,7 +7135,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
if ostype_list[i].id != template_created.ostypeid:
|
||||
newostypeid = ostype_list[i].id
|
||||
break
|
||||
|
||||
|
||||
edited_template = Template.update(
|
||||
template_created,
|
||||
self.userapiclient,
|
||||
@ -7290,7 +7265,7 @@ class TestTemplates(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_04_copy_template(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to copy Template from one zone to another
|
||||
@steps:
|
||||
Step1: Listing Zones available for a user
|
||||
@ -7504,7 +7479,7 @@ class TestIsos(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestIsos, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -7552,7 +7527,7 @@ class TestIsos(cloudstackTestCase):
|
||||
return
|
||||
|
||||
def __verify_values(self, expected_vals, actual_vals):
|
||||
"""
|
||||
"""
|
||||
@Desc: Function to verify expected and actual values
|
||||
@Steps:
|
||||
Step1: Initializing return flag to True
|
||||
@ -7584,7 +7559,7 @@ class TestIsos(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_01_list_isos_pagination(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to List ISO's pagination
|
||||
@steps:
|
||||
Step1: Listing all the ISO's for a user
|
||||
@ -7597,8 +7572,8 @@ class TestIsos(cloudstackTestCase):
|
||||
Step8: Listing all the ISO's in page2
|
||||
Step9: Verifying that list size is 1
|
||||
Step10: Listing the ISO's by Id
|
||||
Step11: Verifying if the ISO is downloaded and ready.
|
||||
If yes the continuing
|
||||
Step11: Verifying if the ISO is downloaded and ready.
|
||||
If yes the continuing
|
||||
If not waiting and checking for iso to be ready till timeout
|
||||
Step12: Deleting the ISO present in page 2
|
||||
Step13: Listing all the ISO's in page2
|
||||
@ -7738,7 +7713,7 @@ class TestIsos(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_02_download_iso(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Download ISO
|
||||
@steps:
|
||||
Step1: Listing all the ISO's for a user
|
||||
@ -7746,8 +7721,8 @@ class TestIsos(cloudstackTestCase):
|
||||
Step3: Creating an ISO
|
||||
Step4: Listing all the ISO's again for a user
|
||||
Step5: Verifying that list size is 1
|
||||
Step6: Verifying if the ISO is in ready state.
|
||||
If yes the continuing
|
||||
Step6: Verifying if the ISO is in ready state.
|
||||
If yes the continuing
|
||||
If not waiting and checking for template to be ready till timeout
|
||||
Step7: Downloading the ISO (Extract)
|
||||
Step8: Verifying the details of downloaded ISO
|
||||
@ -7853,7 +7828,7 @@ class TestIsos(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_03_edit_iso_details(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to Edit ISO name, displaytext, OSType
|
||||
@steps:
|
||||
Step1: Listing all the ISO's for a user
|
||||
@ -7861,8 +7836,8 @@ class TestIsos(cloudstackTestCase):
|
||||
Step3: Creating an ISO
|
||||
Step4: Listing all the ISO's again for a user
|
||||
Step5: Verifying that list size is 1
|
||||
Step6: Verifying if the ISO is in ready state.
|
||||
If yes the continuing
|
||||
Step6: Verifying if the ISO is in ready state.
|
||||
If yes the continuing
|
||||
If not waiting and checking for template to be ready till timeout
|
||||
Step7: Editing the ISO's name, displaytext
|
||||
Step8: Verifying that ISO name and displaytext are edited
|
||||
@ -7990,7 +7965,7 @@ class TestIsos(cloudstackTestCase):
|
||||
if ostype_list[i].id != iso_created.ostypeid:
|
||||
newostypeid = ostype_list[i].id
|
||||
break
|
||||
|
||||
|
||||
edited_iso = Iso.update(
|
||||
iso_created,
|
||||
self.userapiclient,
|
||||
@ -8037,7 +8012,7 @@ class TestIsos(cloudstackTestCase):
|
||||
|
||||
@attr(tags=["advanced", "basic", "provisioning"])
|
||||
def test_04_copy_iso(self):
|
||||
"""
|
||||
"""
|
||||
@Desc: Test to copy ISO from one zone to another
|
||||
@steps:
|
||||
Step1: Listing Zones available for a user
|
||||
@ -8234,7 +8209,7 @@ class TestNetworks(cloudstackTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
try:
|
||||
cls._cleanup = []
|
||||
cls._cleanup = []
|
||||
cls.testClient = super(TestNetworks, cls).getClsTestClient()
|
||||
cls.api_client = cls.testClient.getApiClient()
|
||||
cls.services = cls.testClient.getParsedTestDataConfig()
|
||||
@ -9646,4 +9621,4 @@ class TestNetworks(cloudstackTestCase):
|
||||
networkid=network_created.id
|
||||
)
|
||||
self.assertIsNone(list_network_acl, "ACL list is not empty for newly created network")
|
||||
return
|
||||
return
|
||||
|
||||
@ -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)
|
||||
|
||||
self.vm_1.stop(self.apiclient)
|
||||
self.vm_2.stop(self.apiclient)
|
||||
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))
|
||||
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)
|
||||
try:
|
||||
self.lb_rule_1.assign(self.apiclient, [self.vm_1, self.vm_2])
|
||||
self.vm_2.stop(self.apiclient)
|
||||
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(
|
||||
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)]
|
||||
)
|
||||
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)])
|
||||
# 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,24 +1072,20 @@ class TestAssignVirtualMachine(cloudstackTestCase):
|
||||
networkids=[network.id],
|
||||
serviceofferingid=self.service_offering.id,
|
||||
accountid=account_1.name,domainid=self.domain.id)
|
||||
|
||||
virtual_machine.stop(self.apiclient)
|
||||
|
||||
# Assign virtual machine to different account
|
||||
virtual_machine.assign_virtual_machine(self.apiclient, account=account_2.name, domainid=self.domain.id)
|
||||
|
||||
# Start VM
|
||||
virtual_machine.start(self.apiclient)
|
||||
|
||||
# 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("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)
|
||||
|
||||
# Start VM
|
||||
virtual_machine.start(self.apiclient)
|
||||
|
||||
# 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)
|
||||
self.fail("Exception occured: %s" % e)
|
||||
return
|
||||
|
||||
@ddt
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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,53 +630,56 @@ class TestTemplates(cloudstackTestCase):
|
||||
# 3. Verify that template created in project can be used in project
|
||||
# without any restrictions
|
||||
|
||||
self.debug("Deploying VM for with public template: %s" %
|
||||
try:
|
||||
self.debug("Deploying VM for with public template: %s" %
|
||||
self.template.id)
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=self.template.id,
|
||||
serviceofferingid=self.service_offering.id,
|
||||
projectid=self.project.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
virtual_machine_1.state,
|
||||
'Running',
|
||||
"Check VM state is Running or not"
|
||||
)
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.apiclient,
|
||||
projectid=self.project.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(volumes, list),
|
||||
True,
|
||||
"Check for list volume response return valid data"
|
||||
)
|
||||
volume = volumes[0]
|
||||
volume = volumes[0]
|
||||
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
projectid=self.project.id
|
||||
)
|
||||
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_1.isready,
|
||||
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,83 +692,83 @@ class TestTemplates(cloudstackTestCase):
|
||||
# be granted to the Project (use API 'updateTemplatePermissions'
|
||||
# with project id to achieve that).
|
||||
|
||||
self.debug("Deploying VM for with public template: %s" %
|
||||
try:
|
||||
self.debug("Deploying VM for with public template: %s" %
|
||||
self.template.id)
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=self.template.id,
|
||||
serviceofferingid=self.service_offering.id,
|
||||
projectid=self.project.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM 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)
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(virtual_machine_1.state,
|
||||
'Running',
|
||||
"Check VM state is Running or not")
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.apiclient,
|
||||
projectid=self.project.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(volumes, list),
|
||||
True,
|
||||
"Check for list volume response return valid data"
|
||||
)
|
||||
volume = volumes[0]
|
||||
volume = volumes[0]
|
||||
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
projectid=self.project.id
|
||||
)
|
||||
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_1.isready,
|
||||
True,
|
||||
"Check Template is in ready state or not"
|
||||
)
|
||||
|
||||
# Update template permissions to grant permission to project
|
||||
self.debug(
|
||||
"Updating template permissions:%s to grant access to project: %s" % (
|
||||
# Update template permissions to grant permission to project
|
||||
self.debug(
|
||||
"Updating template permissions:%s to grant access to project: %s" % (
|
||||
template_1.id,
|
||||
self.project.id
|
||||
))
|
||||
|
||||
template_1.updatePermissions(
|
||||
template_1.updatePermissions(
|
||||
self.apiclient,
|
||||
op='add',
|
||||
projectids=self.project.id
|
||||
)
|
||||
self.debug("Deploying VM for with privileged template: %s" %
|
||||
self.debug("Deploying VM for with privileged template: %s" %
|
||||
self.template.id)
|
||||
virtual_machine_2 = VirtualMachine.create(
|
||||
virtual_machine_2 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=template_1.id,
|
||||
serviceofferingid=self.service_offering.id,
|
||||
projectid=self.project.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_2)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(virtual_machine_2)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
virtual_machine_2.state,
|
||||
'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
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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
|
||||
|
||||
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
|
||||
# Stop the VM
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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"])
|
||||
# Destroy the VM
|
||||
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
|
||||
self.virtual_machine.delete(self.apiclient)
|
||||
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)
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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
|
||||
))
|
||||
self.virtual_machine.detach_volume(self.apiclient, data_volume)
|
||||
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,26 +704,28 @@ class TestTemplateUsage(cloudstackTestCase):
|
||||
cls.services["ostype"]
|
||||
)
|
||||
cls.services["server"]["zoneid"] = cls.zone.id
|
||||
cls.account = Account.create(
|
||||
cls._cleanup = []
|
||||
try:
|
||||
cls.account = Account.create(
|
||||
cls.api_client,
|
||||
cls.services["account"],
|
||||
domainid=cls.domain.id
|
||||
)
|
||||
cls.services["account"] = cls.account.name
|
||||
cls._cleanup.append(cls.account)
|
||||
cls.services["account"] = cls.account.name
|
||||
|
||||
cls.project = Project.create(
|
||||
cls.project = Project.create(
|
||||
cls.api_client,
|
||||
cls.services["project"],
|
||||
account=cls.account.name,
|
||||
domainid=cls.account.domainid
|
||||
)
|
||||
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls._cleanup.append(cls.account)
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.api_client,
|
||||
cls.services["service_offering"]
|
||||
)
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.services["service_offering"])
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["server"],
|
||||
templateid=template.id,
|
||||
@ -707,25 +733,22 @@ class TestTemplateUsage(cloudstackTestCase):
|
||||
projectid=cls.project.id
|
||||
)
|
||||
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
#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 = list_volumes(
|
||||
cls.api_client,
|
||||
projectid=cls.project.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception("List Volumes failed!")
|
||||
cls._cleanup = [
|
||||
cls.project,
|
||||
cls.account,
|
||||
]
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception("List Volumes failed!")
|
||||
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)
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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,118 +135,93 @@ class TestResetSSHKeypair(cloudstackTestCase):
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
cls.services["virtual_machine"]["template"] = template.id
|
||||
|
||||
# Create VMs, NAT Rules etc
|
||||
cls.account = Account.create(
|
||||
cls.api_client,
|
||||
cls.services["account"],
|
||||
domainid=domain.id
|
||||
)
|
||||
cls._cleanup = []
|
||||
try:
|
||||
# Create VMs, NAT Rules etc
|
||||
cls.account = Account.create(
|
||||
cls.api_client,
|
||||
cls.services["account"],
|
||||
domainid=domain.id)
|
||||
cls._cleanup.append(cls.account)
|
||||
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.api_client,
|
||||
cls.services["service_offering"]
|
||||
)
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.api_client,
|
||||
cls.services["service_offering"])
|
||||
cls._cleanup.append(cls.service_offering)
|
||||
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["virtual_machine"],
|
||||
accountid=cls.account.name,
|
||||
domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
mode=cls.services["mode"]
|
||||
)
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["virtual_machine"],
|
||||
accountid=cls.account.name,
|
||||
domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
mode=cls.services["mode"])
|
||||
|
||||
networkid = cls.virtual_machine.nic[0].networkid
|
||||
networkid = cls.virtual_machine.nic[0].networkid
|
||||
|
||||
# create egress rule to allow wget of my cloud-set-guest-password script
|
||||
if cls.zone.networktype.lower() == 'advanced':
|
||||
EgressFireWallRule.create(cls.api_client,
|
||||
# create egress rule to allow wget of my cloud-set-guest-password script
|
||||
if cls.zone.networktype.lower() == 'advanced':
|
||||
EgressFireWallRule.create(cls.api_client,
|
||||
networkid=networkid,
|
||||
protocol=cls.services["egress"]["protocol"],
|
||||
startport=cls.services["egress"]["startport"],
|
||||
endport=cls.services["egress"]["endport"],
|
||||
cidrlist=cls.services["egress"]["cidrlist"])
|
||||
|
||||
cls.virtual_machine.password = cls.services["virtual_machine"]["password"]
|
||||
ssh = cls.virtual_machine.get_ssh_client()
|
||||
cls.virtual_machine.password = cls.services["virtual_machine"]["password"]
|
||||
ssh = cls.virtual_machine.get_ssh_client()
|
||||
|
||||
# below steps are required to get the new password from VR(reset password)
|
||||
# http://cloudstack.org/dl/cloud-set-guest-password
|
||||
# Copy this file to /etc/init.d
|
||||
# chmod +x /etc/init.d/cloud-set-guest-password
|
||||
# chkconfig --add cloud-set-guest-password
|
||||
# similar steps to get SSH key from web so as to make it ssh enabled
|
||||
# below steps are required to get the new password from VR(reset password)
|
||||
# http://cloudstack.org/dl/cloud-set-guest-password
|
||||
# Copy this file to /etc/init.d
|
||||
# chmod +x /etc/init.d/cloud-set-guest-password
|
||||
# chkconfig --add cloud-set-guest-password
|
||||
# similar steps to get SSH key from web so as to make it ssh enabled
|
||||
|
||||
cmds = [
|
||||
"cd /etc/init.d;wget http://people.apache.org/~tsp/cloud-set-guest-password",
|
||||
"chmod +x /etc/init.d/cloud-set-guest-password",
|
||||
"chkconfig --add cloud-set-guest-password",
|
||||
"cd /etc/init.d;wget http://downloads.sourceforge.net/project/cloudstack/SSH%20Key%20Gen%20Script/" + \
|
||||
"cloud-set-guest-sshkey.in?r=http%3A%2F%2Fsourceforge" + \
|
||||
".net%2Fprojects%2Fcloudstack%2Ffiles%2FSSH%2520Key%2520Gen%2520Script%2F&ts=1331225219&use_mirror=iweb",
|
||||
"chmod +x /etc/init.d/cloud-set-guest-sshkey.in",
|
||||
"chkconfig --add cloud-set-guest-sshkey.in"
|
||||
]
|
||||
for c in cmds:
|
||||
result = ssh.execute(c)
|
||||
cmds = [
|
||||
"cd /etc/init.d;wget http://people.apache.org/~tsp/cloud-set-guest-password",
|
||||
"chmod +x /etc/init.d/cloud-set-guest-password",
|
||||
"chkconfig --add cloud-set-guest-password",
|
||||
"cd /etc/init.d;wget http://downloads.sourceforge.net/project/cloudstack/SSH%20Key%20Gen%20Script/" + \
|
||||
"cloud-set-guest-sshkey.in?r=http%3A%2F%2Fsourceforge" + \
|
||||
".net%2Fprojects%2Fcloudstack%2Ffiles%2FSSH%2520Key%2520Gen%2520Script%2F&ts=1331225219&use_mirror=iweb",
|
||||
"chmod +x /etc/init.d/cloud-set-guest-sshkey.in",
|
||||
"chkconfig --add cloud-set-guest-sshkey.in"
|
||||
]
|
||||
for c in cmds:
|
||||
ssh.execute(c)
|
||||
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
#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"])
|
||||
list_volume = Volume.list(
|
||||
cls.api_client,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True)
|
||||
|
||||
# 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:
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception(
|
||||
"Failed to stop VM (ID: %s) " %
|
||||
vm.id)
|
||||
|
||||
timeout = timeout - 1
|
||||
|
||||
list_volume = list_volumes(
|
||||
cls.api_client,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception(
|
||||
"Exception: Unable to find root volume for VM: %s" %
|
||||
cls.virtual_machine.id)
|
||||
|
||||
cls.services["template"]["ostype"] = cls.services["ostype"]
|
||||
#Create templates for Edit, Delete & update permissions testcases
|
||||
cls.pw_ssh_enabled_template = Template.create(
|
||||
cls.api_client,
|
||||
cls.services["template"],
|
||||
cls.volume.id,
|
||||
account=cls.account.name,
|
||||
domainid=cls.account.domainid
|
||||
)
|
||||
# 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
|
||||
]
|
||||
cls.services["template"]["ostype"] = cls.services["ostype"]
|
||||
#Create templates for Edit, Delete & update permissions testcases
|
||||
cls.pw_ssh_enabled_template = Template.create(
|
||||
cls.api_client,
|
||||
cls.services["template"],
|
||||
cls.volume.id,
|
||||
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)
|
||||
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)
|
||||
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
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',
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -747,11 +747,12 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
# 3. Try to create 2 templates in account 2. Verify account 2 should be
|
||||
# able to create template without any error
|
||||
|
||||
self.debug(
|
||||
"Updating template resource limit for account: %s" %
|
||||
try:
|
||||
self.debug(
|
||||
"Updating template resource limit for account: %s" %
|
||||
self.account_1.name)
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
self.apiclient,
|
||||
4, # Template
|
||||
account=self.account_1.name,
|
||||
@ -759,10 +760,10 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
max=1
|
||||
)
|
||||
|
||||
self.debug(
|
||||
"Updating volume resource limit for account: %s" %
|
||||
self.debug(
|
||||
"Updating volume resource limit for account: %s" %
|
||||
self.account_1.name)
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=self.template.id,
|
||||
@ -770,19 +771,19 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
domainid=self.account_1.domainid,
|
||||
serviceofferingid=self.service_offering.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
virtual_machine_1.state,
|
||||
'Running',
|
||||
"Check VM state is Running or not"
|
||||
)
|
||||
|
||||
self.debug(
|
||||
"Deploying virtual machine for account: %s" %
|
||||
self.debug(
|
||||
"Deploying virtual machine for account: %s" %
|
||||
self.account_2.name)
|
||||
# Create VM for second account
|
||||
virtual_machine_2 = VirtualMachine.create(
|
||||
# Create VM for second account
|
||||
virtual_machine_2 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=self.template.id,
|
||||
@ -790,33 +791,33 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
domainid=self.account_2.domainid,
|
||||
serviceofferingid=self.service_offering.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_2)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(virtual_machine_2)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
virtual_machine_2.state,
|
||||
'Running',
|
||||
"Check VM state is Running or not"
|
||||
)
|
||||
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.apiclient,
|
||||
virtualmachineid=virtual_machine_1.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(volumes, list),
|
||||
True,
|
||||
"Check for list volume response return valid data"
|
||||
)
|
||||
volume = volumes[0]
|
||||
volume = volumes[0]
|
||||
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK (Account 1)
|
||||
template_1 = Template.create(
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK (Account 1)
|
||||
template_1 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
@ -824,14 +825,15 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
domainid=self.account_1.domainid,
|
||||
)
|
||||
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_1.isready,
|
||||
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,25 +843,27 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
account=self.account_1.name,
|
||||
domainid=self.account_1.domainid,
|
||||
)
|
||||
virtual_machine_2.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
|
||||
try:
|
||||
virtual_machine_2.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.apiclient,
|
||||
virtualmachineid=virtual_machine_2.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(volumes, list),
|
||||
True,
|
||||
"Check for list volume response return valid data"
|
||||
)
|
||||
volume = volumes[0]
|
||||
volume = volumes[0]
|
||||
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a snapshot from the ROOTDISK (Account 1)
|
||||
template_2 = Template.create(
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a snapshot from the ROOTDISK (Account 1)
|
||||
template_2 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
@ -867,17 +871,17 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
domainid=self.account_2.domainid,
|
||||
)
|
||||
|
||||
self.cleanup.append(template_2)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_2)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_2.isready,
|
||||
True,
|
||||
"Check Template is in ready state or not"
|
||||
)
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a second volume from the ROOTDISK (Account 2)
|
||||
template_3 = Template.create(
|
||||
)
|
||||
self.debug(
|
||||
"Creating template from volume: %s" % volume.id)
|
||||
# Create a second volume from the ROOTDISK (Account 2)
|
||||
template_3 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
@ -885,13 +889,15 @@ class TestResourceLimitsAccount(cloudstackTestCase):
|
||||
domainid=self.account_2.domainid,
|
||||
)
|
||||
|
||||
self.cleanup.append(template_3)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_3)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_3.isready,
|
||||
True,
|
||||
"Check Template is in ready state or not"
|
||||
)
|
||||
except Exception as e:
|
||||
self.fail("Exception occured: %s" % e)
|
||||
return
|
||||
|
||||
|
||||
@ -1256,27 +1262,23 @@ 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.
|
||||
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
try:
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
self.apiclient,
|
||||
2, # Volume
|
||||
domainid=self.account.domainid,
|
||||
max=5
|
||||
)
|
||||
|
||||
self.debug(
|
||||
"Updating template resource limits for domain: %s" %
|
||||
self.account.domainid)
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
# Set usage_vm=1 for Account 1
|
||||
update_resource_limit(
|
||||
self.apiclient,
|
||||
4, # Template
|
||||
domainid=self.account.domainid,
|
||||
max=2
|
||||
)
|
||||
|
||||
self.debug("Deploying VM for account: %s" % self.account.name)
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
virtual_machine_1 = VirtualMachine.create(
|
||||
self.apiclient,
|
||||
self.services["server"],
|
||||
templateid=self.template.id,
|
||||
@ -1284,31 +1286,31 @@ class TestResourceLimitsDomain(cloudstackTestCase):
|
||||
domainid=self.account.domainid,
|
||||
serviceofferingid=self.service_offering.id
|
||||
)
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(virtual_machine_1)
|
||||
# Verify VM state
|
||||
self.assertEqual(
|
||||
virtual_machine_1.state,
|
||||
'Running',
|
||||
"Check VM state is Running or not"
|
||||
)
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
virtual_machine_1.stop(self.apiclient)
|
||||
# Get the Root disk of VM
|
||||
volumes = list_volumes(
|
||||
self.apiclient,
|
||||
virtualmachineid=virtual_machine_1.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(volumes, list),
|
||||
True,
|
||||
"Check for list volume response return valid data"
|
||||
)
|
||||
volume = volumes[0]
|
||||
volume = volumes[0]
|
||||
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_1 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
@ -1316,16 +1318,16 @@ class TestResourceLimitsDomain(cloudstackTestCase):
|
||||
domainid=self.account.domainid,
|
||||
)
|
||||
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_1)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_1.isready,
|
||||
True,
|
||||
"Check Template is in ready state or not"
|
||||
)
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_2 = Template.create(
|
||||
self.debug("Creating template from volume: %s" % volume.id)
|
||||
# Create a template from the ROOTDISK
|
||||
template_2 = Template.create(
|
||||
self.apiclient,
|
||||
self.services["template"],
|
||||
volumeid=volume.id,
|
||||
@ -1333,13 +1335,15 @@ class TestResourceLimitsDomain(cloudstackTestCase):
|
||||
domainid=self.account.domainid,
|
||||
)
|
||||
|
||||
self.cleanup.append(template_2)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
self.cleanup.append(template_2)
|
||||
# Verify Template state
|
||||
self.assertEqual(
|
||||
template_2.isready,
|
||||
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,12 +370,12 @@ 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(
|
||||
self.virtual_machine.ssh_ip,
|
||||
self.virtual_machine.ssh_port,
|
||||
self.virtual_machine.username,
|
||||
self.virtual_machine.password
|
||||
)
|
||||
SshClient(
|
||||
self.virtual_machine.ssh_ip,
|
||||
self.virtual_machine.ssh_port,
|
||||
self.virtual_machine.username,
|
||||
self.virtual_machine.password
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
@ -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"]
|
||||
)
|
||||
|
||||
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"])
|
||||
try:
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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)
|
||||
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"
|
||||
)
|
||||
try:
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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'
|
||||
)
|
||||
@ -1518,8 +1514,8 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
|
||||
)
|
||||
|
||||
builtin_info = get_builtin_template_info(self.apiclient, self.zone.id)
|
||||
self.services["template"]["url"] = builtin_info[0]
|
||||
self.services["template"]["hypervisor"] = builtin_info[1]
|
||||
self.services["template"]["url"] = builtin_info[0]
|
||||
self.services["template"]["hypervisor"] = builtin_info[1]
|
||||
self.services["template"]["format"] = builtin_info[2]
|
||||
|
||||
# Register new template
|
||||
@ -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
|
||||
|
||||
self.debug("Stopping the virtual machine: %s" % self.vm_1.name)
|
||||
#Stop virtual machine
|
||||
self.vm_1.stop(self.apiclient)
|
||||
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,
|
||||
@ -990,11 +1006,11 @@ class TestResourceTags(cloudstackTestCase):
|
||||
'CentOS',
|
||||
'The tag should have original value'
|
||||
)
|
||||
|
||||
templates = Template.list(
|
||||
|
||||
Template.list(
|
||||
self.apiclient,
|
||||
templatefilter=\
|
||||
self.services["template"]["templatefilter"],
|
||||
self.services["template"]["templatefilter"],
|
||||
listall=True,
|
||||
key='OS',
|
||||
value='CentOS'
|
||||
@ -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,
|
||||
virtualmachineid=self.vm_1.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
volumes = Volume.list(self.apiclient,
|
||||
virtualmachineid=self.vm_1.id,
|
||||
type='ROOT',
|
||||
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,
|
||||
listall=True,
|
||||
key='type',
|
||||
value='manual'
|
||||
)
|
||||
snapshots = Snapshot.list(self.apiclient,
|
||||
listall=True,
|
||||
key='type',
|
||||
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,
|
||||
resourceIds=self.vm_1.id,
|
||||
resourceType='userVM',
|
||||
tags={'REGION': 'INDIA'}
|
||||
)
|
||||
Tag.create(self.apiclient,
|
||||
resourceIds=self.vm_1.id,
|
||||
resourceType='userVM',
|
||||
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,
|
||||
@ -1785,14 +1787,14 @@ class TestResourceTags(cloudstackTestCase):
|
||||
domainid=self.domain.id
|
||||
)
|
||||
self.cleanup.append(user_account)
|
||||
|
||||
|
||||
other_user_account = Account.create(
|
||||
self.apiclient,
|
||||
self.services["other_user"],
|
||||
domainid=self.domain.id
|
||||
)
|
||||
self.cleanup.append(other_user_account)
|
||||
|
||||
|
||||
iso = Iso.create(
|
||||
self.apiclient,
|
||||
self.services["iso"],
|
||||
@ -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,
|
||||
@ -1877,33 +1875,25 @@ class TestResourceTags(cloudstackTestCase):
|
||||
domainid=self.domain.id
|
||||
)
|
||||
self.cleanup.append(user_account)
|
||||
|
||||
|
||||
iso = Iso.create(
|
||||
self.apiclient,
|
||||
self.services["iso"],
|
||||
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,
|
||||
resourceIds=iso.id,
|
||||
resourceType='ISO',
|
||||
tags={'region': 'India'}
|
||||
)
|
||||
self.debug("Tag created: %s" % tag.__dict__)
|
||||
Tag.create(self.apiclient,
|
||||
resourceIds=iso.id,
|
||||
resourceType='ISO',
|
||||
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,47 +2188,21 @@ class TestResourceTags(cloudstackTestCase):
|
||||
def test_21_create_tag_stopped_vm(self):
|
||||
"Test creation of tag on stopped vm."
|
||||
|
||||
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"])
|
||||
try:
|
||||
self.debug("Stopping the virtual machine: %s" % self.vm_1.name)
|
||||
#Stop virtual machine
|
||||
self.vm_1.stop(self.apiclient)
|
||||
|
||||
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.debug("Creating a tag for user VM")
|
||||
tag = Tag.create(
|
||||
self.apiclient,
|
||||
resourceIds=self.vm_1.id,
|
||||
resourceType='userVM',
|
||||
tags={'region': 'India'}
|
||||
)
|
||||
self.debug("Tag created: %s" % tag.__dict__)
|
||||
self.debug("Tag created: %s" % tag.__dict__)
|
||||
|
||||
tags = Tag.list(
|
||||
tags = Tag.list(
|
||||
self.apiclient,
|
||||
listall=True,
|
||||
resourceType='userVM',
|
||||
@ -2249,20 +2211,19 @@ class TestResourceTags(cloudstackTestCase):
|
||||
key='region',
|
||||
value='India'
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(tags, list),
|
||||
True,
|
||||
"List tags should not return empty response"
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
tags[0].value,
|
||||
"India",
|
||||
"Tag created with incorrect value"
|
||||
)
|
||||
|
||||
self.debug("Deleting the created tag..")
|
||||
try:
|
||||
self.debug("Deleting the created tag..")
|
||||
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"])
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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(
|
||||
self.apiclient,
|
||||
templatefilter='all',
|
||||
id=template.id,
|
||||
zoneid=self.zone.id,
|
||||
account=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
list_template_response = Template.list(
|
||||
self.apiclient,
|
||||
templatefilter='all',
|
||||
id=template.id,
|
||||
zoneid=self.zone.id,
|
||||
account=self.account.name,
|
||||
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,
|
||||
id=virtual_machine.id,
|
||||
account=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
vm_response = VirtualMachine.list(self.apiclient,
|
||||
id=virtual_machine.id,
|
||||
account=self.account.name,
|
||||
domainid=self.account.domainid)
|
||||
self.assertEqual(
|
||||
isinstance(vm_response, list),
|
||||
True,
|
||||
@ -300,20 +302,24 @@ class TestTemplates(cloudstackTestCase):
|
||||
cls.services["ostype"]
|
||||
)
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
cls.account = Account.create(
|
||||
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.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(
|
||||
# create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["virtual_machine"],
|
||||
templateid=template.id,
|
||||
@ -321,40 +327,36 @@ class TestTemplates(cloudstackTestCase):
|
||||
domainid=cls.account.domainid,
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
)
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
|
||||
timeout = cls.services["timeout"]
|
||||
#Wait before server has be successfully stopped
|
||||
time.sleep(cls.services["sleep"])
|
||||
timeout = cls.services["timeout"]
|
||||
|
||||
while True:
|
||||
list_volume = list_volumes(
|
||||
cls.api_client,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
if isinstance(list_volume, list):
|
||||
break
|
||||
elif timeout == 0:
|
||||
raise Exception("List volumes failed.")
|
||||
while True:
|
||||
list_volume = Volume.list(
|
||||
cls.api_client,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True)
|
||||
if isinstance(list_volume, list):
|
||||
break
|
||||
elif timeout == 0:
|
||||
raise Exception("List volumes failed.")
|
||||
|
||||
time.sleep(5)
|
||||
timeout = timeout - 1
|
||||
time.sleep(5)
|
||||
timeout = timeout - 1
|
||||
|
||||
cls.volume = list_volume[0]
|
||||
cls.volume = list_volume[0]
|
||||
|
||||
#Create template from volume
|
||||
cls.template = Template.create(
|
||||
#Create template from volume
|
||||
cls.template = Template.create(
|
||||
cls.api_client,
|
||||
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(
|
||||
self.apiclient,
|
||||
id=virtual_machine.id,
|
||||
account=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
vm_response = VirtualMachine.list(
|
||||
self.apiclient,
|
||||
id=virtual_machine.id,
|
||||
account=self.account.name,
|
||||
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,
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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
|
||||
|
||||
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
|
||||
# Stop the VM
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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"])
|
||||
# Destroy the VM
|
||||
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
|
||||
self.virtual_machine.delete(self.apiclient)
|
||||
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
|
||||
|
||||
# Stop VM
|
||||
self.debug("Stopping VM with ID: %s" % self.virtual_machine.id)
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
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(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='DATADISK',
|
||||
listall=True
|
||||
)
|
||||
volume_response = Volume.list(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='DATADISK',
|
||||
listall=True)
|
||||
self.assertEqual(
|
||||
isinstance(volume_response, list),
|
||||
True,
|
||||
@ -643,19 +661,22 @@ class TestTemplateUsage(cloudstackTestCase):
|
||||
cls.services["ostype"]
|
||||
)
|
||||
cls.services["server"]["zoneid"] = cls.zone.id
|
||||
cls.account = Account.create(
|
||||
try:
|
||||
cls.account = Account.create(
|
||||
cls.api_client,
|
||||
cls.services["account"],
|
||||
domainid=cls.domain.id
|
||||
)
|
||||
cls.services["account"] = cls.account.name
|
||||
cls._cleanup.append(cls.account)
|
||||
cls.services["account"] = cls.account.name
|
||||
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.api_client,
|
||||
cls.services["service_offering"]
|
||||
)
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls._cleanup.append(cls.service_offering)
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.api_client,
|
||||
cls.services["server"],
|
||||
templateid=template.id,
|
||||
@ -665,24 +686,21 @@ class TestTemplateUsage(cloudstackTestCase):
|
||||
mode=cls.services["mode"]
|
||||
)
|
||||
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.api_client)
|
||||
#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,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception("List Volumes failed!")
|
||||
cls._cleanup = [
|
||||
cls.account,
|
||||
]
|
||||
list_volume = Volume.list(
|
||||
cls.api_client,
|
||||
virtualmachineid=cls.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True)
|
||||
if isinstance(list_volume, list):
|
||||
cls.volume = list_volume[0]
|
||||
else:
|
||||
raise Exception("List Volumes failed!")
|
||||
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(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='ROOT',
|
||||
listall=True
|
||||
)
|
||||
volumes = Volume.list(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='ROOT',
|
||||
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)
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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,9 +199,9 @@ class TestAttachVolume(cloudstackTestCase):
|
||||
# 5. Start The VM. Start VM should be successful
|
||||
|
||||
# Create 5 volumes and attach to VM
|
||||
for i in range(self.max_data_volumes):
|
||||
self.debug(i)
|
||||
volume = Volume.create(
|
||||
try:
|
||||
for i in range(self.max_data_volumes):
|
||||
volume = Volume.create(
|
||||
self.apiclient,
|
||||
self.services["volume"],
|
||||
zoneid=self.zone.id,
|
||||
@ -196,134 +209,99 @@ 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(
|
||||
# Check List Volume response for newly created volume
|
||||
list_volume_response = Volume.list(
|
||||
self.apiclient,
|
||||
id=volume.id
|
||||
)
|
||||
self.assertNotEqual(
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"Check if volume exists in ListVolumes"
|
||||
)
|
||||
# Attach volume to VM
|
||||
self.virtual_machine.attach_volume(
|
||||
# Attach volume to VM
|
||||
self.virtual_machine.attach_volume(
|
||||
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(
|
||||
# Check all volumes attached to same VM
|
||||
list_volume_response = Volume.list(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='DATADISK',
|
||||
listall=True
|
||||
)
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"Check if volume exists in ListVolumes"
|
||||
)
|
||||
self.assertEqual(
|
||||
isinstance(list_volume_response, list),
|
||||
True,
|
||||
"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)
|
||||
)
|
||||
self.debug("Rebooting the VM: %s" % self.virtual_machine.id)
|
||||
# Reboot VM
|
||||
self.virtual_machine.reboot(self.apiclient)
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"Check if volume exists in ListVolumes")
|
||||
self.assertEqual(
|
||||
isinstance(list_volume_response, list),
|
||||
True,
|
||||
"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))
|
||||
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,
|
||||
)
|
||||
#Verify VM response to check whether VM deployment was successful
|
||||
self.assertNotEqual(
|
||||
#Verify VM response to check whether VM deployment was successful
|
||||
self.assertNotEqual(
|
||||
len(vm_response),
|
||||
0,
|
||||
"Check VMs available in List VMs response"
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(vm_response, list),
|
||||
True,
|
||||
"Check list VM response for valid list"
|
||||
)
|
||||
vm = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm.state,
|
||||
'Running',
|
||||
"Check the state of VM"
|
||||
)
|
||||
|
||||
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
|
||||
# Stop VM
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
# Stop VM
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
|
||||
vm_response = list_virtual_machines(
|
||||
# Start VM
|
||||
self.virtual_machine.start(self.apiclient)
|
||||
# Sleep to ensure that VM is in ready state
|
||||
time.sleep(self.services["sleep"])
|
||||
|
||||
vm_response = VirtualMachine.list(
|
||||
self.apiclient,
|
||||
id=self.virtual_machine.id,
|
||||
)
|
||||
self.assertEqual(
|
||||
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(
|
||||
#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(
|
||||
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 = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm.state,
|
||||
'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,10 +454,11 @@ class TestAttachDetachVolume(cloudstackTestCase):
|
||||
# 5. Stop the VM. Stop VM should be successful
|
||||
# 6. Start The VM. Start VM should be successful
|
||||
|
||||
volumes = []
|
||||
# Create 5 volumes and attach to VM
|
||||
for i in range(self.max_data_volumes):
|
||||
volume = Volume.create(
|
||||
try:
|
||||
volumes = []
|
||||
# Create 5 volumes and attach to VM
|
||||
for i in range(self.max_data_volumes):
|
||||
volume = Volume.create(
|
||||
self.apiclient,
|
||||
self.services["volume"],
|
||||
zoneid=self.zone.id,
|
||||
@ -487,155 +466,117 @@ 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)
|
||||
self.cleanup.append(volume)
|
||||
volumes.append(volume)
|
||||
|
||||
# Check List Volume response for newly created volume
|
||||
list_volume_response = list_volumes(
|
||||
# Check List Volume response for newly created volume
|
||||
list_volume_response = Volume.list(
|
||||
self.apiclient,
|
||||
id=volume.id
|
||||
)
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"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
|
||||
))
|
||||
# Attach volume to VM
|
||||
self.virtual_machine.attach_volume(
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"Check if volume exists in ListVolumes")
|
||||
self.assertEqual(
|
||||
isinstance(list_volume_response, list),
|
||||
True,
|
||||
"Check list volumes response for valid list")
|
||||
# Attach volume to VM
|
||||
self.virtual_machine.attach_volume(
|
||||
self.apiclient,
|
||||
volume
|
||||
)
|
||||
|
||||
# Check all volumes attached to same VM
|
||||
list_volume_response = list_volumes(
|
||||
# Check all volumes attached to same VM
|
||||
list_volume_response = Volume.list(
|
||||
self.apiclient,
|
||||
virtualmachineid=self.virtual_machine.id,
|
||||
type='DATADISK',
|
||||
listall=True
|
||||
)
|
||||
self.assertNotEqual(
|
||||
self.assertNotEqual(
|
||||
list_volume_response,
|
||||
None,
|
||||
"Check if volume exists in ListVolumes"
|
||||
)
|
||||
self.assertEqual(
|
||||
self.assertEqual(
|
||||
isinstance(list_volume_response, list),
|
||||
True,
|
||||
"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)
|
||||
)
|
||||
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)
|
||||
)
|
||||
|
||||
# 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(
|
||||
# Detach all volumes from VM
|
||||
for volume in volumes:
|
||||
self.virtual_machine.detach_volume(
|
||||
self.apiclient,
|
||||
volume
|
||||
)
|
||||
# Reboot VM
|
||||
self.debug("Rebooting the VM: %s" % self.virtual_machine.id)
|
||||
self.virtual_machine.reboot(self.apiclient)
|
||||
# Sleep to ensure that VM is in ready state
|
||||
time.sleep(self.services["sleep"])
|
||||
# Reboot VM
|
||||
self.debug("Rebooting the VM: %s" % self.virtual_machine.id)
|
||||
self.virtual_machine.reboot(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,
|
||||
)
|
||||
#Verify VM response to check whether VM deployment was successful
|
||||
self.assertEqual(
|
||||
#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(
|
||||
self.assertNotEqual(
|
||||
len(vm_response),
|
||||
0,
|
||||
"Check VMs available in List VMs response"
|
||||
)
|
||||
vm = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm.state,
|
||||
'Running',
|
||||
"Check the state of VM"
|
||||
)
|
||||
|
||||
# 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"])
|
||||
# Stop VM
|
||||
self.virtual_machine.stop(self.apiclient)
|
||||
|
||||
vm_response = list_virtual_machines(
|
||||
# Start VM
|
||||
self.virtual_machine.start(self.apiclient)
|
||||
# Sleep to ensure that VM is in ready state
|
||||
time.sleep(self.services["sleep"])
|
||||
|
||||
vm_response = VirtualMachine.list(
|
||||
self.apiclient,
|
||||
id=self.virtual_machine.id,
|
||||
)
|
||||
#Verify VM response to check whether VM deployment was successful
|
||||
self.assertEqual(
|
||||
#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(
|
||||
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(
|
||||
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 = vm_response[0]
|
||||
self.assertEqual(
|
||||
vm.state,
|
||||
'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)
|
||||
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)
|
||||
try:
|
||||
self.medium_virtual_machine.stop(self.apiclient)
|
||||
except Exception as e:
|
||||
self.fail("Failed to stop VM: %s" % e)
|
||||
|
||||
cmd = changeServiceForVirtualMachine.changeServiceForVirtualMachineCmd()
|
||||
cmd.id = self.medium_virtual_machine.id
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@ -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,38 +71,43 @@ class TestCreateTemplate(cloudstackTestCase):
|
||||
cls.domain = get_domain(cls.apiclient)
|
||||
cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
|
||||
cls.services['mode'] = cls.zone.networktype
|
||||
cls.disk_offering = DiskOffering.create(
|
||||
|
||||
cls._cleanup = []
|
||||
try:
|
||||
cls.disk_offering = DiskOffering.create(
|
||||
cls.apiclient,
|
||||
cls.services["disk_offering"]
|
||||
)
|
||||
template = get_template(
|
||||
cls._cleanup.append(cls.disk_offering)
|
||||
template = get_template(
|
||||
cls.apiclient,
|
||||
cls.zone.id,
|
||||
cls.services["ostype"]
|
||||
)
|
||||
if template == FAILED:
|
||||
assert False, "get_template() failed to return template with description %s" % cls.services["ostype"]
|
||||
if template == FAILED:
|
||||
assert False, "get_template() failed to return template with description %s" % cls.services["ostype"]
|
||||
|
||||
cls.services["template"]["ostypeid"] = template.ostypeid
|
||||
cls.services["template_2"]["ostypeid"] = template.ostypeid
|
||||
cls.services["ostypeid"] = template.ostypeid
|
||||
cls.services["template"]["ostypeid"] = template.ostypeid
|
||||
cls.services["template_2"]["ostypeid"] = template.ostypeid
|
||||
cls.services["ostypeid"] = template.ostypeid
|
||||
|
||||
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
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.services["virtual_machine"]["zoneid"] = cls.zone.id
|
||||
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.service_offering = ServiceOffering.create(
|
||||
cls._cleanup.append(cls.account)
|
||||
cls.service_offering = ServiceOffering.create(
|
||||
cls.apiclient,
|
||||
cls.services["service_offerings"]
|
||||
)
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls._cleanup.append(cls.service_offering)
|
||||
#create virtual machine
|
||||
cls.virtual_machine = VirtualMachine.create(
|
||||
cls.apiclient,
|
||||
cls.services["virtual_machine"],
|
||||
templateid=template.id,
|
||||
@ -102,47 +116,20 @@ class TestCreateTemplate(cloudstackTestCase):
|
||||
serviceofferingid=cls.service_offering.id,
|
||||
mode=cls.services["mode"]
|
||||
)
|
||||
#Stop virtual machine
|
||||
cls.virtual_machine.stop(cls.apiclient)
|
||||
|
||||
#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',
|
||||
listall=True
|
||||
)
|
||||
|
||||
cls.volume = list_volume[0]
|
||||
cls._cleanup = [
|
||||
cls.account,
|
||||
cls.service_offering,
|
||||
cls.disk_offering,
|
||||
]
|
||||
cls.volume = list_volume[0]
|
||||
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)
|
||||
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"
|
||||
)
|
||||
try:
|
||||
self.small_virtual_machine.stop(self.apiclient)
|
||||
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
|
||||
)
|
||||
@ -657,7 +648,7 @@ class TestVMLifeCycle(cloudstackTestCase):
|
||||
except Exception as e:
|
||||
self.fail("SSH failed for virtual machine: %s - %s" %
|
||||
(self.virtual_machine.ipaddress, e))
|
||||
|
||||
|
||||
mount_dir = "/mnt/tmp"
|
||||
cmds = "mkdir -p %s" % mount_dir
|
||||
self.assert_(ssh_client.execute(cmds) == [], "mkdir failed within guest")
|
||||
@ -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(
|
||||
self.apiClient,
|
||||
id=volume.id
|
||||
)
|
||||
list_volume_response = Volume.list(
|
||||
self.apiClient,
|
||||
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
|
||||
@ -548,7 +557,7 @@ class TestVolumes(cloudstackTestCase):
|
||||
success,
|
||||
True,
|
||||
"ResizeVolume - verify root disks cannot be resized by disk offering id")
|
||||
|
||||
|
||||
# Ok, now let's try and resize a volume that is not custom.
|
||||
cmd.id = self.volume.id
|
||||
cmd.diskofferingid = self.services['diskofferingid']
|
||||
@ -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