You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by gi...@apache.org on 2014/05/07 15:30:47 UTC
[3/4] CLOUDSTACK-6536: Code cleanup - removing unnecessary waits
after VM stop operation, modifying imports, removing white-spaces,
adding try catch blocks whenever necessary
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_netscaler_nw_off.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_netscaler_nw_off.py b/test/integration/component/test_netscaler_nw_off.py
index d3f1f9e..af53eb7 100644
--- a/test/integration/component/test_netscaler_nw_off.py
+++ b/test/integration/component/test_netscaler_nw_off.py
@@ -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,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_network_offering.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_network_offering.py b/test/integration/component/test_network_offering.py
index b0b6906..f2251ff8 100644
--- a/test/integration/component/test_network_offering.py
+++ b/test/integration/component/test_network_offering.py
@@ -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,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_persistent_networks.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_persistent_networks.py b/test/integration/component/test_persistent_networks.py
index deb0d6e..4261abe 100644
--- a/test/integration/component/test_persistent_networks.py
+++ b/test/integration/component/test_persistent_networks.py
@@ -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)
- 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)
+ 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)
+ # 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)
+ # 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)
+ # Verify that new network is created in other account
+ networks = Network.list(self.apiclient, account=account_2.name, domainid = account_2.domainid)
+ self.assertEqual(validateList(networks)[0], PASS, "networks list validation failed, list is %s" % networks)
+ except Exception as e:
+ self.fail("Exception occured: %s" % e)
return
@ddt
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_project_resources.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_resources.py b/test/integration/component/test_project_resources.py
index 8f81cf9..4f61cb0 100644
--- a/test/integration/component/test_project_resources.py
+++ b/test/integration/component/test_project_resources.py
@@ -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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_project_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index 16ca8c1..5e0dda5 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -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)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_redundant_router_cleanups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_redundant_router_cleanups.py b/test/integration/component/test_redundant_router_cleanups.py
index 2220d51..444fa3a 100644
--- a/test/integration/component/test_redundant_router_cleanups.py
+++ b/test/integration/component/test_redundant_router_cleanups.py
@@ -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'
)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_reset_ssh_keypair.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_reset_ssh_keypair.py b/test/integration/component/test_reset_ssh_keypair.py
index 307e8dc..d0ddb18 100644
--- a/test/integration/component/test_reset_ssh_keypair.py
+++ b/test/integration/component/test_reset_ssh_keypair.py
@@ -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.service_offering = ServiceOffering.create(
- cls.api_client,
- cls.services["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"]
- )
-
- 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,
+ 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._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"])
+
+ 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,
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()
-
- # 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)
-
- #Stop virtual machine
- cls.virtual_machine.stop(cls.api_client)
-
- # Poll listVM to ensure VM is stopped properly
- timeout = cls.services["timeout"]
- while True:
- time.sleep(cls.services["sleep"])
-
- # Ensure that VM is in stopped state
- list_vm_response = list_virtual_machines(
- cls.api_client,
- id=cls.virtual_machine.id
- )
-
- if isinstance(list_vm_response, list):
-
- vm = list_vm_response[0]
- if vm.state == 'Stopped':
- break
-
- if timeout == 0:
+ 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
+
+ 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)
+
+ 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(
- "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)
-
- #Stop virtual machine
- cls.virtual_machine.stop(cls.api_client)
+ ssh.execute(c)
- # 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
+ 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)
- list_volume = list_volumes(
+ list_volume = Volume.list(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
type='ROOT',
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_resource_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_resource_limits.py b/test/integration/component/test_resource_limits.py
index 09d9658..9f9cdfa 100644
--- a/test/integration/component/test_resource_limits.py
+++ b/test/integration/component/test_resource_limits.py
@@ -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):
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/247c7966/test/integration/component/test_security_groups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_security_groups.py b/test/integration/component/test_security_groups.py
index f5c4727..6343613 100644
--- a/test/integration/component/test_security_groups.py
+++ b/test/integration/component/test_security_groups.py
@@ -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: