This commit has following fixes:

- Configuration fixes in Security groups and Egress rules
- Fixing white spaces in component test suite
This commit is contained in:
Chirag Jog 2012-07-06 16:50:20 +05:30
parent 6eebd7aa0d
commit 6d17e2132d
25 changed files with 1324 additions and 1320 deletions

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Account
"""
@ -54,8 +54,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"virtual_machine": {
"displayname": "Test VM",
@ -75,7 +75,7 @@ class Services:
"ostypeid": 'aaf6e8c9-b609-441d-9ebd-b4eaa030a275',
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
@ -84,7 +84,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -135,9 +135,9 @@ class TestAccounts(cloudstackTestCase):
return
def test_01_create_account(self):
"""Test Create Account and user for that account
"""Test Create Account and user for that account
"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -270,9 +270,9 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
return
def test_01_user_remove_VM_running(self):
"""Test Remove one user from the account
"""Test Remove one user from the account
"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -334,8 +334,8 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
id=self.account.account.id
)
self.assertEqual(
isinstance(accounts_response, list),
True,
isinstance(accounts_response, list),
True,
"Check for valid list accounts response"
)
@ -350,8 +350,8 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
domainid=self.account.account.domainid
)
self.assertEqual(
isinstance(vm_response, list),
True,
isinstance(vm_response, list),
True,
"Check for valid list VM response"
)
@ -369,11 +369,12 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
"Check state of VMs associated with account"
)
return
@unittest.skip("Open Questions")
def test_02_remove_all_users(self):
"""Test Remove both users from the account
"""Test Remove both users from the account
"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -424,12 +425,12 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
domainid=self.account.account.domainid
)
self.assertEqual(
isinstance(users, list),
True,
isinstance(users, list),
True,
"Check for valid list users response"
)
for user in users:
self.debug("Deleting user: %s" % user.id)
cmd = deleteUser.deleteUserCmd()
cmd.id = user.id
@ -440,12 +441,12 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
name='account.cleanup.interval'
)
self.assertEqual(
isinstance(interval, list),
True,
isinstance(interval, list),
True,
"Check for valid list configurations response"
)
self.debug("account.cleanup.interval: %s" % interval[0].value)
# Sleep to ensure that all resources are deleted
time.sleep(int(interval[0].value))
@ -531,7 +532,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase):
def test_01_non_root_admin_Privileges(self):
"""Test to verify Non Root admin previleges"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -559,11 +560,11 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase):
)
self.assertEqual(
isinstance(accounts_response, list),
True,
isinstance(accounts_response, list),
True,
"Check list accounts response for valid data"
)
self.assertEqual(
len(accounts_response),
1,
@ -650,7 +651,7 @@ class TestServiceOfferingSiblings(cloudstackTestCase):
def test_01_service_offering_siblings(self):
"""Test to verify service offerings at same level in hierarchy"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -662,11 +663,11 @@ class TestServiceOfferingSiblings(cloudstackTestCase):
domainid=self.domain_1.id
)
self.assertEqual(
isinstance(service_offerings, list),
True,
isinstance(service_offerings, list),
True,
"Check if valid list service offerings response"
)
self.assertNotEqual(
len(service_offerings),
0,
@ -692,6 +693,7 @@ class TestServiceOfferingSiblings(cloudstackTestCase):
)
return
@unittest.skip("Open Questions")
class TestServiceOfferingHierarchy(cloudstackTestCase):
@ -765,7 +767,7 @@ class TestServiceOfferingHierarchy(cloudstackTestCase):
def test_01_service_offering_hierarchy(self):
"""Test to verify service offerings at same level in hierarchy"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -818,6 +820,7 @@ class TestServiceOfferingHierarchy(cloudstackTestCase):
)
return
@unittest.skip("Open Questions")
class TesttemplateHierarchy(cloudstackTestCase):
@ -896,7 +899,7 @@ class TesttemplateHierarchy(cloudstackTestCase):
def test_01_template_hierarchy(self):
"""Test to verify template at same level in hierarchy"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following
@ -956,6 +959,7 @@ class TesttemplateHierarchy(cloudstackTestCase):
)
return
class TestAddVmToSubDomain(cloudstackTestCase):
@classmethod
@ -1023,19 +1027,20 @@ class TestAddVmToSubDomain(cloudstackTestCase):
serviceofferingid=cls.service_offering.id
)
cls._cleanup = [
cls.account_2,
cls.account_1,
cls.sub_domain,
cls.service_offering
]
cls.account_2,
cls.account_1,
cls.sub_domain,
cls.service_offering
]
return
@classmethod
def tearDownClass(cls):
try:
try:
#Clean up, terminate the created resources
cleanup_resources(cls.api_client,cls._cleanup)
except Exception as e:
cleanup_resources(cls.api_client, cls._cleanup)
except Exception as e:
raise Exception("Warning: Exception during cleanup : %s" % e)
return
@ -1053,11 +1058,10 @@ class TestAddVmToSubDomain(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
def test_01_add_vm_to_subdomain(self):
""" Test Sub domain allowed to launch VM when a Domain level zone is
created"""
tags = ["advanced", "basic", "eip", "advancedns", "sg"]
# Validate the following

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" Tests for Blocker bugs
"""
@ -23,6 +23,7 @@ from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import *
from marvin.remoteSSHClient import remoteSSHClient
class Services:
"""Test Services
"""
@ -45,8 +46,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Small",
@ -66,7 +67,7 @@ class Services:
"volume": {
"diskname": "APP Data Volume",
"size": 1, # in GBs
"diskdevice": "/dev/xvdb", # Data Disk
"diskdevice": "/dev/xvdb", # Data Disk
},
"templates": {
"displaytext": 'Template from snapshot',
@ -75,11 +76,11 @@ class Services:
"templatefilter": 'self',
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
"passwordenabled":True,
"passwordenabled": True,
},
"paths": {
"mount_dir": "/mnt/tmp",
@ -94,12 +95,12 @@ class Services:
"protocol": "TCP"
},
"ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3',
# Cent OS 5.3 (64 bit)
"sleep":60,
# Cent OS 5.3 (64 bit)
"sleep": 60,
"mode": 'advanced',
# Networking mode, Advanced, Basic
}
class TestSnapshots(cloudstackTestCase):
@ -121,10 +122,10 @@ class TestSnapshots(cloudstackTestCase):
)
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
cls.services["volume"]["zoneid"] = cls.zone.id
cls.services["template"] = cls.template.id
cls.services["zoneid"] = cls.zone.id
# Create VMs, NAT Rules etc
cls.account = Account.create(
cls.api_client,
@ -181,9 +182,9 @@ class TestSnapshots(cloudstackTestCase):
def test_01_volume_from_snapshot(self):
"""TS_BUG_001-Test Creating snapshot from volume having spaces in name(KVM)
"""
tags = ["advanced", "advancedns"]
# Validate the following
#1. Create a virtual machine and data volume
#2. Attach data volume to VM
@ -192,31 +193,31 @@ class TestSnapshots(cloudstackTestCase):
#5. Create another Volume from snapshot
#6. Mount/Attach volume to another server
#7. Compare data
random_data_0 = random_gen(100)
random_data_1 = random_gen(100)
volume = Volume.create(
self.apiclient,
self.services["volume"],
zoneid=self.zone.id,
account=self.account.account.name,
domainid=self.account.account.domainid,
self.apiclient,
self.services["volume"],
zoneid=self.zone.id,
account=self.account.account.name,
domainid=self.account.account.domainid,
diskofferingid=self.disk_offering.id
)
self.debug("Created volume with ID: %s" % volume.id)
self.virtual_machine.attach_volume(
self.apiclient,
volume
)
self.debug("Attach volume: %s to VM: %s" %
)
self.debug("Attach volume: %s to VM: %s" %
(volume.id, self.virtual_machine.id))
try:
ssh_client = self.virtual_machine.get_ssh_client()
except Exception as e:
self.fail("SSH failed for VM: %s" %
self.fail("SSH failed for VM: %s" %
self.virtual_machine.ipaddress)
self.debug("Formatting volume: %s to ext3" % volume.id)
#Format partition using ext3
format_volume_to_ext3(
@ -270,8 +271,8 @@ class TestSnapshots(cloudstackTestCase):
)
self.assertEqual(
isinstance(list_volume_response, list),
True,
isinstance(list_volume_response, list),
True,
"Check list volume response for valid data"
)
volume_response = list_volume_response[0]
@ -292,7 +293,7 @@ class TestSnapshots(cloudstackTestCase):
domainid=self.account.account.domainid
)
self.debug("Created Volume: %s from Snapshot: %s" % (
volume_from_snapshot.id,
volume_from_snapshot.id,
snapshot.id))
volumes = Volume.list(
self.apiclient,
@ -303,13 +304,13 @@ class TestSnapshots(cloudstackTestCase):
True,
"Check list response returns a valid list"
)
self.assertNotEqual(
len(volumes),
None,
"Check Volume list Length"
)
self.assertEqual (
self.assertEqual(
volumes[0].id,
volume_from_snapshot.id,
"Check Volume in the List Volumes"
@ -331,7 +332,7 @@ class TestSnapshots(cloudstackTestCase):
volume_from_snapshot.id,
new_virtual_machine.id
))
cmd = attachVolume.attachVolumeCmd()
cmd.id = volume_from_snapshot.id
cmd.virtualmachineid = new_virtual_machine.id
@ -340,7 +341,7 @@ class TestSnapshots(cloudstackTestCase):
try:
#Login to VM to verify test directories and files
ssh = new_virtual_machine.get_ssh_client()
cmds = [
"mkdir -p %s" % self.services["paths"]["mount_dir"],
"mount %s1 %s" % (
@ -368,7 +369,7 @@ class TestSnapshots(cloudstackTestCase):
self.services["paths"]["random_data"]
))
except Exception as e:
self.fail("SSH access failed for VM: %s" %
self.fail("SSH access failed for VM: %s" %
new_virtual_machine.ipaddress)
#Verify returned data
self.assertEqual(
@ -420,7 +421,7 @@ class TestTemplate(cloudstackTestCase):
cls.zone = get_zone(cls.api_client, cls.services)
cls.services["virtual_machine"]["zoneid"] = cls.zone.id
cls.services["templates"]["zoneid"] = cls.zone.id
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
@ -453,7 +454,7 @@ class TestTemplate(cloudstackTestCase):
def test_01_create_template(self):
"""TS_BUG_002-Test to create and deploy VM using password enabled template
"""
tags = ["advanced", "advancedns", "basic", "sg"]
# Validate the following:
@ -476,13 +477,13 @@ class TestTemplate(cloudstackTestCase):
template.download(self.apiclient)
except Exception as e:
self.fail("Exception while downloading template %s: %s"\
% (template.id, e))
% (template.id, e))
self.cleanup.append(template)
# Wait for template status to be changed across
time.sleep(self.services["sleep"])
list_template_response = Template.list(
self.apiclient,
templatefilter=\
@ -490,7 +491,7 @@ class TestTemplate(cloudstackTestCase):
id=template.id,
zoneid=self.zone.id
)
self.assertEqual(
isinstance(list_template_response, list),
True,
@ -521,7 +522,7 @@ class TestTemplate(cloudstackTestCase):
)
self.debug("Deployed VM with ID: %s " % virtual_machine.id)
self.assertEqual(
hasattr(virtual_machine,"password"),
hasattr(virtual_machine, "password"),
True,
"Check if the deployed VM returned a password"
)
@ -529,7 +530,7 @@ class TestTemplate(cloudstackTestCase):
class TestNATRules(cloudstackTestCase):
@classmethod
def setUpClass(cls):
@ -565,10 +566,10 @@ class TestNATRules(cloudstackTestCase):
serviceofferingid=cls.service_offering.id
)
cls.public_ip = PublicIPAddress.create(
cls.api_client,
accountid=cls.account.account.name,
zoneid=cls.zone.id,
domainid=cls.account.account.domainid,
cls.api_client,
accountid=cls.account.account.name,
zoneid=cls.zone.id,
domainid=cls.account.account.domainid,
services=cls.services["virtual_machine"]
)
cls._cleanup = [
@ -597,25 +598,25 @@ class TestNATRules(cloudstackTestCase):
def test_01_firewall_rules_port_fw(self):
""""Checking firewall rules deletion after static NAT disable"""
tags = ["advanced"]
# Validate the following:
#1. Enable static NAT for a VM
#2. Open up some ports. At this point there will be new rows in the
# firewall_rules table.
# firewall_rules table.
#3. Disable static NAT for the VM.
#4. Check fire wall rules are deleted from firewall_rules table.
public_ip = self.public_ip.ipaddress
# Enable Static NAT for VM
StaticNATRule.enable(
self.apiclient,
public_ip.id,
self.virtual_machine.id
)
self.debug("Enabled static NAT for public IP ID: %s" %
)
self.debug("Enabled static NAT for public IP ID: %s" %
public_ip.id)
#Create Static NAT rule
nat_rule = StaticNATRule.create(
@ -658,7 +659,7 @@ class TestNATRules(cloudstackTestCase):
True,
"Check database query returns a valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -680,20 +681,20 @@ class TestNATRules(cloudstackTestCase):
True,
"Check database query returns a valid data for firewall rules"
)
self.assertNotEqual(
len(qresultset),
0,
"Check DB Query result set"
)
for qresult in qresultset:
self.assertEqual(
qresult[1],
'Active',
"Check state of the static NAT rule in database"
)
nat_rule.delete(self.apiclient)
list_rules_repsonse = StaticNATRule.list(
@ -706,7 +707,7 @@ class TestNATRules(cloudstackTestCase):
None,
"Check Port Forwarding Rule is deleted"
)
# Verify the entries made in firewall_rules tables
self.debug(
"select id, state from firewall_rules where ip_address_id = '%s';" \
@ -716,7 +717,7 @@ class TestNATRules(cloudstackTestCase):
"select id, state from firewall_rules where ip_address_id = '%s';" \
% public_ip.id
)
self.assertEqual(
len(qresultset),
0,
@ -738,7 +739,7 @@ class TestRouters(cloudstackTestCase):
cls.zone.id,
cls.services["ostypeid"]
)
# Create an account, domain etc
cls.domain = Domain.create(
cls.api_client,
@ -750,7 +751,7 @@ class TestRouters(cloudstackTestCase):
admin=True,
domainid=cls.domain.id
)
cls.user_account = Account.create(
cls.api_client,
cls.services["account"],
@ -799,13 +800,13 @@ class TestRouters(cloudstackTestCase):
def test_01_list_routers_admin(self):
"""TS_BUG_007-Check listRouters() using Admin User
"""
tags = ["advanced", "advancedns"]
# Validate the following
# 1. PreReq: have rounters that are owned by other account
# 2. Create domain and create accounts in that domain
# 3. Create one VM for each account
# 2. Create domain and create accounts in that domain
# 3. Create one VM for each account
# 4. Using Admin , run listRouters. It should return all the routers
vm_1 = VirtualMachine.create(
@ -906,11 +907,10 @@ class TestRouterRestart(cloudstackTestCase):
self.apiclient = self.testClient.getApiClient()
return
def test_01_restart_network_cleanup(self):
"""TS_BUG_008-Test restart network
"""
tags = ["advanced", "basic", "sg", "advancedns", "eip"]
# Validate the following
@ -1033,7 +1033,7 @@ class TestTemplates(cloudstackTestCase):
cls.volume = list_volume[0]
except Exception as e:
raise Exception("Warning: Exception during setup : %s" % e)
cls._cleanup = [
cls.service_offering,
cls.account,
@ -1071,13 +1071,13 @@ class TestTemplates(cloudstackTestCase):
def test_01_check_template_size(self):
"""TS_BUG_009-Test the size of template created from root disk
"""
tags = ["advanced", "advancedns", "basic", "sg", "eip"]
# Validate the following:
# 1. Deploy new VM using the template created from Volume
# 2. VM should be in Up and Running state
#Create template from volume
template = Template.create(
self.apiclient,
@ -1094,11 +1094,11 @@ class TestTemplates(cloudstackTestCase):
"Check if size of template and volume are same"
)
return
def test_02_check_size_snapshotTemplate(self):
"""TS_BUG_010-Test check size of snapshot and template
"""
tags = ["advanced", "advancedns", "basic", "sg", "eip"]
# Validate the following
@ -1110,7 +1110,7 @@ class TestTemplates(cloudstackTestCase):
# Create a snapshot from the ROOTDISK
snapshot = Snapshot.create(
self.apiclient,
self.apiclient,
self.volume.id,
account=self.account.account.name,
domainid=self.account.account.domainid
@ -1143,7 +1143,7 @@ class TestTemplates(cloudstackTestCase):
self.services["templates"]
)
self.cleanup.append(template)
self.debug("Created template from snapshot with ID: %s" % template.id)
templates = Template.list(
self.apiclient,
@ -1178,7 +1178,7 @@ class TestTemplates(cloudstackTestCase):
def test_03_resuse_template_name(self):
"""TS_BUG_011-Test Reusing deleted template name
"""
tags = ["advanced", "advancedns", "basic", "sg", "eip"]
# Validate the following
@ -1247,15 +1247,15 @@ class TestTemplates(cloudstackTestCase):
True,
"Check new template state in list templates call"
)
self.debug("Deleting template: %s" % template.id)
template.delete(self.apiclient)
# Wait for some time to ensure template state is reflected in other calls
# Wait for some time to ensure template state is reflected in other calls
time.sleep(self.services["sleep"])
# Generate template from the snapshot
self.debug("Creating template from snapshot: %s with same name" %
self.debug("Creating template from snapshot: %s with same name" %
template.id)
template = Template.create_from_snapshot(
self.apiclient,

View File

@ -34,7 +34,7 @@ class Services:
def __init__(self):
self.services = {
"disk_offering":{
"disk_offering": {
"displaytext": "Small",
"name": "Small",
"disksize": 1
@ -64,8 +64,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"security_group": {
"name": 'SSH',
@ -107,8 +107,9 @@ class Services:
"protocol": 'TCP',
"startport": 22,
"endport": 22,
"cidrlist": '0.0.0.0/0'
},
"mgmt_server": {
"mgmt_server": {
"username": "root",
"password": "fr3sca",
"ipaddress": "192.168.100.21"
@ -117,7 +118,7 @@ class Services:
# CentOS 5.3 (64-bit)
"sleep": 60,
"timeout": 10,
"mode":'basic',
"mode": 'basic',
# Networking mode: Basic or Advanced
}
@ -194,7 +195,7 @@ class TestDefaultSecurityGroupEgress(cloudstackTestCase):
def test_deployVM_InDefaultSecurityGroup(self):
"""Test deploy VM in default security group with no egress rules
"""
tags = ["sg", "eip"]
# Validate the following:
@ -351,7 +352,7 @@ class TestAuthorizeIngressRule(cloudstackTestCase):
def test_authorizeIngressRule(self):
"""Test authorize ingress rule
"""
tags = ["sg", "eip"]
# Validate the following:
@ -509,7 +510,7 @@ class TestDefaultGroupEgress(cloudstackTestCase):
def test_01_default_group_with_egress(self):
"""Test default group with egress rule before VM deploy and ping, ssh
"""
tags = ["sg", "eip"]
# Validate the following:
@ -711,7 +712,7 @@ class TestDefaultGroupEgressAfterDeploy(cloudstackTestCase):
""" Test default group with egress rule added after vm deploy and ping,
ssh test
"""
tags = ["sg", "eip"]
# Validate the following:
@ -808,7 +809,7 @@ class TestDefaultGroupEgressAfterDeploy(cloudstackTestCase):
# --- www.l.google.com ping statistics ---
# 1 packets transmitted, 1 received, 0% packet loss, time 0ms
# rtt min/avg/max/mdev = 25.970/25.970/25.970/0.000 ms
self.debug("SSH result: %s" % str(res))
self.debug("SSH result: %s" % str(res))
except Exception as e:
self.fail("SSH Access failed for %s: %s" % \
(self.virtual_machine.ipaddress, e)
@ -893,7 +894,7 @@ class TestRevokeEgressRule(cloudstackTestCase):
def test_revoke_egress_rule(self):
"""Test revoke security group egress rule
"""
tags = ["sg", "eip"]
# Validate the following:
@ -994,7 +995,7 @@ class TestRevokeEgressRule(cloudstackTestCase):
# --- www.l.google.com ping statistics ---
# 1 packets transmitted, 1 received, 0% packet loss, time 0ms
# rtt min/avg/max/mdev = 25.970/25.970/25.970/0.000 ms
self.debug("SSH result: %s" % str(res))
self.debug("SSH result: %s" % str(res))
except Exception as e:
self.fail("SSH Access failed for %s: %s" % \
(self.virtual_machine.ipaddress, e)
@ -1035,7 +1036,7 @@ class TestRevokeEgressRule(cloudstackTestCase):
result = security_group.revokeEgress(
self.apiclient,
id = ssh_egress_rule["ruleid"]
id=ssh_egress_rule["ruleid"]
)
self.debug("Revoke egress rule result: %s" % result)
@ -1155,7 +1156,7 @@ class TestInvalidAccountAuthroize(cloudstackTestCase):
def test_invalid_account_authroize(self):
"""Test invalid account authroize
"""
tags = ["sg", "eip"]
# Validate the following:
@ -1283,7 +1284,7 @@ class TestMultipleAccountsEgressRuleNeg(cloudstackTestCase):
def test_multiple_account_egress_rule_negative(self):
"""Test multiple account egress rules negative case
"""
tags = ["sg", "eip"]
# Validate the following:
@ -1332,14 +1333,14 @@ class TestMultipleAccountsEgressRuleNeg(cloudstackTestCase):
"Authorizing egress rule for sec group ID: %s for ssh access"
% security_group.id)
# Authorize to only account not CIDR
user_secgrp_list = {self.accountB.account.name: 'default'}
user_secgrp_list = {self.accountB.account.name: 'default'}
egress_rule = security_group.authorizeEgress(
self.apiclient,
self.services["sg_account"],
account=self.accountA.account.name,
domainid=self.accountA.account.domainid,
user_secgrp_list=user_secgrp_list
user_secgrp_list=user_secgrp_list
)
self.assertEqual(
@ -1435,7 +1436,7 @@ class TestMultipleAccountsEgressRuleNeg(cloudstackTestCase):
try:
self.debug("SSHing into VM type B from VM A")
self.debug("VM IP: %s" % self.virtual_machineB.ssh_ip)
self.debug("VM IP: %s" % self.virtual_machineB.ssh_ip)
res = ssh.execute("ssh %s@%s" % (
self.services["virtual_machine"]["username"],
self.virtual_machineB.ssh_ip
@ -1531,7 +1532,7 @@ class TestMultipleAccountsEgressRule(cloudstackTestCase):
def test_multiple_account_egress_rule_positive(self):
"""Test multiple account egress rules positive case
"""
tags = ["sg", "eip"]
# Validate the following:
@ -1607,14 +1608,14 @@ class TestMultipleAccountsEgressRule(cloudstackTestCase):
"Authorizing egress rule for sec group ID: %s for ssh access"
% security_groupA.id)
# Authorize to only account not CIDR
user_secgrp_list = {self.accountB.account.name: security_groupB.name}
user_secgrp_list = {self.accountB.account.name: security_groupB.name}
egress_rule = security_groupA.authorizeEgress(
self.apiclient,
self.services["sg_account"],
account=self.accountA.account.name,
domainid=self.accountA.account.domainid,
user_secgrp_list=user_secgrp_list
user_secgrp_list=user_secgrp_list
)
self.assertEqual(
@ -1731,7 +1732,7 @@ class TestMultipleAccountsEgressRule(cloudstackTestCase):
try:
self.debug("SSHing into VB type B from VM A")
self.debug("VM IP: %s" % self.virtual_machineB.ssh_ip)
self.debug("VM IP: %s" % self.virtual_machineB.ssh_ip)
res = ssh.execute("ssh %s@%s" % (
self.services["virtual_machine"]["username"],
@ -1822,7 +1823,7 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
def test_start_stop_vm_egress(self):
""" Test stop start Vm with egress rules
"""
tags = ["sg", "eip"]
# Validate the following:
@ -1962,6 +1963,7 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
)
return
@unittest.skip("Valid bug- ID: CS-12647")
class TestInvalidParametersForEgress(cloudstackTestCase):
@ -2033,7 +2035,7 @@ class TestInvalidParametersForEgress(cloudstackTestCase):
def test_invalid_parameters(self):
""" Test invalid parameters for egress rules
"""
tags = ["sg", "eip"]
# Validate the following:
@ -2220,7 +2222,7 @@ class TestEgressAfterHostMaintainance(cloudstackTestCase):
def test_egress_after_host_maintainance(self):
"""Test maintenance case for egress
"""
tags = ["sg", "eip"]
# Validate the following:
@ -2326,12 +2328,12 @@ class TestEgressAfterHostMaintainance(cloudstackTestCase):
)
vm = vms[0]
self.debug("Enabling host maintainance for ID: %s" % host.id)
self.debug("Enabling host maintainance for ID: %s" % vm.hostid)
cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd()
cmd.id = vm.hostid
self.apiclient.prepareHostForMaintenance(cmd)
self.debug("Canceling host maintainance for ID: %s" % host.id)
self.debug("Canceling host maintainance for ID: %s" % vm.hostid)
cmd = cancelHostMaintenance.cancelHostMaintenanceCmd()
cmd.id = vm.hostid
self.apiclient.cancelHostMaintenance(cmd)

View File

@ -44,8 +44,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"lbrule": {
"name": "SSH",
@ -180,7 +180,7 @@ class TestEIP(cloudstackTestCase):
def test_01_eip_by_deploying_instance(self):
"""Test EIP by deploying an instance
"""
tags = ["eip"]
# Validate the following
@ -347,7 +347,7 @@ class TestEIP(cloudstackTestCase):
def test_02_acquire_ip_enable_static_nat(self):
"""Test associate new IP and enable static NAT for new IP and the VM
"""
tags = ["eip"]
# Validate the following
@ -491,7 +491,7 @@ class TestEIP(cloudstackTestCase):
def test_03_disable_static_nat(self):
"""Test disable static NAT and release EIP acquired
"""
tags = ["eip"]
# Validate the following
@ -690,7 +690,7 @@ class TestEIP(cloudstackTestCase):
def test_04_disable_static_nat_system(self):
"""Test disable static NAT with system = True
"""
tags = ["eip"]
# Validate the following
@ -759,7 +759,7 @@ class TestEIP(cloudstackTestCase):
def test_05_destroy_instance(self):
"""Test EIO after destroying instance
"""
tags = ["eip"]
# Validate the following
@ -997,7 +997,7 @@ class TestELB(cloudstackTestCase):
def test_01_elb_create(self):
"""Test ELB by creating a LB rule
"""
tags = ["eip"]
# Validate the following
@ -1170,7 +1170,7 @@ class TestELB(cloudstackTestCase):
def test_02_elb_acquire_and_create(self):
"""Test ELB by acquiring IP and then creating a LB rule
"""
tags = ["eip"]
# Validate the following
@ -1318,7 +1318,7 @@ class TestELB(cloudstackTestCase):
def test_03_elb_delete_lb_system(self):
"""Test delete LB rule generated with public IP with is_system = 1
"""
tags = ["eip"]
# Validate the following
@ -1422,7 +1422,7 @@ class TestELB(cloudstackTestCase):
def test_04_delete_lb_on_eip(self):
"""Test delete LB rule generated on EIP
"""
tags = ["eip"]
# Validate the following

View File

@ -44,8 +44,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"lbrule": {
"name": "SSH",
@ -59,7 +59,7 @@ class Services:
"publicport": 22,
"protocol": "TCP"
},
"fw_rule":{
"fw_rule": {
"startport": 1,
"endport": 6000,
"cidr": '55.55.0.0/11',
@ -83,7 +83,7 @@ class Services:
"ostypeid": '1d4a6dce-8db1-4c08-8752-e88b360d8287',
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
@ -93,7 +93,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 100,
"mode":'advanced'
"mode": 'advanced'
}
@ -172,7 +172,7 @@ class TestHighAvailability(cloudstackTestCase):
def test_01_host_maintenance_mode(self):
"""Test host maintenance mode
"""
tags = ["advanced", "advancedns"]
# Validate the following
@ -563,7 +563,7 @@ class TestHighAvailability(cloudstackTestCase):
def test_02_host_maintenance_mode_with_activities(self):
"""Test host maintenance mode with activities
"""
tags = ["advanced", "advancedns"]
# Validate the following
@ -692,7 +692,7 @@ class TestHighAvailability(cloudstackTestCase):
self.fail("SSH Access failed for %s: %s" % \
(virtual_machine.ipaddress, e)
)
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=virtual_machine.id,
@ -861,7 +861,7 @@ class TestHighAvailability(cloudstackTestCase):
self.apiclient.cancelHostMaintenance(cmd)
self.debug("Maintenance mode canceled for host: %s" % first_host)
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=virtual_machine_2.id,

View File

@ -44,8 +44,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"virtual_machine": {
"displayname": "TestVM",
@ -78,7 +78,7 @@ class Services:
"availability": 'Optional',
"specifyVlan": False,
"specifyIpRanges": False,
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -105,7 +105,7 @@ class Services:
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
"traffictype": 'GUEST',
"availability": 'Optional',
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -138,7 +138,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -224,7 +224,7 @@ class TestLbSourceNat(cloudstackTestCase):
def test_add_lb_on_source_nat(self):
"""Test Create LB rule for sourceNat IP address
"""
tags = ["advancedns"]
# Validate the following
@ -433,7 +433,7 @@ class TestLbOnIpWithPf(cloudstackTestCase):
def test_lb_on_ip_with_pf(self):
"""Test Create LB rule for sourceNat IP address
"""
tags = ["advancedns"]
# Validate the following
@ -644,7 +644,7 @@ class TestPfOnIpWithLb(cloudstackTestCase):
def test_pf_on_ip_with_lb(self):
"""Test Create a port forwarding rule on an Ip address that already has a LB rule.
"""
tags = ["advancedns"]
# Validate the following
@ -856,7 +856,7 @@ class TestLbOnNonSourceNat(cloudstackTestCase):
def test_lb_on_non_source_nat(self):
"""Test Create LB rule for non-sourceNat IP address
"""
tags = ["advancedns"]
# Validate the following
@ -1071,7 +1071,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase):
def test_add_multiple_vms_lb(self):
"""Test Add multiple Vms to an existing LB rule.
"""
tags = ["advancedns"]
# Validate the following
@ -1082,7 +1082,7 @@ class TestAddMultipleVmsLb(cloudstackTestCase):
# this rule. LB rule should be
# In Netscaler: For every Vm added to the LB rule:
# 1. A server and service instance is created using guest VMs IP and
# port number on the Netscaler LB device,
# port number on the Netscaler LB device,
# 2. This service is bound to lb virtual server corresponding to lb
# rule.
@ -1349,7 +1349,7 @@ class TestMultipleLbRules(cloudstackTestCase):
def test_multiple_lb_publicip(self):
"""Test Create multiple LB rules using different public Ips acquired
"""
tags = ["advancedns"]
# Validate the following
@ -1665,7 +1665,7 @@ class TestMultipleLbRulesSameIp(cloudstackTestCase):
def test_multiple_lb_same_publicip(self):
"""Test Create multiple LB rules using same public Ips on diff ports
"""
tags = ["advancedns"]
# Validate the following
@ -2022,7 +2022,7 @@ class TestLoadBalancingRule(cloudstackTestCase):
def test_01_edit_name_lb_rule(self):
"""Test edit name of LB rule
"""
tags = ["advancedns"]
# Validate the following
@ -2056,7 +2056,7 @@ class TestLoadBalancingRule(cloudstackTestCase):
def test_02_edit_lb_ports(self):
"""Test edit public port of LB rule
"""
tags = ["advancedns"]
# Validate the following
@ -2078,7 +2078,7 @@ class TestLoadBalancingRule(cloudstackTestCase):
def test_03_delete_lb_rule(self):
"""Test delete LB rule
"""
tags = ["advancedns"]
# Validate the following
@ -2127,6 +2127,7 @@ class TestLoadBalancingRule(cloudstackTestCase):
(self.services["netscaler"]["ipaddress"], e))
return
@unittest.skip("Questions - How to verify after changing public/private ports?")
class TestDeleteCreateLBRule(cloudstackTestCase):
@ -2244,7 +2245,7 @@ class TestDeleteCreateLBRule(cloudstackTestCase):
def test_01_create_with_same_public_port(self):
"""Test create LB rule with same public port after deleting rule"""
tags = ["advancedns"]
# Validate the following
@ -2405,7 +2406,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_01_delete_public_ip(self):
"""Test delete one public Ip with LB rules"""
tags = ["advancedns"]
# Validate the following
@ -2474,7 +2475,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_02_stop_user_vm(self):
"""Test stop user VM with LB"""
tags = ["advancedns"]
# Validate the following
@ -2554,7 +2555,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_03_start_user_vm(self):
"""Test start user VM with LB"""
tags = ["advancedns"]
# Validate the following
@ -2625,11 +2626,11 @@ class TestVmWithLb(cloudstackTestCase):
def test_04_migrate_user_vm(self):
"""Test migrate user VM with LB"""
tags = ["advancedns"]
# Validate the following
# 1. Create 2 instances and add these two for load balancing
# 1. Create 2 instances and add these two for load balancing
# 2. migrate one Vm to another host.
# 3. Test whether the request are sent to stopped user VM after migrate
# 4. In netscaler, the LB rules are still configured.
@ -2738,7 +2739,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_05_reboot_user_vm(self):
"""Test reboot user VM with LB"""
tags = ["advancedns"]
# Validate the following
@ -2808,7 +2809,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_06_destroy_user_vm(self):
"""Test destroy user VM with LB"""
tags = ["advancedns"]
# Validate the following
@ -2891,7 +2892,7 @@ class TestVmWithLb(cloudstackTestCase):
def test_07_delete_all_public_ip(self):
"""Test delete all public Ip with LB rules"""
tags = ["advancedns"]
# Validate the following

View File

@ -67,7 +67,7 @@ class Services:
"numretries": 2,
"lbdevicededicated": False,
"lbdevicecapacity": 50,
"port": 22,
"port": 22,
},
"network_offering": {
"name": 'Netscaler',
@ -76,7 +76,7 @@ class Services:
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
"traffictype": 'GUEST',
"availability": 'Optional',
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -104,7 +104,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -541,7 +541,6 @@ class TestLbWithLeastConn(cloudstackTestCase):
return
class TestLbWithSourceIp(cloudstackTestCase):
@classmethod
@ -754,7 +753,6 @@ class TestLbWithSourceIp(cloudstackTestCase):
return
class TestLbAlgoRrLc(cloudstackTestCase):
@classmethod
@ -967,7 +965,6 @@ class TestLbAlgoRrLc(cloudstackTestCase):
return
class TestLbAlgoLcRr(cloudstackTestCase):
@classmethod
@ -1177,7 +1174,6 @@ class TestLbAlgoLcRr(cloudstackTestCase):
return
class TestLbAlgoRrSb(cloudstackTestCase):
@classmethod
@ -1390,7 +1386,6 @@ class TestLbAlgoRrSb(cloudstackTestCase):
return
class TestLbAlgoSbRr(cloudstackTestCase):
@classmethod
@ -1605,7 +1600,6 @@ class TestLbAlgoSbRr(cloudstackTestCase):
return
class TestLbAlgoSbLc(cloudstackTestCase):
@classmethod
@ -1820,7 +1814,6 @@ class TestLbAlgoSbLc(cloudstackTestCase):
return
class TestLbAlgoLcSb(cloudstackTestCase):
@classmethod
@ -1970,7 +1963,7 @@ class TestLbAlgoLcSb(cloudstackTestCase):
lb_rule.name
))
lb_rule.assign(self.apiclient, [self.virtual_machine])
self.debug("SSH into Netscaler to check whether algorithm is configured properly or not?")
self.debug("SSH into netscaler: %s" %
self.services["netscaler"]["ipaddress"])

View File

@ -44,8 +44,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
},
"virtual_machine": {
"displayname": "TestVM",
@ -102,7 +102,7 @@ class Services:
"availability": 'Optional',
"specifyVlan": False,
"specifyIpRanges": False,
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -129,7 +129,7 @@ class Services:
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
"traffictype": 'GUEST',
"availability": 'Optional',
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -157,11 +157,10 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
class TestAddMultipleNetScaler(cloudstackTestCase):
@classmethod
@ -205,7 +204,7 @@ class TestAddMultipleNetScaler(cloudstackTestCase):
def test_add_netscaler_device(self):
"""Test add netscaler device
"""
tags = ["advancedns"]
# Validate the following
@ -363,7 +362,7 @@ class TestAddMultipleNSDiffZone(cloudstackTestCase):
def test_add_mul_netscaler_diff_zone(self):
"""Test add netscaler devices in different zones
"""
tags = ["advancedns"]
# Validate the following
@ -651,7 +650,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
def test_01_netscaler_shared_mode(self):
"""Test netscaler device in shared mode
"""
tags = ["advancedns"]
# Validate the following
@ -806,12 +805,12 @@ class TestNetScalerSharedMode(cloudstackTestCase):
def test_02_multiple_netscaler_capacilty(self):
"""Test multiple netscaler devices with limited capacity
"""
tags = ["advancedns"]
# Validate the following
# 1. Add another netscaler device and spawn a new VM again
# 2. VM deployement should be successful
# 1. Add another netscaler device and spawn a new VM again
# 2. VM deployement should be successful
self.debug("Adding another netscaler device: %s" %
self.services["netscaler_2"]["ipaddress"])
@ -908,7 +907,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
def test_03_multiple_netscaler_full_capacilty(self):
"""Test netscaler device with full capacity
"""
tags = ["advancedns"]
# Validate the following
@ -993,7 +992,7 @@ class TestNetScalerSharedMode(cloudstackTestCase):
def test_04_delete_account_after_capacity_full(self):
"""Test delete and add resouces after netscaler device capacity is full
"""
tags = ["advancedns"]
# Validate the following
@ -1178,7 +1177,7 @@ class TestNwOffDedicatedNetscaler(cloudstackTestCase):
def test_nw_off_dedicated_mode(self):
"""Test network offering in dedicated mode device
"""
tags = ["advancedns"]
# Validate the following
@ -1211,7 +1210,7 @@ class TestNwOffDedicatedNetscaler(cloudstackTestCase):
# Creating network using the network offering created
self.debug("Creating network with network offering: %s" %
self.network_offering.id)
self.network_1 = Network.create(
self.apiclient,
self.services["network"],
@ -1220,18 +1219,18 @@ class TestNwOffDedicatedNetscaler(cloudstackTestCase):
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
)
self.debug("Deploy Instance with network: %s" % self.network_1.name)
self.debug("Deploy Instance with network: %s" % self.network_1.name)
with self.assertRaises(Exception):
# Spawn an instance in that network
VirtualMachine.create(
# Spawn an instance in that network
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_1.account.name,
domainid=self.account_1.account.domainid,
serviceofferingid=self.service_offering.id,
networkids=[str(self.network_1.id)]
)
self.debug("Created instance failed!")
)
self.debug("Created instance failed!")
return
@ -1372,7 +1371,7 @@ class TestNwOffNetscaler(cloudstackTestCase):
def test_ns_shared_nw_dedicated(self):
"""Test netscaler device in shared mode with network offering in dedicated mode
"""
tags = ["advancedns"]
# Validate the following
@ -1413,37 +1412,37 @@ class TestNwOffNetscaler(cloudstackTestCase):
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
)
self.debug("Deploying VM in account: %s" % self.account_1.account.name)
virtual_machine = VirtualMachine.create(
self.debug("Deploying VM in account: %s" % self.account_1.account.name)
virtual_machine = VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_1.account.name,
domainid=self.account_1.account.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)
self.network_2 = Network.create(
self.apiclient,
self.services["network"],
accountid=self.account_2.account.name,
domainid=self.account_2.account.domainid,
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
)
self.apiclient,
self.services["network"],
accountid=self.account_2.account.name,
domainid=self.account_2.account.domainid,
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
)
self.debug("Created network with ID: %s" % self.network_2.id)
with self.assertRaises(Exception):
VirtualMachine.create(
VirtualMachine.create(
self.apiclient,
self.services["virtual_machine"],
accountid=self.account_2.account.name,
domainid=self.account_2.account.domainid,
serviceofferingid=self.service_offering.id,
networkids=[str(self.network_2.id)]
)
)
self.debug(
"Attempt to create second network with dedicated network offering failed!")
self.debug("Deleting account: %s" % self.account_1.account.name)
@ -1682,7 +1681,7 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
def test_shared_to_dedicated_upgrade(self):
"""Test upgrade from shared LB isolation to dedicated LB isolation"""
tags = ["advancedns"]
# Validate the following
@ -1850,9 +1849,9 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
physicalnetworkid=self.physical_network.id
)
self.debug("Stopping All VMs before upgrading network for account: %s" %
self.account_1.account.name)
virtual_machine_1.stop(self.apiclient)
self.debug("Stopping All VMs before upgrading network for account: %s" %
self.account_1.account.name)
virtual_machine_1.stop(self.apiclient)
list_vm_response = VirtualMachine.list(
self.apiclient,
@ -1876,7 +1875,7 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
"Stopped",
"VM state should be running after deployment"
)
self.debug("All Vms are in stopped state")
self.debug("All Vms are in stopped state")
self.debug("Upgrading the network: %s" % self.network_1.id)
self.network_1.update(
self.apiclient,
@ -1905,9 +1904,9 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
"Network offering ID should match with new offering ID"
)
self.debug("Starting All VMs after upgrading network for account: %s" %
self.account_1.account.name)
virtual_machine_1.start(self.apiclient)
self.debug("Starting All VMs after upgrading network for account: %s" %
self.account_1.account.name)
virtual_machine_1.start(self.apiclient)
list_vm_response = VirtualMachine.list(
self.apiclient,
@ -1931,7 +1930,7 @@ class TestNwOffSToDUpgrade(cloudstackTestCase):
"Running",
"VM state should be running after deployment"
)
self.debug("All Vms are in running state")
self.debug("All Vms are in running state")
try:
self.debug(
"Associating public Ip to the network: %s" %
@ -2099,7 +2098,7 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
def test_shared_to_dedicated_upgrade(self):
"""Test upgrade from shared LB isolation to dedicated LB isolation"""
tags = ["advancedns"]
# Validate the following
@ -2258,8 +2257,8 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
"VM state should be running after deployment"
)
self.debug("Stopping all VMs in account: %s" % self.account_3.account.name)
virtual_machine_3.stop(self.apiclient)
self.debug("Stopping all VMs in account: %s" % self.account_3.account.name)
virtual_machine_3.stop(self.apiclient)
list_vm_response = VirtualMachine.list(
self.apiclient,
@ -2283,7 +2282,7 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
"Stopped",
"VM state should be stopped"
)
self.debug("All user VMs stopped")
self.debug("All user VMs stopped")
self.debug("Upgrading the network: %s" % self.network_3.id)
self.network_3.update(
self.apiclient,
@ -2311,10 +2310,10 @@ class TestNwOffDToSUpgrade(cloudstackTestCase):
self.network_offering_shared.id,
"Network offering ID should match with new offering ID"
)
self.debug("Starting instances in account: %s" % self.account_3.account.name)
virtual_machine_3.start(self.apiclient)
self.debug("Starting instances in account: %s" % self.account_3.account.name)
virtual_machine_3.start(self.apiclient)
list_vm_response = VirtualMachine.list(
list_vm_response = VirtualMachine.list(
self.apiclient,
id=virtual_machine_3.id
)

View File

@ -44,8 +44,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"network_offering": {
"name": 'Network offering-VR services',
@ -54,16 +54,16 @@ class Services:
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
"traffictype": 'GUEST',
"availability": 'Optional',
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
"PortForwarding": 'VirtualRouter',
"Vpn": 'VirtualRouter',
"Firewall": 'VirtualRouter',
"Lb": 'VirtualRouter',
"UserData": 'VirtualRouter',
"StaticNat": 'VirtualRouter',
"Vpn": 'VirtualRouter',
"Firewall": 'VirtualRouter',
"Lb": 'VirtualRouter',
"UserData": 'VirtualRouter',
"StaticNat": 'VirtualRouter',
},
},
"network_offering_netscaler": {
@ -73,7 +73,7 @@ class Services:
"supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
"traffictype": 'GUEST',
"availability": 'Optional',
"serviceProviderList" : {
"serviceProviderList": {
"Dhcp": 'VirtualRouter',
"Dns": 'VirtualRouter',
"SourceNat": 'VirtualRouter',
@ -115,7 +115,7 @@ class Services:
"publicport": 66,
"protocol": "TCP"
},
"fw_rule":{
"fw_rule": {
"startport": 1,
"endport": 6000,
"cidr": '55.55.0.0/11',
@ -137,7 +137,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -209,7 +209,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
def test_01_network_off_without_conserve_mode(self):
"""Test Network offering with Conserve mode off and VR - All services
"""
tags = ["advanced"]
# Validate the following
@ -242,7 +242,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
self.debug("Created n/w offering with ID: %s" %
self.network_offering.id)
# Enable Network offering
# Enable Network offering
self.network_offering.update(self.apiclient, state='Enabled')
# Creating network using the network offering created
@ -254,7 +254,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
accountid=self.account.account.name,
domainid=self.account.account.domainid,
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
zoneid=self.zone.id
)
self.debug("Created network with ID: %s" % self.network.id)
@ -331,7 +331,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
ip_with_nat_rule.ipaddress.ipaddress)
NATRule.create(
self.apiclient,
virtual_machine,
virtual_machine,
self.services["natrule"],
ipaddressid=ip_with_nat_rule.ipaddress.id
)
@ -454,7 +454,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
def test_02_network_off_with_conserve_mode(self):
"""Test Network offering with Conserve mode ON and VR - All services
"""
tags = ["advanced"]
# Validate the following
@ -485,7 +485,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
self.debug("Created n/w offering with ID: %s" %
self.network_offering.id)
# Enable Network offering
# Enable Network offering
self.network_offering.update(self.apiclient, state='Enabled')
# Creating network using the network offering created
@ -497,7 +497,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
accountid=self.account.account.name,
domainid=self.account.account.domainid,
networkofferingid=self.network_offering.id,
zoneid=self.zone.id
zoneid=self.zone.id
)
self.debug("Created network with ID: %s" % self.network.id)
@ -702,7 +702,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
vpns = Vpn.list(
self.apiclient,
publicipid=src_nat.id,
listall=True,
listall=True,
)
self.assertEqual(
@ -787,7 +787,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
def test_01_network_off_without_conserve_mode(self):
"""Test Nw off with Conserve mode off, VR-All services, LB-netscaler
"""
tags = ["advancedns"]
# Validate the following
@ -799,14 +799,13 @@ class TestNOWithNetscaler(cloudstackTestCase):
# 5. On an ipaddress that has Lb rules , we should NOT allow firewall
# rules to be programmed.
# 6. On an ipaddress that has Lb rules , we should NOT allow PF rules
# to be programmed.
# to be programmed.
# 7. We should be allowed to program multiple PF rules on the same Ip
# address on different public ports.
# 8. We should be allowed to program multiple LB rules on the same Ip
# address for different public port ranges.
# address for different public port ranges.
# 9. On source NAT ipaddress, we should NOT be allowed to Enable VPN.
# Create a network offering with all virtual router services enabled
self.debug(
"Creating n/w offering with all services in VR & conserve mode:ON"
@ -894,7 +893,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
)
self.debug("Creating firewall rule on source NAT: %s" %
src_nat.ipaddress)
#Create Firewall rule on source NAT
#Create Firewall rule on source NAT
fw_rule = FireWallRule.create(
self.apiclient,
ipaddressid=src_nat.id,
@ -1057,7 +1056,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
def test_02_network_off_with_conserve_mode_netscaler(self):
"""Test NW off with Conserve mode ON, LB-Netscaler and VR-All services
"""
tags = ["advancedns"]
# Validate the following
@ -1070,14 +1069,13 @@ class TestNOWithNetscaler(cloudstackTestCase):
# 5. On an ipaddress that has Lb rules , we should NOT allow firewall
# rules to be programmed.
# 6. On an ipaddress that has Lb rules , we should NOT allow PF rules
# to be programmed.
# to be programmed.
# 7. We should be allowed to program multiple PF rules on the same Ip
# address on different public ports.
# 8. We should be allowed to program multiple LB rules on the same Ip
# address for different public port ranges.
# address for different public port ranges.
# 9. On source NAT ipaddress, we should be allowed to Enable VPN.
# Create a network offering with all virtual router services enabled
self.debug(
"Creating n/w offering with all services in VR & conserve mode:ON"
@ -1433,7 +1431,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
def test_01_nwupgrade_netscaler_conserve_on(self):
"""Test Nw upgrade to netscaler lb service and conserve mode ON
"""
tags = ["advancedns"]
# Validate the following
@ -1632,7 +1630,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
def test_02_nwupgrade_netscaler_conserve_off(self):
"""Test Nw upgrade to netscaler lb service and conserve mode OFF
"""
tags = ["advancedns"]
# Validate the following

View File

@ -65,8 +65,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"virtual_machine": {
"displayname": "Test VM",
@ -86,7 +86,7 @@ class Services:
"ostypeid": 'f9b709f2-e0fc-4c0f-80f1-b0494168f58d',
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
@ -104,7 +104,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -166,11 +166,10 @@ class TestUserProjectCreation(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
def test_01_admin_project_creation(self):
"""Test create project as a domain admin and domain user
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
# 1. Check if 'allow.user.create.projects' configuration is true
# 2. Create a Project as domain admin
@ -203,9 +202,9 @@ class TestUserProjectCreation(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -239,9 +238,9 @@ class TestUserProjectCreation(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain user with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -259,6 +258,7 @@ class TestUserProjectCreation(cloudstackTestCase):
"Check list project response returns a valid project"
)
return
@unittest.skip("Known bug-able to create project as a domain user")
def test_02_user_project_creation(self):
"""Test create project as a domain admin and domain user
@ -296,9 +296,9 @@ class TestUserProjectCreation(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -341,24 +341,24 @@ class TestProjectInviteRequired(cloudstackTestCase):
cls.services = Services().services
# Get Zone
cls.zone = get_zone(cls.api_client, cls.services)
# Create domains, account etc.
cls.domain = get_domain(cls.api_client, cls.services)
cls.account = Account.create(
cls.api_client,
cls.services["account"],
admin=True,
domainid=cls.domain.id
)
cls.user = Account.create(
cls.api_client,
cls.services["user"],
admin=True,
domainid=cls.domain.id
)
cls._cleanup = [cls.account, cls.user]
return
@ -385,14 +385,13 @@ class TestProjectInviteRequired(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
def test_03_add_user_to_project(self):
"""Add user to project when 'project.invite.required' is false"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Create a Project
# 2. Add users to the project. Verify user is added to project
# as regular user
# as regular user
# Verify 'project.invite.required' is set to false
configs = Configurations.list(
@ -422,9 +421,9 @@ class TestProjectInviteRequired(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -453,14 +452,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = Project.listAccounts(
self.apiclient,
self.apiclient,
projectid=project.id,
account=self.user.account.name,
)
@ -470,20 +469,20 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.role,
'Regular',
"Newly added user is not added as a regular user"
)
return
def test_04_add_user_to_project(self):
@ -493,7 +492,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
# 1. Create a Project
# 2. Add users to the project. verify user is shown in pending state
# Verify 'project.invite.required' is set to false
# Verify 'project.invite.required' is set to false
configs = Configurations.list(
self.apiclient,
name='project.invite.required'
@ -519,12 +518,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -553,11 +552,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -570,14 +569,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
@ -590,11 +589,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Set configuration to 5 mins
# 2. Create a Project
# 2. Create a Project
# 3. Add users to the project
# 4. As a user accept invitation within 5 mins. Verify invitation is
# accepted and user become regular user of project
# Verify 'project.invite.required' is set to false
configs = Configurations.list(
self.apiclient,
@ -610,7 +609,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
int(config.value),
self.services["configs"]["project.invite.timeout"],
"'project.invite.timeout' should be %s" %
self.services["configs"]["project.invite.timeout"]
self.services["configs"]["project.invite.timeout"]
)
# Create project as a domain admin
@ -622,12 +621,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -656,11 +655,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -673,24 +672,24 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
"Newly added user is not added as a regular user"
)
# Accept the invite
ProjectInvitation.update(
self.apiclient,
projectid=project.id,
projectid=project.id,
accept=True,
account=self.user.account.name
)
@ -701,7 +700,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# listProjectAccount to verify the user is added to project or not
accounts_reponse = Project.listAccounts(
self.apiclient,
self.apiclient,
projectid=project.id,
account=self.user.account.name,
)
@ -711,14 +710,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.role,
'Regular',
@ -731,11 +730,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Set configuration to 5 mins
# 2. Create a Project
# 2. Create a Project
# 3. Add users to the project
# 4. As a user accept invitation after 5 mins. Verify invitation is
# not accepted and is shown as expired
# Verify 'project.invite.required' is set to false
configs = Configurations.list(
self.apiclient,
@ -751,7 +750,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
int(config.value),
self.services["configs"]["project.invite.timeout"],
"'project.invite.timeout' should be %s" %
self.services["configs"]["project.invite.timeout"]
self.services["configs"]["project.invite.timeout"]
)
# Create project as a domain admin
@ -763,12 +762,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -797,11 +796,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -814,20 +813,20 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
"Newly added user is not added as a regular user"
)
# sleep for 'project.invite.timeout' * 2 interval to wait for invite
# to expire
time.sleep(int(config.value) * 2)
@ -836,7 +835,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
# Accept the invite
ProjectInvitation.update(
self.apiclient,
projectid=project.id,
projectid=project.id,
accept=True,
account=self.user.account.name
)
@ -857,14 +856,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Expired',
@ -877,7 +876,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Set configuration to 5 mins
# 2. Create a Project
# 2. Create a Project
# 3. Add users to the project
# 4. As a user accept invitation after 5 mins.
# 5. Resend the invitation
@ -898,7 +897,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
int(config.value),
self.services["configs"]["project.invite.timeout"],
"'project.invite.timeout' should be %s" %
self.services["configs"]["project.invite.timeout"]
self.services["configs"]["project.invite.timeout"]
)
# Create project as a domain admin
@ -910,12 +909,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -944,11 +943,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -961,20 +960,20 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
"Newly added user is not added as a regular user"
)
# sleep for 'project.invite.timeout' * 2 interval to wait for invite
# to expire
time.sleep(int(config.value) * 2)
@ -985,11 +984,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -1002,14 +1001,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
@ -1022,7 +1021,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Set configuration to 5 mins
# 2. Create a Project
# 2. Create a Project
# 3. Add users to the project
# 4. As a user decline invitation within 5 mins.
# 5. Verify invitation is rejected and user doesn't become regular
@ -1043,7 +1042,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
int(config.value),
self.services["configs"]["project.invite.timeout"],
"'project.invite.timeout' should be %s" %
self.services["configs"]["project.invite.timeout"]
self.services["configs"]["project.invite.timeout"]
)
# Create project as a domain admin
@ -1055,12 +1054,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -1089,11 +1088,11 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
self.user.account.email
)
# listProjectAccount to verify the user is added to project or not
accounts_reponse = ProjectInvitation.list(
self.apiclient,
@ -1106,14 +1105,14 @@ class TestProjectInviteRequired(cloudstackTestCase):
True,
"Check for a valid list accounts response"
)
self.assertNotEqual(
len(list_projects_reponse),
0,
"Check list project response returns a valid project"
)
account = accounts_reponse[0]
self.assertEqual(
account.state,
'Pending',
@ -1122,7 +1121,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
# Accept the invite
ProjectInvitation.update(
self.apiclient,
projectid=project.id,
projectid=project.id,
accept=False,
account=self.user.account.name
)
@ -1133,7 +1132,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
))
# listProjectAccount to verify the user is added to project or not
accounts_reponse = Project.listAccounts(
self.apiclient,
self.apiclient,
projectid=project.id,
account=self.user.account.name,
)
@ -1143,19 +1142,20 @@ class TestProjectInviteRequired(cloudstackTestCase):
"Check for a valid list accounts response"
)
return
@unittest.skip("Requires SMPT configs")
def test_09_invite_to_project_by_email(self):
"""Test invite user to project by email"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following:
# 1. Set configuration to 5 mins
# 2. Create a Project
# 2. Create a Project
# 3. Add users to the project
# 4. As a user decline invitation within 5 mins.
# 5. Verify invitation is rejected and user doesn't become regular
# user.
# Verify 'project.invite.required' is set to false
# Verify 'project.invite.required' is set to false
configs = Configurations.list(
self.apiclient,
name='project.invite.timeout'
@ -1170,7 +1170,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
int(config.value),
self.services["configs"]["project.invite.timeout"],
"'project.invite.timeout' should be %s" %
self.services["configs"]["project.invite.timeout"]
self.services["configs"]["project.invite.timeout"]
)
# Create project as a domain admin
@ -1182,12 +1182,12 @@ class TestProjectInviteRequired(cloudstackTestCase):
)
# Cleanup created project at end of test
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Resource limits
"""
@ -22,6 +22,7 @@ from integration.lib.base import *
from integration.lib.common import *
import datetime
class Services:
"""Test Resource Limits Services
"""
@ -57,8 +58,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Tiny Disk Offering",
@ -97,13 +98,13 @@ class TestProjectLimits(cloudstackTestCase):
@classmethod
def setUpClass(cls):
cls.api_client = super(
TestProjectLimits,
TestProjectLimits,
cls
).getClsTestClient().getApiClient()
cls.services = Services().services
# Get Zone
cls.zone = get_zone(cls.api_client, cls.services)
# Create domains, account etc.
cls.domain = Domain.create(
cls.api_client,
@ -122,10 +123,10 @@ class TestProjectLimits(cloudstackTestCase):
domainid=cls.domain.id
)
cls._cleanup = [
cls.admin,
cls.user,
cls.domain
]
cls.admin,
cls.user,
cls.domain
]
return
@classmethod
@ -169,7 +170,7 @@ class TestProjectLimits(cloudstackTestCase):
# 4. Create Resource more than its set limit for a project. Verify
# resource allocation should fail giving proper message
# Create project as a domain admin
# Create project as a domain admin
project = Project.create(
self.apiclient,
self.services["project"],
@ -180,9 +181,9 @@ class TestProjectLimits(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -220,7 +221,7 @@ class TestProjectLimits(cloudstackTestCase):
)
# Reduce resource limits for project
# Resource: 0 - Instance. Number of instances a user can create.
# Resource: 0 - Instance. Number of instances a user can create.
# Resource: 1 - IP. Number of public IP addresses a user can own.
# Resource: 2 - Volume. Number of disk volumes a user can create.
# Resource: 3 - Snapshot. Number of snapshots a user can create.
@ -258,7 +259,7 @@ class TestProjectLimits(cloudstackTestCase):
1,
"Resource limit should be updated to 1"
)
# Get the resource limits for domain
resource_limits = list_resource_limits(
self.apiclient,
@ -274,7 +275,7 @@ class TestProjectLimits(cloudstackTestCase):
0,
"List resource API response should not be empty"
)
for resource in resource_limits:
# Update domain resource limits to 2
update_resource_limit(
@ -297,6 +298,7 @@ class TestProjectLimits(cloudstackTestCase):
projectid=project.id
)
return
@unittest.skip("No provision for updating resource limits from account through API")
def test_02_project_limits_normal_user(self):
""" Test project limits
@ -320,9 +322,9 @@ class TestProjectLimits(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -360,7 +362,7 @@ class TestProjectLimits(cloudstackTestCase):
)
# Reduce resource limits for project
# Resource: 0 - Instance. Number of instances a user can create.
# Resource: 0 - Instance. Number of instances a user can create.
# Resource: 1 - IP. Number of public IP addresses a user can own.
# Resource: 2 - Volume. Number of disk volumes a user can create.
# Resource: 3 - Snapshot. Number of snapshots a user can create.
@ -398,7 +400,7 @@ class TestProjectLimits(cloudstackTestCase):
1,
"Resource limit should be updated to 1"
)
self.debug("Adding %s user to project: %s" % (
self.user.account.name,
project.name
@ -406,10 +408,10 @@ class TestProjectLimits(cloudstackTestCase):
# Add user to the project
project.addAccount(
self.apiclient,
self.user.account.name,
self.apiclient,
self.user.account.name,
)
# Get the resource limits for domain
resource_limits = list_resource_limits(
self.apiclient,
@ -425,7 +427,7 @@ class TestProjectLimits(cloudstackTestCase):
0,
"List resource API response should not be empty"
)
for resource in resource_limits:
#with self.assertRaises(Exception):
self.debug(
@ -532,12 +534,12 @@ class TestResourceLimitsProject(cloudstackTestCase):
# should be raised
self.debug(
"Updating instance resource limits for project: %s" %
"Updating instance resource limits for project: %s" %
self.project.id)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
0, # Instance
0, # Instance
max=2,
projectid=self.project.id
)
@ -586,7 +588,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
def test_04_publicip_per_project(self):
"""Test Public IP limit per project
"""
tags = ["advanced","eip","advancedns"]
tags = ["advanced", "eip", "advancedns"]
# Validate the following
# 1. set max no of IPs per project to 2.
# 2. Create an account in this domain
@ -596,12 +598,12 @@ class TestResourceLimitsProject(cloudstackTestCase):
# appropriate error and an alert should be generated.
self.debug(
"Updating public IP resource limits for project: %s" %
"Updating public IP resource limits for project: %s" %
self.project.id)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
1, # Public Ip
1, # Public Ip
max=2,
projectid=self.project.id
)
@ -622,7 +624,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
"Check VM state is Running or not"
)
networks = Network.list(
self.apiclient,
self.apiclient,
projectid=self.project.id,
listall=True
)
@ -637,7 +639,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
"Check list networks response returns a valid network"
)
network = networks[0]
self.debug("Associating public IP for project: %s" %
self.debug("Associating public IP for project: %s" %
self.project.id)
public_ip_1 = PublicIPAddress.create(
self.apiclient,
@ -676,16 +678,16 @@ class TestResourceLimitsProject(cloudstackTestCase):
# 1. set max no of snapshots per project to 1.
# 2. Create one snapshot in the project. Snapshot should be
# successfully created
# 5. Try to create another snapshot in this project. It should give
# 5. Try to create another snapshot in this project. It should give
# user an appropriate error and an alert should be generated.
self.debug(
"Updating snapshot resource limits for project: %s" %
"Updating snapshot resource limits for project: %s" %
self.project.id)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
3, # Snapshot
3, # Snapshot
max=1,
projectid=self.project.id
)
@ -757,12 +759,12 @@ class TestResourceLimitsProject(cloudstackTestCase):
# should be generated.
self.debug(
"Updating volume resource limits for project: %s" %
"Updating volume resource limits for project: %s" %
self.project.id)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
2, # Volume
2, # Volume
max=2,
projectid=self.project.id
)
@ -793,12 +795,12 @@ class TestResourceLimitsProject(cloudstackTestCase):
projectid=self.project.id
)
return
def test_07_templates_per_project(self):
"""Test Templates limit per project
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
# Validate the following
# 1. set max no of templates per project to 1.
# 2. Create a template in this project. Both template should be in
# ready state
@ -808,17 +810,17 @@ class TestResourceLimitsProject(cloudstackTestCase):
# Reset the volume limits
update_resource_limit(
self.apiclient,
2, # Volume
2, # Volume
max=5,
projectid=self.project.id
)
self.debug(
"Updating template resource limits for domain: %s" %
"Updating template resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
4, # Template
4, # Template
max=1,
projectid=self.project.id
)

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Resource creation
"""
@ -23,6 +23,7 @@ from integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient
import datetime
class Services:
"""Test Resource creation Services
"""
@ -58,8 +59,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Tiny Disk Offering",
@ -94,7 +95,7 @@ class Services:
"name": "Domainwide Network",
"displaytext": "Domainwide Network",
"gateway": '192.168.100.1',
"netmask": '255.255.255.0',
"netmask": '255.255.255.0',
"startip": '192.168.100.200',
"endip": '192.168.100.201',
"vlan": 4001,
@ -131,7 +132,7 @@ class Services:
"timeout": 10,
"mode": 'advanced',
}
class TestOfferings(cloudstackTestCase):
@ -173,7 +174,7 @@ class TestOfferings(cloudstackTestCase):
cls.services["disk_offering"]
)
cls._cleanup = [
cls.account,
cls.account,
cls.service_offering,
cls.disk_offering
]
@ -222,9 +223,9 @@ class TestOfferings(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
self.debug(
"Deploying VM instance for project: %s & service offering: %s" % (
"Deploying VM instance for project: %s & service offering: %s" % (
project.id,
self.service_offering.id
))
@ -264,9 +265,9 @@ class TestOfferings(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
list_projects_reponse = Project.list(
self.apiclient,
self.apiclient,
id=project.id,
listall=True
)
@ -348,7 +349,7 @@ class TestNetwork(cloudstackTestCase):
domainid=cls.domain.id
)
cls._cleanup = [
cls.account,
cls.account,
cls.service_offering,
]
return
@ -379,7 +380,7 @@ class TestNetwork(cloudstackTestCase):
def test_03_network_create(self):
""" Test create network in project
"""
tags = ["advanced", "advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Create a project.
# 2. Add virtual/direct network resource to the project. User shared
@ -400,7 +401,7 @@ class TestNetwork(cloudstackTestCase):
self.cleanup.append(project)
self.debug("Created project with domain admin with ID: %s" %
project.id)
network_offerings = list_network_offerings(
self.apiclient,
projectid=project.id,
@ -409,36 +410,36 @@ class TestNetwork(cloudstackTestCase):
state='Enabled'
)
self.assertEqual(
isinstance(network_offerings, list),
True,
isinstance(network_offerings, list),
True,
"Check for the valid network offerings"
)
network_offering = network_offerings[0]
self.debug("creating a network with network offering ID: %s" %
self.debug("creating a network with network offering ID: %s" %
network_offering.id)
self.services["network"]["zoneid"] = self.zone.id
network = Network.create(
self.apiclient,
self.services["network"],
networkofferingid=network_offering.id,
self.apiclient,
self.services["network"],
networkofferingid=network_offering.id,
projectid=project.id
)
self.debug("Created network with ID: %s" % network.id)
networks= Network.list(
self.apiclient,
projectid=project.id,
networks = Network.list(
self.apiclient,
projectid=project.id,
listall=True
)
self.assertEqual(
isinstance(networks, list),
True,
isinstance(networks, list),
True,
"Check for the valid network list response"
)
network_response = networks[0]
self.debug("Deploying VM with network: %s" % network.id)
virtual_machine = VirtualMachine.create(
self.apiclient,
self.services["server"],
@ -463,24 +464,24 @@ class TestNetwork(cloudstackTestCase):
displaytext='Offering for Shared networks'
)
self.assertEqual(
isinstance(network_offerings, list),
True,
isinstance(network_offerings, list),
True,
"Check for the valid network offerings"
)
network_offering = network_offerings[0]
self.debug("creating a shared network in domain: %s" %
self.debug("creating a shared network in domain: %s" %
self.domain.id)
domain_network = Network.create(
self.apiclient,
self.apiclient,
self.services["domain_network"],
domainid=self.domain.id,
networkofferingid=network_offering.id,
zoneid=self.zone.id
zoneid=self.zone.id
)
self._cleanup.append(domain_network)
self.debug("Created network with ID: %s" % domain_network.id)
virtual_machine = VirtualMachine.create(
self.apiclient,
self.services["server"],
@ -584,13 +585,13 @@ class TestTemplates(cloudstackTestCase):
"""Test Templates creation in projects
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
# Validate the following
# 1. Create a project
# 2. Verify Public templates can be used without any restriction
# 3. Verify that template created in project can be used in project
# without any restrictions
self.debug("Deploying VM for with public template: %s" %
self.debug("Deploying VM for with public template: %s" %
self.template.id)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -643,14 +644,14 @@ class TestTemplates(cloudstackTestCase):
"""Test use of private template in a project
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
# Validate the following
# 1. Create a project
# 2. Verify that in order to use somebodys Private template for vm
# creation in the project, permission to use the template has to
# be granted to the Project (use API “updateTemplatePermissions”
# with project id to achieve that).
self.debug("Deploying VM for with public template: %s" %
self.debug("Deploying VM for with public template: %s" %
self.template.id)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -698,7 +699,7 @@ class TestTemplates(cloudstackTestCase):
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" % (
@ -711,7 +712,7 @@ class TestTemplates(cloudstackTestCase):
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(
self.apiclient,
@ -861,7 +862,7 @@ class TestSnapshots(cloudstackTestCase):
True,
"Check Snapshot state is Running or not"
)
snapshots = Snapshot.list(
self.apiclient,
account=self.account.account.name,
@ -926,7 +927,7 @@ class TestPublicIpAddress(cloudstackTestCase):
serviceofferingid=cls.service_offering.id,
projectid=cls.project.id
)
cls._cleanup = [
cls.project,
cls.service_offering,
@ -961,7 +962,7 @@ class TestPublicIpAddress(cloudstackTestCase):
def test_07_associate_public_ip(self):
"""Test associate public IP within the project
"""
tags = ["advanced", "eip", "advancedns"]
tags = ["advanced", "eip", "advancedns"]
# Validate the following
# 1. Create a project
# 2. Add some public Ips to the project
@ -969,7 +970,7 @@ class TestPublicIpAddress(cloudstackTestCase):
# inside project
networks = Network.list(
self.apiclient,
self.apiclient,
projectid=self.project.id,
listall=True
)
@ -993,10 +994,10 @@ class TestPublicIpAddress(cloudstackTestCase):
projectid=self.project.id
)
self.cleanup.append(public_ip)
#Create NAT rule
self.debug(
"Creating a NAT rule within project, VM ID: %s" %
"Creating a NAT rule within project, VM ID: %s" %
self.virtual_machine.id)
nat_rule = NATRule.create(
self.apiclient,
@ -1025,9 +1026,9 @@ class TestPublicIpAddress(cloudstackTestCase):
nat_rule.id,
"Check Correct Port forwarding Rule is returned"
)
#Create Load Balancer rule and assign VMs to rule
self.debug("Created LB rule for public IP: %s" %
self.debug("Created LB rule for public IP: %s" %
public_ip.ipaddress.ipaddress)
lb_rule = LoadBalancerRule.create(
self.apiclient,
@ -1062,7 +1063,7 @@ class TestPublicIpAddress(cloudstackTestCase):
lb_rule.id,
"Check List Load Balancer Rules returns valid Rule"
)
#Create Firewall rule with configurations from settings file
fw_rule = FireWallRule.create(
self.apiclient,
@ -1074,7 +1075,7 @@ class TestPublicIpAddress(cloudstackTestCase):
projectid=self.project.id
)
self.debug("Created firewall rule: %s" % fw_rule.id)
# After Router start, FW rule should be in Active state
fw_rules = FireWallRule.list(
self.apiclient,
@ -1085,7 +1086,7 @@ class TestPublicIpAddress(cloudstackTestCase):
True,
"Check for list FW rules response return valid data"
)
self.assertEqual(
fw_rules[0].state,
'Active',
@ -1102,7 +1103,7 @@ class TestPublicIpAddress(cloudstackTestCase):
str(self.services["fw_rule"]["endport"]),
"Check end port of firewall rule"
)
self.debug("Deploying VM for account: %s" % self.account.account.name)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -1113,7 +1114,7 @@ class TestPublicIpAddress(cloudstackTestCase):
serviceofferingid=self.service_offering.id,
)
self.cleanup.append(virtual_machine_1)
self.debug("VM state after deploy: %s" % virtual_machine_1.state)
# Verify VM state
self.assertEqual(
@ -1121,7 +1122,7 @@ class TestPublicIpAddress(cloudstackTestCase):
'Running',
"Check VM state is Running or not"
)
self.debug("Creating NAT rule for VM (ID: %s) outside project" %
virtual_machine_1.id)
with self.assertRaises(Exception):
@ -1131,7 +1132,7 @@ class TestPublicIpAddress(cloudstackTestCase):
self.services["natrule"],
public_ip.ipaddress.id,
)
self.debug("Creating LB rule for public IP: %s outside project" %
public_ip.ipaddress.ipaddress)
with self.assertRaises(Exception):
@ -1157,7 +1158,7 @@ class TestPublicIpAddress(cloudstackTestCase):
class TestSecurityGroup(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
@ -1186,7 +1187,7 @@ class TestSecurityGroup(cloudstackTestCase):
# Get Zone, Domain and templates
cls.domain = get_domain(cls.api_client, cls.services)
cls.zone = get_zone(cls.api_client, cls.services)
template = get_template(
cls.api_client,
cls.zone.id,
@ -1195,7 +1196,7 @@ class TestSecurityGroup(cloudstackTestCase):
cls.services["domainid"] = cls.domain.id
cls.services["server"]["zoneid"] = cls.zone.id
cls.services["server"]["template"] = template.id
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
@ -1245,8 +1246,8 @@ class TestSecurityGroup(cloudstackTestCase):
# to that project.
security_group = SecurityGroup.create(
self.apiclient,
self.services["security_group"],
self.apiclient,
self.services["security_group"],
projectid=self.project.id
)
self.debug("Created security group with ID: %s" % security_group.id)
@ -1260,16 +1261,16 @@ class TestSecurityGroup(cloudstackTestCase):
True,
"Check for list security groups response"
)
self.assertNotEqual(
len(sercurity_groups),
0,
len(sercurity_groups),
0,
"Check List Security groups response"
)
# Authorize Security group to SSH to VM
ingress_rule = security_group.authorize(
self.apiclient,
self.services["security_group"],
self.services["security_group"],
projectid=self.project.id
)
self.assertEqual(
@ -1277,9 +1278,9 @@ class TestSecurityGroup(cloudstackTestCase):
True,
"Check ingress rule created properly"
)
self.debug(
"Authorizing ingress rule for sec group ID: %s for ssh access"
"Authorizing ingress rule for sec group ID: %s for ssh access"
% security_group.id)
self.virtual_machine = VirtualMachine.create(
self.apiclient,
@ -1293,8 +1294,8 @@ class TestSecurityGroup(cloudstackTestCase):
self.project.id
))
self.assertEqual(
self.virtual_machine.state,
'Running',
self.virtual_machine.state,
'Running',
"VM state should be running after deployment"
)
# Deploy another VM with same security group outside the project

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Snapshots
"""
@ -23,6 +23,7 @@ from integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient
import datetime
class Services:
"""Test Snapshots Services
"""
@ -46,8 +47,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Small",
@ -104,7 +105,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -138,14 +139,14 @@ class TestVmUsage(cloudstackTestCase):
)
cls.services["account"] = cls.account.account.name
cls.project = Project.create(
cls.api_client,
cls.services["project"],
account=cls.account.account.name,
domainid=cls.account.account.domainid
)
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
@ -203,17 +204,17 @@ class TestVmUsage(cloudstackTestCase):
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
# Stop the VM
self.virtual_machine.stop(self.apiclient)
time.sleep(self.services["sleep"])
# Destroy the VM
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
self.virtual_machine.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -223,7 +224,7 @@ class TestVmUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -234,7 +235,7 @@ class TestVmUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -244,7 +245,7 @@ class TestVmUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -332,14 +333,14 @@ class TestPublicIPUsage(cloudstackTestCase):
)
cls.services["account"] = cls.account.account.name
cls.project = Project.create(
cls.api_client,
cls.services["project"],
account=cls.account.account.name,
domainid=cls.account.account.domainid
)
cls.service_offering = ServiceOffering.create(
cls.api_client,
cls.services["service_offering"]
@ -352,7 +353,7 @@ class TestPublicIPUsage(cloudstackTestCase):
projectid=cls.project.id
)
networks = Network.list(
cls.api_client,
cls.api_client,
projectid=cls.project.id,
listall=True
)
@ -399,7 +400,7 @@ class TestPublicIPUsage(cloudstackTestCase):
return
def test_01_public_ip_usage(self):
"""Test Assign new IP and verify usage calculation
"""Test Assign new IP and verify usage calculation
"""
tags = ["advanced", "eip", "advancedns"]
# Validate the following
@ -409,17 +410,17 @@ class TestPublicIPUsage(cloudstackTestCase):
# has IP.Release event for released IP for this account
# 3. Delete the newly created account
self.debug("Deleting public IP: %s" %
self.debug("Deleting public IP: %s" %
self.public_ip.ipaddress.ipaddress)
# Release one of the IP
self.public_ip.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -439,12 +440,12 @@ class TestPublicIPUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
@ -579,8 +580,8 @@ class TestVolumeUsage(cloudstackTestCase):
listall=True
)
self.assertEqual(
isinstance(volume_response, list),
True,
isinstance(volume_response, list),
True,
"Check for valid list volumes response"
)
data_volume = volume_response[0]
@ -598,11 +599,11 @@ class TestVolumeUsage(cloudstackTestCase):
cmd.id = data_volume.id
self.apiclient.deleteVolume(cmd)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -612,7 +613,7 @@ class TestVolumeUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -623,12 +624,12 @@ class TestVolumeUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertNotEqual(
len(qresultset),
0,
@ -639,7 +640,7 @@ class TestVolumeUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check VOLUME.CREATE, VOLUME.DESTROY events in cloud.usage_event table
@ -714,7 +715,7 @@ class TestTemplateUsage(cloudstackTestCase):
type='ROOT',
listall=True
)
if isinstance(list_volume, list):
if isinstance(list_volume, list):
cls.volume = list_volume[0]
else:
raise Exception("List Volumes failed!")
@ -772,11 +773,11 @@ class TestTemplateUsage(cloudstackTestCase):
self.template.delete(self.apiclient)
self.debug("Deleted template with ID: %s" % self.template.id)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -786,7 +787,7 @@ class TestTemplateUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -797,7 +798,7 @@ class TestTemplateUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -813,10 +814,10 @@ class TestTemplateUsage(cloudstackTestCase):
0,
"Check DB Query result set"
)
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for TEMPLATE.CREATE, TEMPLATE.DELETE in cloud.usage_event table
self.assertEqual(
qresult.count('TEMPLATE.CREATE'),
@ -843,7 +844,7 @@ class TestISOUsage(cloudstackTestCase):
cls.zone = get_zone(cls.api_client, cls.services)
cls.services["server"]["zoneid"] = cls.zone.id
cls.services["iso"]["zoneid"] = cls.zone.id
# Create Account, ISO image etc
# Create Account, ISO image etc
cls.account = Account.create(
cls.api_client,
cls.services["account"],
@ -914,12 +915,12 @@ class TestISOUsage(cloudstackTestCase):
# Delete the ISO
self.debug("Deleting ISO with ID: %s" % self.iso.id)
self.iso.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -929,7 +930,7 @@ class TestISOUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -940,18 +941,18 @@ class TestISOUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -981,7 +982,7 @@ class TestLBRuleUsage(cloudstackTestCase):
@classmethod
def setUpClass(cls):
cls.api_client = super(
TestLBRuleUsage,
TestLBRuleUsage,
cls
).getClsTestClient().getApiClient()
cls.services = Services().services
@ -1025,7 +1026,7 @@ class TestLBRuleUsage(cloudstackTestCase):
projectid=cls.project.id
)
networks = Network.list(
cls.api_client,
cls.api_client,
projectid=cls.project.id,
listall=True
)
@ -1074,7 +1075,7 @@ class TestLBRuleUsage(cloudstackTestCase):
def test_01_lb_usage(self):
"""Test Create/Delete a LB rule and verify correct usage is recorded
"""
tags = ["advanced", "eip", "advancedns"]
tags = ["advanced", "eip", "advancedns"]
# Validate the following
# 1. Acquire a IP for this account. lb.rule.create event is registered
# for this account in cloud.usage_event table
@ -1084,7 +1085,7 @@ class TestLBRuleUsage(cloudstackTestCase):
# 4. Delete this account.
self.debug(
"Creating load balancer rule for public IP: %s" %
"Creating load balancer rule for public IP: %s" %
self.public_ip_1.ipaddress.id)
#Create Load Balancer rule and assign VMs to rule
lb_rule = LoadBalancerRule.create(
@ -1097,11 +1098,11 @@ class TestLBRuleUsage(cloudstackTestCase):
self.debug("Deleting LB rule with ID: %s" % lb_rule.id)
lb_rule.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -1111,7 +1112,7 @@ class TestLBRuleUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1122,7 +1123,7 @@ class TestLBRuleUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1143,7 +1144,7 @@ class TestLBRuleUsage(cloudstackTestCase):
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for LB.CREATE, LB.DELETE in cloud.usage_event table
# Check for LB.CREATE, LB.DELETE in cloud.usage_event table
self.assertEqual(
qresult.count('LB.CREATE'),
1,
@ -1239,7 +1240,7 @@ class TestSnapshotUsage(cloudstackTestCase):
def test_01_snapshot_usage(self):
"""Test Create/Delete a manual snap shot and verify
correct usage is recorded
correct usage is recorded
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
@ -1249,7 +1250,7 @@ class TestSnapshotUsage(cloudstackTestCase):
# generated for the destroyed Snapshot
# 3. Delete the account
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
projectid=self.project.id,
@ -1261,7 +1262,7 @@ class TestSnapshotUsage(cloudstackTestCase):
True,
"Check if list volumes return a valid data"
)
volume = volumes[0]
# Create a snapshot from the ROOTDISK
@ -1272,11 +1273,11 @@ class TestSnapshotUsage(cloudstackTestCase):
self.debug("Deleting snapshot: %s" % snapshot.id)
snapshot.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -1286,7 +1287,7 @@ class TestSnapshotUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1297,12 +1298,12 @@ class TestSnapshotUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
@ -1383,7 +1384,7 @@ class TestNatRuleUsage(cloudstackTestCase):
projectid=cls.project.id
)
networks = Network.list(
cls.api_client,
cls.api_client,
projectid=cls.project.id,
listall=True
)
@ -1432,7 +1433,7 @@ class TestNatRuleUsage(cloudstackTestCase):
def test_01_nat_usage(self):
"""Test Create/Delete a PF rule and verify correct usage is recorded
"""
tags = ["advanced", "advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Acquire a IP for this account
# 2. Create a PF rule on the IP associated with this account.
@ -1442,7 +1443,7 @@ class TestNatRuleUsage(cloudstackTestCase):
# is registered for this account in cloud.usage_event table
# 4. Delete this account.
self.debug("Creating NAT rule with public IP: %s" %
self.debug("Creating NAT rule with public IP: %s" %
self.public_ip_1.ipaddress.id)
#Create NAT rule
nat_rule = NATRule.create(
@ -1456,11 +1457,11 @@ class TestNatRuleUsage(cloudstackTestCase):
self.debug("Deleting NAT rule: %s" % nat_rule.id)
nat_rule.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -1470,7 +1471,7 @@ class TestNatRuleUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1481,7 +1482,7 @@ class TestNatRuleUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1566,7 +1567,7 @@ class TestVpnUsage(cloudstackTestCase):
projectid=cls.project.id
)
networks = Network.list(
cls.api_client,
cls.api_client,
projectid=cls.project.id,
listall=True
)
@ -1615,16 +1616,16 @@ class TestVpnUsage(cloudstackTestCase):
def test_01_vpn_usage(self):
"""Test Create/Delete a VPN and verify correct usage is recorded
"""
tags = ["advanced", "advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Enable VPN for this IP. vpn.add.user event is registered for this
# account in cloud.usage_event table
# 2. Add user to this vpn
# 2. Add user to this vpn
# 3. Delete user for this VPN. vpn.user.delete event is registered for
# this account in cloud.usage_event table
# 4. Delete this account.
self.debug("Created VPN with public IP: %s" %
self.debug("Created VPN with public IP: %s" %
self.public_ip.ipaddress.id)
#Assign VPN to Public IP
vpn = Vpn.create(
@ -1633,7 +1634,7 @@ class TestVpnUsage(cloudstackTestCase):
projectid=self.project.id
)
self.debug("Created VPN user for account: %s" %
self.debug("Created VPN user for account: %s" %
self.account.account.name)
vpnuser = VpnUser.create(
@ -1651,11 +1652,11 @@ class TestVpnUsage(cloudstackTestCase):
self.debug("Deleting VPN: %s" % vpn.publicipid)
vpn.delete(self.apiclient)
# Fetch project account ID from project UUID
# Fetch project account ID from project UUID
self.debug(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id)
qresultset = self.dbclient.execute(
"select project_account_id from projects where uuid = '%s';" \
% self.project.id
@ -1665,7 +1666,7 @@ class TestVpnUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1676,7 +1677,7 @@ class TestVpnUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1695,8 +1696,8 @@ class TestVpnUsage(cloudstackTestCase):
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for VPN user related events
# Check for VPN user related events
self.assertEqual(
qresult.count('VPN.USER.ADD'),
1,

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Resource limits
"""
@ -22,6 +22,7 @@ from integration.lib.base import *
from integration.lib.common import *
import datetime
class Services:
"""Test Resource Limits Services
"""
@ -44,8 +45,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Small",
@ -78,6 +79,7 @@ class Services:
"mode": 'advanced',
}
class TestResourceLimitsAccount(cloudstackTestCase):
@classmethod
@ -150,7 +152,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
def test_01_vm_per_account(self):
"""Test VM limit per account
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set user_vm=1 limit for account 1.
@ -159,18 +161,18 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# 3. Try to start 2 VMs account 2. Verify 2 SM are started properly
self.debug(
"Updating instance resource limit for account: %s" %
"Updating instance resource limit for account: %s" %
self.account_1.account.name)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
0, # Instance
0, # Instance
account=self.account_1.account.name,
domainid=self.account_1.account.domainid,
max=1
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_1.account.name)
virtual_machine = VirtualMachine.create(
@ -201,7 +203,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
serviceofferingid=self.service_offering.id
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_2.account.name)
# Start 2 instances for account_2
virtual_machine_1 = VirtualMachine.create(
@ -221,7 +223,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_2.account.name)
virtual_machine_2 = VirtualMachine.create(
self.apiclient,
@ -243,7 +245,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
def test_02_publicip_per_account(self):
"""Test Public IP limit per account
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set Public_IP= 2 limit for account 1.
@ -253,21 +255,21 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# denied to acquire more than one IP.
# 5. Acquire 2 IP in account 2. Verify account 2 should be able to
# Acquire IP without any warning
self.debug(
"Updating public IP resource limit for account: %s" %
"Updating public IP resource limit for account: %s" %
self.account_1.account.name)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
1, # Public Ip
1, # Public Ip
account=self.account_1.account.name,
domainid=self.account_1.account.domainid,
max=2
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_1.account.name)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -286,7 +288,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_2.account.name)
# Create VM for second account
virtual_machine_2 = VirtualMachine.create(
@ -305,7 +307,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
"Check VM state is Running or not"
)
self.debug(
"Associating public IP for account: %s" %
"Associating public IP for account: %s" %
virtual_machine_1.account)
public_ip_1 = PublicIPAddress.create(
self.apiclient,
@ -340,7 +342,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
)
self.debug(
"Associating public IP for account: %s" %
"Associating public IP for account: %s" %
virtual_machine_2.account)
# Assign Public IP for account 2
public_ip_3 = PublicIPAddress.create(
@ -362,7 +364,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
"Check Public IP state is allocated or not"
)
self.debug(
"Associating public IP for account: %s" %
"Associating public IP for account: %s" %
virtual_machine_2.account)
public_ip_4 = PublicIPAddress.create(
self.apiclient,
@ -386,7 +388,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
def test_03_snapshots_per_account(self):
"""Test Snapshot limit per account
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set snapshot= 2 limit for account 1.
@ -398,19 +400,19 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# create snapshots without any warning
self.debug(
"Updating public IP resource limit for account: %s" %
"Updating public IP resource limit for account: %s" %
self.account_1.account.name)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
3, # Snapshot
3, # Snapshot
account=self.account_1.account.name,
domainid=self.account_1.account.domainid,
max=1
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_1.account.name)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -429,7 +431,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
)
self.debug(
"Deploying VM instance in account: %s" %
"Deploying VM instance in account: %s" %
self.account_1.account.name)
# Create VM for second account
virtual_machine_2 = VirtualMachine.create(
@ -501,7 +503,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
"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 (Account 2)
snapshot_2 = Snapshot.create(self.apiclient,
@ -542,7 +544,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
def test_04_volumes_per_account(self):
"""Test Volumes limit per account
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set volumes=2 limit for account 1.
@ -554,12 +556,12 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# create Volume without any warning
self.debug(
"Updating volume resource limit for account: %s" %
"Updating volume resource limit for account: %s" %
self.account_1.account.name)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
2, # Volume
2, # Volume
account=self.account_1.account.name,
domainid=self.account_1.account.domainid,
max=2
@ -684,7 +686,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
def test_05_templates_per_account(self):
"""Test Templates limit per account
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set templates=1 limit for account 1.
@ -694,19 +696,19 @@ class TestResourceLimitsAccount(cloudstackTestCase):
# able to create template without any error
self.debug(
"Updating template resource limit for account: %s" %
"Updating template resource limit for account: %s" %
self.account_1.account.name)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
4, # Template
4, # Template
account=self.account_1.account.name,
domainid=self.account_1.account.domainid,
max=1
)
self.debug(
"Updating volume resource limit for account: %s" %
"Updating volume resource limit for account: %s" %
self.account_1.account.name)
virtual_machine_1 = VirtualMachine.create(
self.apiclient,
@ -725,7 +727,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
)
self.debug(
"Deploying virtual machine for account: %s" %
"Deploying virtual machine for account: %s" %
self.account_2.account.name)
# Create VM for second account
virtual_machine_2 = VirtualMachine.create(
@ -914,7 +916,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
def test_01_vm_per_domain(self):
"""Test VM limit per domain
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Set max VM per domain to 2
@ -923,12 +925,12 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# should be raised
self.debug(
"Updating instance resource limits for domain: %s" %
"Updating instance resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
0, # Instance
0, # Instance
domainid=self.account.account.domainid,
max=2
)
@ -980,7 +982,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
def test_01_publicip_per_domain(self):
"""Test Public IP limit per domain
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. set max no of IPs per domain to 2.
@ -991,12 +993,12 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# appropriate error and an alert should be generated.
self.debug(
"Updating public IP resource limits for domain: %s" %
"Updating public IP resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
1, # Public Ip
1, # Public Ip
domainid=self.account.account.domainid,
max=2
)
@ -1050,7 +1052,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
def test_03_snapshots_per_domain(self):
"""Test Snapshot limit per domain
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. set max no of snapshots per domain to 1.
@ -1062,12 +1064,12 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# user an appropriate error and an alert should be generated.
self.debug(
"Updating snapshot resource limits for domain: %s" %
"Updating snapshot resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
3, # Snapshot
3, # Snapshot
domainid=self.account.account.domainid,
max=1
)
@ -1133,7 +1135,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
def test_04_volumes_per_domain(self):
"""Test Volumes limit per domain
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. set max no of volume per domain to 1.
@ -1144,12 +1146,12 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# should be generated.
self.debug(
"Updating volume resource limits for domain: %s" %
"Updating volume resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
2, # Volume
2, # Volume
domainid=self.account.account.domainid,
max=2
)
@ -1186,9 +1188,9 @@ class TestResourceLimitsDomain(cloudstackTestCase):
def test_05_templates_per_domain(self):
"""Test Templates limit per domain
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# Validate the following
# 1. set max no of templates per domain to 2.
# 2. Create an account in this domain
# 3. Create 2 templates in this domain. Both template should be in
@ -1199,18 +1201,18 @@ class TestResourceLimitsDomain(cloudstackTestCase):
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
2, # Volume
2, # Volume
domainid=self.account.account.domainid,
max=5
)
self.debug(
"Updating template resource limits for domain: %s" %
"Updating template resource limits for domain: %s" %
self.account.account.domainid)
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
4, # Template
4, # Template
domainid=self.account.account.domainid,
max=2
)
@ -1298,14 +1300,14 @@ class TestResources(cloudstackTestCase):
@classmethod
def setUpClass(cls):
cls.api_client = super(
TestResources,
TestResources,
cls
).getClsTestClient().getApiClient()
cls.services = Services().services
# Get Zone, Domain and templates
cls.zone = get_zone(cls.api_client, cls.services)
cls._cleanup = []
return
return
@classmethod
def tearDownClass(cls):
@ -1332,16 +1334,16 @@ class TestResources(cloudstackTestCase):
def test_01_zones(self):
"""Check the status of zones"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List zones
# 2. Check allocation state is "enabled" or not
zones = Zone.list(
self.apiclient,
id=self.zone.id,
listall=True
listall=True
)
self.assertEqual(
isinstance(zones, list),
@ -1358,16 +1360,16 @@ class TestResources(cloudstackTestCase):
def test_02_pods(self):
"""Check the status of pods"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List pods
# 2. Check allocation state is "enabled" or not
pods = Pod.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
listall=True
)
self.assertEqual(
isinstance(pods, list),
@ -1381,19 +1383,19 @@ class TestResources(cloudstackTestCase):
"Pods allocation state should be enabled"
)
return
def test_03_clusters(self):
"""Check the status of clusters"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List clusters
# 2. Check allocation state is "enabled" or not
clusters = Cluster.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
listall=True
)
self.assertEqual(
isinstance(clusters, list),
@ -1407,20 +1409,20 @@ class TestResources(cloudstackTestCase):
"Clusters allocation state should be enabled"
)
return
def test_04_hosts(self):
"""Check the status of hosts"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List hosts with type=Routing
# 2. Check state is "Up" or not
hosts = Host.list(
self.apiclient,
zoneid=self.zone.id,
type='Routing',
listall=True
listall=True
)
self.assertEqual(
isinstance(hosts, list),
@ -1434,19 +1436,19 @@ class TestResources(cloudstackTestCase):
"Host should be in Up state and running"
)
return
def test_05_storage_pools(self):
"""Check the status of Storage pools"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List storage pools for the zone
# 2. Check state is "enabled" or not
storage_pools = StoragePool.list(
self.apiclient,
zoneid=self.zone.id,
listall=True
listall=True
)
self.assertEqual(
isinstance(storage_pools, list),
@ -1460,20 +1462,20 @@ class TestResources(cloudstackTestCase):
"storage pool should be in Up state and running"
)
return
def test_06_secondary_storage(self):
"""Check the status of secondary storage"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. List secondary storage
# 2. Check state is "Up" or not
sec_storages = Host.list(
self.apiclient,
zoneid=self.zone.id,
type='SecondaryStorage',
listall=True
listall=True
)
self.assertEqual(
isinstance(sec_storages, list),

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for routers
"""
@ -79,7 +79,7 @@ class Services:
"publicport": 2222,
"protocol": 'TCP',
},
"fw_rule":{
"fw_rule": {
"startport": 1,
"endport": 6000,
"cidr": '55.55.0.0/11',
@ -87,7 +87,7 @@ class Services:
},
"ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9',
# Used for Get_Template : CentOS 5.3 (64 bit)
"mode": 'advanced', # Networking mode: Advanced, basic
"mode": 'advanced', # Networking mode: Advanced, basic
}
@ -177,7 +177,7 @@ class TestRouterServices(cloudstackTestCase):
# e. LB
# f. VPN
# g. userdata
# 2. wait for router to start and guest network to be created
# 2. wait for router to start and guest network to be created
# a. listRouters account=user, domainid=1 (router state=Running)
# b. listNetworks account=user domainid=1 (network state=Implemented)
# c. listVirtualMachines account=user domainid=1 (VM state=Running)
@ -315,7 +315,7 @@ class TestRouterServices(cloudstackTestCase):
"""
tags = ["advanced"]
# Validate the following
# 1. wait for router to start and guest network to be created
# 1. wait for router to start and guest network to be created
# a.listRouters account=user, domainid=1 (router state=Running)
# b.listNetworks account=user domainid=1 (network state=Implemented)
# c.listVirtualMachines account=user domainid=1 (VM states=Running)
@ -433,9 +433,9 @@ class TestRouterServices(cloudstackTestCase):
)
self.debug("network.gc.wait: %s" % gcwait[0].value)
total_wait = int(gcinterval[0].value) + int (gcwait[0].value)
total_wait = int(gcinterval[0].value) + int(gcwait[0].value)
# Router is stopped after (network.gc.interval *2) time. Wait for
# (network.gc.interval+network.gc.wait) * 2 for moving router to 'Stopped'
# (network.gc.interval+network.gc.wait) * 2 for moving router to 'Stopped'
time.sleep(total_wait * 2)
routers = list_routers(
@ -577,7 +577,6 @@ class TestRouterServices(cloudstackTestCase):
return
class TestRouterStopCreatePF(cloudstackTestCase):
@classmethod
@ -654,10 +653,10 @@ class TestRouterStopCreatePF(cloudstackTestCase):
# 2. stopRouter for this account
# 3. wait for listRouters to report Router as 'Stopped'
# 4. listPublicIpAddresses account=user, domainid=1 - pick ipaddressid
# 5. createPortForwardingRule (ipaddressid from step 5.)
# 5. createPortForwardingRule (ipaddressid from step 5.)
# a. for port 22 (ssh) for user VM deployed in step 1.
# b. public port 222 , private port 22
# 6. startRouter stopped for this account
# 6. startRouter stopped for this account
# 7. wait for listRouters to show router as Running
# Get router details associated for that account
@ -717,7 +716,7 @@ class TestRouterStopCreatePF(cloudstackTestCase):
)
public_ip = public_ips[0]
# Open up firewall port for SSH
# Open up firewall port for SSH
fw_rule = FireWallRule.create(
self.apiclient,
ipaddressid=public_ip.id,
@ -788,6 +787,7 @@ class TestRouterStopCreatePF(cloudstackTestCase):
)
return
class TestRouterStopCreateLB(cloudstackTestCase):
@classmethod
@ -920,8 +920,8 @@ class TestRouterStopCreateLB(cloudstackTestCase):
"Check for list public IPs response return valid data"
)
public_ip = public_ips[0]
# Open up firewall port for SSH
# Open up firewall port for SSH
fw_rule = FireWallRule.create(
self.apiclient,
ipaddressid=public_ip.id,
@ -1073,7 +1073,7 @@ class TestRouterStopCreateFW(cloudstackTestCase):
# (optional backend)
# 3. verify on router using iptables -t nat -nvx if rules are applied
# Get the router details associated with account
# Get the router details associated with account
routers = list_routers(
self.apiclient,
account=self.account.account.name,
@ -1220,4 +1220,3 @@ class TestRouterStopCreateFW(cloudstackTestCase):
"Check public IP address"
)
return

File diff suppressed because it is too large Load Diff

View File

@ -30,8 +30,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"virtual_machine": {
"displayname": "TestVM",
@ -52,23 +52,23 @@ class Services:
"password": "fr3sca",
},
"globalconfig": {
"security.hash.key": "test",
"vmware.guest.vswitch": "test",
"vmware.public.vswitch": "test",
"vmware.private.vswitch": "test",
"kvm.guest.network.device": "test",
"ovm.guest.network.device": "test",
"xen.guest.network.device": "test",
"kvm.public.network.device": "test",
"ovm.public.network.device": "test",
"xen.public.network.device": "test",
"kvm.private.network.device": "test",
"ovm.private.network.device": "test",
"xen.private.network.device": "test",
"xen.storage.network.device1": "test",
"xen.storage.network.device2": "test",
"alert.smtp.password": "test",
"project.smtp.password": "test",
"security.hash.key" : "test",
"vmware.guest.vswitch" : "test",
"vmware.public.vswitch" : "test",
"vmware.private.vswitch" : "test",
"kvm.guest.network.device" : "test",
"ovm.guest.network.device" : "test",
"xen.guest.network.device" : "test",
"kvm.public.network.device" : "test",
"ovm.public.network.device" : "test",
"xen.public.network.device" : "test",
"kvm.private.network.device" : "test",
"ovm.private.network.device" : "test",
"xen.private.network.device" : "test",
"xen.storage.network.device1" : "test",
"xen.storage.network.device2" : "test",
"alert.smtp.password" : "test",
"project.smtp.password" : "test",
},
"ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea',
# Cent OS 5.3 (64 bit)
@ -364,7 +364,7 @@ class TestSecurityKeysEncryption(cloudstackTestCase):
self.assertNotEqual(
config_value,
v,
"Configuration %s 's value should be stored in encrypted format in DB" % k
"Check configuration value in database is not equal to value set to verify the value is encrypted"
)
#Setting the configuration value back to None as default value

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Snapshots
"""
@ -22,6 +22,7 @@ from integration.lib.base import *
from integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient
class Services:
"""Test Snapshots Services
"""
@ -41,8 +42,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 200, # in MHz
"memory": 256, # In MBs
"cpuspeed": 200, # in MHz
"memory": 256, # In MBs
},
"disk_offering": {
"displaytext": "Small Disk",
@ -68,10 +69,10 @@ class Services:
"recurring_snapshot": {
"intervaltype": 'HOURLY',
# Frequency of snapshots
"maxsnaps": 1, # Should be min 2
"maxsnaps": 1, # Should be min 2
"schedule": 1,
"timezone": 'US/Arizona',
# Timezone Formats - http://cloud.mindtouch.us/CloudStack_Documentation/Developer's_Guide%3A_CloudStack
# Timezone Formats - http://cloud.mindtouch.us/CloudStack_Documentation/Developer's_Guide%3A_CloudStack
},
"templates": {
"displaytext": 'Template',
@ -81,7 +82,7 @@ class Services:
},
"diskdevice": "/dev/xvda",
"diskname": "TestDiskServ",
"size": 1, # GBs
"size": 1, # GBs
"mount_dir": "/mnt/tmp",
"sub_dir": "test",
@ -93,7 +94,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode" : 'advanced', # Networking mode: Advanced, Basic
"mode": 'advanced', # Networking mode: Advanced, Basic
}
@ -162,7 +163,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
def test_01_createVM_snapshotTemplate(self):
"""Test create VM, Snapshot and Template
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Deploy VM using default template, small service offering
# and small data disk offering.
@ -188,7 +189,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
serviceofferingid=self.service_offering.id
)
self.debug("Created VM with ID: %s" % self.virtual_machine.id)
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
@ -329,7 +330,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
export_path = '/'.join(parse_url[3:])
# Export path: export/test
# Sleep to ensure that snapshot is reflected in sec storage
time.sleep(self.services["sleep"])
try:
@ -341,7 +342,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
self.services["mgmt_server"]["password"],
)
cmds = [
cmds = [
"mkdir -p %s" % self.services["mount_dir"],
"mount %s/%s %s" % (
sec_storage_ip,
@ -358,7 +359,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
self.debug("command: %s" % c)
result = ssh_client.execute(c)
self.debug("Result: %s" % result)
except Exception as e:
self.fail("SSH failed for Management server: %s" %
self.services["mgmt_server"]["ipaddress"])
@ -376,7 +377,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
except Exception as e:
self.fail("SSH failed for Management server: %s" %
self.services["mgmt_server"]["ipaddress"])
res = str(uuids)
self.assertEqual(
res.count(snapshot_uuid),
@ -427,7 +428,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
domainid=cls.account.account.domainid,
serviceofferingid=cls.service_offering.id
)
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
cls.api_client,
virtualmachineid=cls.virtual_machine.id,
@ -470,7 +471,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
def test_02_accountSnapshotClean(self):
"""Test snapshot cleanup after account deletion
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. listAccounts API should list out the newly created account
# 2. listVirtualMachines() command should return the deployed VM.
@ -515,7 +516,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
for virtual_machine in virtual_machines:
self.debug("VM ID: %s, VM state: %s" % (
virtual_machine.id,
virtual_machine.state
virtual_machine.state
))
self.assertEqual(
virtual_machine.state,
@ -588,7 +589,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
export_path = '/'.join(parse_url[3:])
# Export path: export/test
# Sleep to ensure that snapshot is reflected in sec storage
time.sleep(self.services["sleep"])
try:
@ -618,7 +619,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
self.debug("command: %s" % c)
result = ssh_client.execute(c)
self.debug("Result: %s" % result)
uuids.append(result)
# Unmount the Sec Storage
@ -630,14 +631,14 @@ class TestAccountSnapshotClean(cloudstackTestCase):
except Exception:
self.fail("SSH failed for management server: %s" %
self.services["mgmt_server"]["ipaddress"])
res = str(uuids)
self.assertEqual(
res.count(snapshot_uuid),
1,
"Check snapshot UUID in secondary storage and database"
)
self.debug("Deleting account: %s" % self.account.account.name)
# Delete account
self.account.delete(self.apiclient)
@ -652,7 +653,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
"Check list response returns a valid list"
)
self.debug("account.cleanup.interval: %s" % interval[0].value)
# Wait for account cleanup interval
time.sleep(int(interval[0].value) * 2)
@ -660,14 +661,14 @@ class TestAccountSnapshotClean(cloudstackTestCase):
self.apiclient,
id=self.account.account.id
)
self.assertEqual(
accounts,
None,
"List accounts should return empty list after account deletion"
)
uuids = []
self.assertEqual(
accounts,
None,
"List accounts should return empty list after account deletion"
)
uuids = []
for host in hosts:
# hosts[0].name = "nfs://192.168.100.21/export/test"
parse_url = (host.name).split('/')
@ -681,7 +682,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
# Export path: export/test
try:
cmds = [
cmds = [
"mount %s/%s %s" % (
sec_storage_ip,
export_path,
@ -698,7 +699,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
self.debug("command: %s" % c)
result = ssh_client.execute(c)
self.debug("Result: %s" % result)
uuids.append(result)
# Unmount the Sec Storage
cmds = [
@ -712,7 +713,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
except Exception:
self.fail("SSH failed for management server: %s" %
self.services["mgmt_server"]["ipaddress"])
res = str(uuids)
self.assertNotEqual(
res.count(snapshot_uuid),
@ -801,7 +802,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
def test_03_snapshot_detachedDisk(self):
"""Test snapshot from detached disk
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. login in VM and write some data on data disk(use fdisk to
# partition datadisk,fdisk /dev/sdb, and make filesystem using
@ -860,7 +861,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
self.services["sub_lvl_dir2"],
self.services["random_data"]
),
"sync",
"sync",
]
for c in cmds:
self.debug(ssh_client.execute(c))
@ -905,7 +906,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
except Exception as e:
self.fail("SSH failed for VM with IP: %s" %
self.virtual_machine.ipaddress)
# Fetch values from database
qresultset = self.dbclient.execute(
"select backup_snap_id, account_id, volume_id from snapshots where uuid = '%s';" \
@ -951,7 +952,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
export_path = '/'.join(parse_url[3:])
# Export path: export/test
# Sleep to ensure that snapshot is reflected in sec storage
time.sleep(self.services["sleep"])
try:
@ -980,7 +981,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
for c in cmds:
result = ssh_client.execute(c)
uuids.append(result)
# Unmount the Sec Storage
cmds = [
@ -991,7 +992,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
except Exception as e:
self.fail("SSH failed for management server: %s" %
self.services["mgmt_server"]["ipaddress"])
res = str(uuids)
self.assertEqual(
res.count(snapshot_uuid),
@ -1073,15 +1074,15 @@ class TestSnapshotLimit(cloudstackTestCase):
def test_04_snapshot_limit(self):
"""Test snapshot limit in snapshot policies
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Perform hourly recurring snapshot on the root disk of VM and keep
# the maxsnapshots as 1
# 2. listSnapshots should list the snapshot that was created
# snapshot folder in secondary storage should contain only one
# 2. listSnapshots should list the snapshot that was created
# snapshot folder in secondary storage should contain only one
# snapshot image(/secondary/snapshots/$accountid/$volumeid/)
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
@ -1113,7 +1114,7 @@ class TestSnapshotLimit(cloudstackTestCase):
True,
"Check list response returns a valid list"
)
self.assertNotEqual(
snapshot_policy,
None,
@ -1145,7 +1146,7 @@ class TestSnapshotLimit(cloudstackTestCase):
snapshottype='RECURRING',
listall=True
)
self.assertEqual(
isinstance(snapshots, list),
True,
@ -1156,7 +1157,7 @@ class TestSnapshotLimit(cloudstackTestCase):
self.services["recurring_snapshot"]["maxsnaps"],
"Check maximum number of recurring snapshots retained"
)
snapshot = snapshots[0]
snapshot = snapshots[0]
# Sleep to ensure that snapshot is reflected in sec storage
time.sleep(self.services["sleep"])
@ -1325,13 +1326,13 @@ class TestSnapshotEvents(cloudstackTestCase):
def test_05_snapshot_events(self):
"""Test snapshot events
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Perform snapshot on the root disk of this VM and check the events/alerts.
# 2. delete the snapshots and check the events/alerts
# 3. listEvents() shows created/deleted snapshot events
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=self.virtual_machine.id,

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 for stopped Virtual Maschine life cycle
@ -25,6 +25,7 @@ from integration.lib.common import *
#Import System modules
import time
class Services:
"""Test Stopped VM Life Cycle Services
"""
@ -36,14 +37,14 @@ class Services:
"firstname": "Test",
"lastname": "User",
"username": "test",
# Random characters are appended in create account to
# Random characters are appended in create account to
# ensure unique username generated each time
"password": "password",
},
"virtual_machine":
{
"displayname": "testserver",
"username": "root", # VM creds for SSH
"username": "root", # VM creds for SSH
"password": "password",
"ssh_port": 22,
"hypervisor": 'XenServer',
@ -56,8 +57,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
},
"disk_offering": {
"displaytext": "Small volume",
@ -76,12 +77,12 @@ class Services:
"url": "http://nfs1.lab.vmops.com/isos_32bit/dsl-4.4.10.iso",
# Source URL where ISO is located
"ostypeid": '19e6a39f-92db-4d2c-b375-33e7f42d86be',
"mode": 'HTTP_DOWNLOAD', # Downloading existing ISO
"mode": 'HTTP_DOWNLOAD', # Downloading existing ISO
},
"template": {
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
@ -169,11 +170,11 @@ class TestDeployVM(cloudstackTestCase):
def test_01_deploy_vm_no_startvm(self):
"""Test Deploy Virtual Machine with no startVM parameter
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm without specifying the startvm parameter
# 2. Should be able to login to the VM.
# 1. deploy Vm without specifying the startvm parameter
# 2. Should be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Running".
@ -223,11 +224,11 @@ class TestDeployVM(cloudstackTestCase):
def test_02_deploy_vm_startvm_true(self):
"""Test Deploy Virtual Machine with startVM=true parameter
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Running".
@ -278,11 +279,11 @@ class TestDeployVM(cloudstackTestCase):
def test_03_deploy_vm_startvm_false(self):
"""Test Deploy Virtual Machine with startVM=false parameter
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false
# 2. Should not be able to login to the VM.
# 1. deploy Vm with the startvm=false
# 2. Should not be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 4. Check listRouters call for that account. List routers should
@ -355,10 +356,10 @@ class TestDeployVM(cloudstackTestCase):
)
# 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 = list_virtual_machines(
self.apiclient,
id=self.virtual_machine.id
)
)
self.assertEqual(
list_vm_response,
@ -370,10 +371,10 @@ class TestDeployVM(cloudstackTestCase):
def test_04_deploy_startvm_false_attach_volume(self):
"""Test Deploy Virtual Machine with startVM=false and attach volume
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 2. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 3. Attach volume should be successful
@ -437,10 +438,10 @@ class TestDeployVM(cloudstackTestCase):
"""Test Deploy Virtual Machine with startVM=false and
change service offering
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 2. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 3. Attach volume should be successful
@ -536,7 +537,7 @@ class TestDeployVM(cloudstackTestCase):
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
id=volume.id,
id=volume.id,
listall=True
)
self.assertEqual(
@ -550,10 +551,10 @@ class TestDeployVM(cloudstackTestCase):
"""Test Deploy Virtual Machine with startVM=false and
attach detach volumes
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 2. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 3. Attach volume should be successful
@ -621,7 +622,7 @@ class TestDeployVM(cloudstackTestCase):
self.apiclient,
virtualmachineid=self.virtual_machine.id,
type='DATADISK',
id=volume.id,
id=volume.id,
listall=True
)
self.assertEqual(
@ -634,10 +635,10 @@ class TestDeployVM(cloudstackTestCase):
def test_07_deploy_startvm_attach_iso(self):
"""Test Deploy Virtual Machine with startVM=false and attach ISO
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 2. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 3. Attach ISO to the instance. Attach ISO should be successful
@ -726,10 +727,10 @@ class TestDeployVM(cloudstackTestCase):
"""Test Deploy Virtual Machine with startVM=false and
attach volume already attached to different machine
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 1. deploy Vm with the startvm=false. Attach volume to the instance
# 2. listVM command should return the deployed VM.State of this VM
# should be "Stopped".
# 3. Create an instance with datadisk attached to it. Detach DATADISK
@ -854,7 +855,6 @@ class TestDeployVM(cloudstackTestCase):
return
class TestDeployHaEnabledVM(cloudstackTestCase):
@classmethod
@ -924,12 +924,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
self.debug("Warning! Exception in tearDown: %s" % e)
def test_01_deploy_ha_vm_startvm_false(self):
"""Test Deploy HA enabled Virtual Machine with startvm=false
"""Test Deploy HA enabled Virtual Machine with startvm=false
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deployHA enabled Vm with the startvm parameter = false
# 1. deployHA enabled Vm with the startvm parameter = false
# 2. listVM command should return the deployed VM. State of this VM
# should be "Created".
@ -973,12 +973,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
return
def test_02_deploy_ha_vm_from_iso(self):
"""Test Deploy HA enabled Virtual Machine from ISO
"""Test Deploy HA enabled Virtual Machine from ISO
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deployHA enabled Vm using ISO with the startvm parameter=true
# 1. deployHA enabled Vm using ISO with the startvm parameter=true
# 2. listVM command should return the deployed VM. State of this VM
# should be "Running".
@ -1038,12 +1038,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
return
def test_03_deploy_ha_vm_iso_startvm_false(self):
"""Test Deploy HA enabled Virtual Machine from ISO with startvm=false
"""Test Deploy HA enabled Virtual Machine from ISO with startvm=false
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deployHA enabled Vm using ISO with the startvm parameter=false
# 1. deployHA enabled Vm using ISO with the startvm parameter=false
# 2. listVM command should return the deployed VM. State of this VM
# should be "Stopped".
@ -1157,11 +1157,11 @@ class TestRouterStateAfterDeploy(cloudstackTestCase):
def test_01_deploy_vm_no_startvm(self):
"""Test Deploy Virtual Machine with no startVM parameter
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. deploy Vm without specifying the startvm parameter
# 2. Should be able to login to the VM.
# 1. deploy Vm without specifying the startvm parameter
# 2. Should be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Running".
@ -1372,15 +1372,14 @@ class TestDeployVMBasicZone(cloudstackTestCase):
def test_01_deploy_vm_startvm_true(self):
"""Test Deploy Virtual Machine with startVM=true parameter
"""
tags = ["eip","basic","sg"]
tags = ["eip", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Running".
self.debug("Checking the network type of the zone: %s" %
self.zone.networktype)
self.assertEqual(
@ -1431,15 +1430,14 @@ class TestDeployVMBasicZone(cloudstackTestCase):
def test_02_deploy_vm_startvm_false(self):
"""Test Deploy Virtual Machine with startVM=true parameter
"""
tags = ["eip","basic","sg"]
tags = ["eip", "basic", "sg"]
# Validate the following:
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 1. deploy Vm with the startvm=true
# 2. Should be able to login to the VM.
# 3. listVM command should return the deployed VM.State of this VM
# should be "Running".
self.debug("Checking the network type of the zone: %s" %
self.zone.networktype)
self.assertEqual(
@ -1570,10 +1568,10 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
account=self.account.account.name,
domainid=self.account.account.domainid
)
try:
self.template.download(self.apiclient)
except Exception as e:
raise Exception("Template download failed: %s" % e)
try:
self.template.download(self.apiclient)
except Exception as e:
raise Exception("Template download failed: %s" % e)
self.cleanup = [self.account]
return
@ -1590,7 +1588,7 @@ class TestDeployVMFromTemplate(cloudstackTestCase):
"""Test Deploy Virtual Machine with startVM=false & enabledpassword in
template
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following:
# 1. Create the password enabled template
@ -1727,7 +1725,7 @@ class TestVMAccountLimit(cloudstackTestCase):
def test_vm_per_account(self):
"""Test VM limit per account
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following
# 1. Set the resource limit for VM per account.
@ -1740,7 +1738,7 @@ class TestVMAccountLimit(cloudstackTestCase):
# Set usage_vm=1 for Account 1
update_resource_limit(
self.apiclient,
0, # Instance
0, # Instance
account=self.account.account.name,
domainid=self.account.account.domainid,
max=1
@ -1843,7 +1841,7 @@ class TestUploadAttachVolume(cloudstackTestCase):
def test_upload_attach_volume(self):
"""Test Upload volume and attach to VM in stopped state
"""
tags = ["advanced","eip","advancedns","basic","sg"]
tags = ["advanced", "eip", "advancedns", "basic", "sg"]
# Validate the following
# 1. Upload the volume using uploadVolume API call

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Templates
"""
@ -46,8 +46,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Small",
@ -68,15 +68,15 @@ class Services:
"diskname": "Test Volume",
},
"templates": {
# Configs for different Template formats
# Configs for different Template formats
# For Eg. raw image, zip etc
0:{
0: {
"displaytext": "Public Template",
"name": "Public template",
"ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9',
"url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2",
"hypervisor": 'XenServer',
"format" : 'VHD',
"format": 'VHD',
"isfeatured": True,
"ispublic": True,
"isextractable": True,
@ -89,11 +89,11 @@ class Services:
"templatefilter": 'self',
},
"templatefilter": 'self',
"destzoneid": 2, # For Copy template (Destination zone)
"destzoneid": 2, # For Copy template (Destination zone)
"ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9',
"sleep": 60,
"timeout": 10,
"mode": 'advanced', # Networking mode: Advanced, basic
"mode": 'advanced', # Networking mode: Advanced, basic
}
@ -159,7 +159,7 @@ class TestCreateTemplate(cloudstackTestCase):
def test_01_create_template(self):
"""Test create public & private template
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following:
# 1. Upload a templates in raw img format. Create a Vm instances from
# raw img template.
@ -209,7 +209,7 @@ class TestCreateTemplate(cloudstackTestCase):
break
elif timeout == 0:
raise Exception("List template failed!")
time.sleep(5)
timeout = timeout - 1
#Verify template response to check whether template added successfully
@ -218,13 +218,13 @@ class TestCreateTemplate(cloudstackTestCase):
True,
"Check for list template response return valid data"
)
self.assertNotEqual(
len(list_template_response),
0,
"Check template available in List Templates"
)
template_response = list_template_response[0]
self.assertEqual(
template_response.isready,
@ -311,10 +311,10 @@ class TestTemplates(cloudstackTestCase):
#Stop virtual machine
cls.virtual_machine.stop(cls.api_client)
timeout = cls.services["timeout"]
timeout = cls.services["timeout"]
#Wait before server has be successfully stopped
time.sleep(cls.services["sleep"])
while True:
list_volume = list_volumes(
cls.api_client,
@ -326,10 +326,10 @@ class TestTemplates(cloudstackTestCase):
break
elif timeout == 0:
raise Exception("List volumes failed.")
time.sleep(5)
timeout = timeout -1
timeout = timeout - 1
cls.volume = list_volume[0]
#Create template from volume
@ -375,7 +375,7 @@ class TestTemplates(cloudstackTestCase):
def test_01_create_template_volume(self):
"""Test Create template from volume
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following:
# 1. Deploy new VM using the template created from Volume
@ -389,7 +389,7 @@ class TestTemplates(cloudstackTestCase):
domainid=self.account.account.domainid,
serviceofferingid=self.service_offering.id,
)
self.debug("creating an instance with template ID: %s" % self.template.id)
self.cleanup.append(virtual_machine)
vm_response = list_virtual_machines(
@ -414,12 +414,12 @@ class TestTemplates(cloudstackTestCase):
def test_02_copy_template(self):
"""Test for copy template from one zone to another"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. copy template should be successful and
# secondary storage should contain new copied template.
self.debug(
"Copying template from zone: %s to %s" % (
self.template.id,
@ -444,7 +444,7 @@ class TestTemplates(cloudstackTestCase):
True,
"Check for list template response return valid list"
)
self.assertNotEqual(
len(list_template_response),
0,
@ -473,7 +473,7 @@ class TestTemplates(cloudstackTestCase):
def test_03_delete_template(self):
"""Test Delete template
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following:
# 1. Create a template and verify it is shown in list templates response
@ -492,7 +492,7 @@ class TestTemplates(cloudstackTestCase):
True,
"Check for list template response return valid list"
)
self.assertNotEqual(
len(list_template_response),
0,
@ -505,12 +505,12 @@ class TestTemplates(cloudstackTestCase):
self.template.id,
"Check display text of updated template"
)
self.debug("Deleting template: %s" % self.template)
# Delete the template
self.template.delete(self.apiclient)
self.debug("Delete template: %s successful" % self.template)
list_template_response = list_templates(
self.apiclient,
templatefilter=\
@ -528,7 +528,7 @@ class TestTemplates(cloudstackTestCase):
def test_04_template_from_snapshot(self):
"""Create Template from snapshot
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 2. Snapshot the Root disk
@ -543,7 +543,7 @@ class TestTemplates(cloudstackTestCase):
listall=True
)
volume = volumes[0]
self.debug("Creating a snapshot from volume: %s" % volume.id)
#Create a snapshot of volume
snapshot = Snapshot.create(

View File

@ -89,7 +89,7 @@ class Services:
"publicport": 22,
},
"sleep": 50,
"ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea',
"ostypeid": 'e6e3dd0f-03c8-4cab-9c32-89769c17ccb3',
"mode": 'basic',
}

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Snapshots
"""
@ -23,6 +23,7 @@ from integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient
import datetime
class Services:
"""Test Snapshots Services
"""
@ -100,7 +101,7 @@ class Services:
# Cent OS 5.3 (64 bit)
"sleep": 60,
"timeout": 10,
"mode":'advanced'
"mode": 'advanced'
}
@ -189,16 +190,16 @@ class TestVmUsage(cloudstackTestCase):
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
# Stop the VM
self.virtual_machine.stop(self.apiclient)
time.sleep(self.services["sleep"])
# Destroy the VM
self.debug("Destroying the VM: %s" % self.virtual_machine.id)
self.virtual_machine.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -208,7 +209,7 @@ class TestVmUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -219,7 +220,7 @@ class TestVmUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -229,7 +230,7 @@ class TestVmUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -365,7 +366,7 @@ class TestPublicIPUsage(cloudstackTestCase):
return
def test_01_public_ip_usage(self):
"""Test Assign new IP and verify usage calculation
"""Test Assign new IP and verify usage calculation
"""
tags = ["advanced", "eip", "advancedns"]
# Validate the following
@ -375,16 +376,16 @@ class TestPublicIPUsage(cloudstackTestCase):
# has IP.Release event for released IP for this account
# 3. Delete the newly created account
self.debug("Deleting public IP: %s" %
self.debug("Deleting public IP: %s" %
self.public_ip.ipaddress.ipaddress)
# Release one of the IP
self.public_ip.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -404,12 +405,12 @@ class TestPublicIPUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
@ -534,8 +535,8 @@ class TestVolumeUsage(cloudstackTestCase):
listall=True
)
self.assertEqual(
isinstance(volume_response, list),
True,
isinstance(volume_response, list),
True,
"Check for valid list volumes response"
)
data_volume = volume_response[0]
@ -553,10 +554,10 @@ class TestVolumeUsage(cloudstackTestCase):
cmd.id = data_volume.id
self.apiclient.deleteVolume(cmd)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -566,7 +567,7 @@ class TestVolumeUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -577,12 +578,12 @@ class TestVolumeUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertNotEqual(
len(qresultset),
0,
@ -593,7 +594,7 @@ class TestVolumeUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check VOLUME.CREATE, VOLUME.DESTROY events in cloud.usage_event table
@ -660,7 +661,7 @@ class TestTemplateUsage(cloudstackTestCase):
type='ROOT',
listall=True
)
if isinstance(list_volume, list):
if isinstance(list_volume, list):
cls.volume = list_volume[0]
else:
raise Exception("List Volumes failed!")
@ -716,10 +717,10 @@ class TestTemplateUsage(cloudstackTestCase):
self.template.delete(self.apiclient)
self.debug("Deleted template with ID: %s" % self.template.id)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -729,7 +730,7 @@ class TestTemplateUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -740,7 +741,7 @@ class TestTemplateUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -756,10 +757,10 @@ class TestTemplateUsage(cloudstackTestCase):
0,
"Check DB Query result set"
)
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for TEMPLATE.CREATE, TEMPLATE.DELETE in cloud.usage_event table
self.assertEqual(
qresult.count('TEMPLATE.CREATE'),
@ -786,7 +787,7 @@ class TestISOUsage(cloudstackTestCase):
cls.zone = get_zone(cls.api_client, cls.services)
cls.services["server"]["zoneid"] = cls.zone.id
cls.services["iso"]["zoneid"] = cls.zone.id
# Create Account, ISO image etc
# Create Account, ISO image etc
cls.account = Account.create(
cls.api_client,
cls.services["account"],
@ -850,11 +851,11 @@ class TestISOUsage(cloudstackTestCase):
# Delete the ISO
self.debug("Deleting ISO with ID: %s" % self.iso.id)
self.iso.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -864,7 +865,7 @@ class TestISOUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -875,18 +876,18 @@ class TestISOUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -999,7 +1000,7 @@ class TestLBRuleUsage(cloudstackTestCase):
# 4. Delete this account.
self.debug(
"Creating load balancer rule for public IP: %s" %
"Creating load balancer rule for public IP: %s" %
self.public_ip_1.ipaddress.id)
#Create Load Balancer rule and assign VMs to rule
lb_rule = LoadBalancerRule.create(
@ -1012,10 +1013,10 @@ class TestLBRuleUsage(cloudstackTestCase):
self.debug("Deleting LB rule with ID: %s" % lb_rule.id)
lb_rule.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -1025,7 +1026,7 @@ class TestLBRuleUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1036,7 +1037,7 @@ class TestLBRuleUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1057,7 +1058,7 @@ class TestLBRuleUsage(cloudstackTestCase):
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for LB.CREATE, LB.DELETE in cloud.usage_event table
# Check for LB.CREATE, LB.DELETE in cloud.usage_event table
self.assertEqual(
qresult.count('LB.CREATE'),
1,
@ -1143,7 +1144,7 @@ class TestSnapshotUsage(cloudstackTestCase):
def test_01_snapshot_usage(self):
"""Test Create/Delete a manual snap shot and verify
correct usage is recorded
correct usage is recorded
"""
tags = ["advanced", "basic", "sg", "eip", "advancedns"]
# Validate the following
@ -1153,7 +1154,7 @@ class TestSnapshotUsage(cloudstackTestCase):
# generated for the destroyed Snapshot
# 3. Delete the account
# Get the Root disk of VM
# Get the Root disk of VM
volumes = list_volumes(
self.apiclient,
virtualmachineid=self.virtual_machine.id,
@ -1165,7 +1166,7 @@ class TestSnapshotUsage(cloudstackTestCase):
True,
"Check if list volumes return a valid data"
)
volume = volumes[0]
# Create a snapshot from the ROOTDISK
@ -1176,10 +1177,10 @@ class TestSnapshotUsage(cloudstackTestCase):
self.debug("Deleting snapshot: %s" % snapshot.id)
snapshot.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -1189,7 +1190,7 @@ class TestSnapshotUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1200,12 +1201,12 @@ class TestSnapshotUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
)
self.assertEqual(
isinstance(qresultset, list),
True,
@ -1315,7 +1316,7 @@ class TestNatRuleUsage(cloudstackTestCase):
def test_01_nat_usage(self):
"""Test Create/Delete a PF rule and verify correct usage is recorded
"""
tags = ["advanced", "advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Acquire a IP for this account
# 2. Create a PF rule on the IP associated with this account.
@ -1325,7 +1326,7 @@ class TestNatRuleUsage(cloudstackTestCase):
# is registered for this account in cloud.usage_event table
# 4. Delete this account.
self.debug("Creating NAT rule with public IP: %s" %
self.debug("Creating NAT rule with public IP: %s" %
self.public_ip_1.ipaddress.id)
#Create NAT rule
nat_rule = NATRule.create(
@ -1339,10 +1340,10 @@ class TestNatRuleUsage(cloudstackTestCase):
self.debug("Deleting NAT rule: %s" % nat_rule.id)
nat_rule.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -1352,7 +1353,7 @@ class TestNatRuleUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1363,7 +1364,7 @@ class TestNatRuleUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1481,12 +1482,12 @@ class TestVpnUsage(cloudstackTestCase):
# Validate the following
# 1. Enable VPN for this IP. vpn.add.user event is registered for this
# account in cloud.usage_event table
# 2. Add user to this vpn
# 2. Add user to this vpn
# 3. Delete user for this VPN. vpn.user.delete event is registered for
# this account in cloud.usage_event table
# 4. Delete this account.
self.debug("Created VPN with public IP: %s" %
self.debug("Created VPN with public IP: %s" %
self.public_ip.ipaddress.id)
#Assign VPN to Public IP
vpn = Vpn.create(
@ -1496,7 +1497,7 @@ class TestVpnUsage(cloudstackTestCase):
domainid=self.account.account.domainid
)
self.debug("Created VPN user for account: %s" %
self.debug("Created VPN user for account: %s" %
self.account.account.name)
vpnuser = VpnUser.create(
@ -1515,10 +1516,10 @@ class TestVpnUsage(cloudstackTestCase):
self.debug("Deleting VPN: %s" % vpn.publicipid)
vpn.delete(self.apiclient)
# Fetch account ID from account_uuid
# Fetch account ID from account_uuid
self.debug("select id from account where uuid = '%s';" \
% self.account.account.id)
qresultset = self.dbclient.execute(
"select id from account where uuid = '%s';" \
% self.account.account.id
@ -1528,7 +1529,7 @@ class TestVpnUsage(cloudstackTestCase):
True,
"Check DB query result set for valid data"
)
self.assertNotEqual(
len(qresultset),
0,
@ -1539,7 +1540,7 @@ class TestVpnUsage(cloudstackTestCase):
account_id = qresult[0]
self.debug("select type from usage_event where account_id = '%s';" \
% account_id)
qresultset = self.dbclient.execute(
"select type from usage_event where account_id = '%s';" \
% account_id
@ -1558,8 +1559,8 @@ class TestVpnUsage(cloudstackTestCase):
qresult = str(qresultset)
self.debug("Query result: %s" % qresult)
# Check for VPN user related events
# Check for VPN user related events
self.assertEqual(
qresult.count('VPN.USER.ADD'),
1,

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 for VMware DRS testing
@ -25,6 +25,7 @@ from integration.lib.common import *
#Import System modules
import time
class Services:
"""Test vmware DRS services
"""
@ -36,14 +37,14 @@ class Services:
"firstname": "Test",
"lastname": "User",
"username": "test",
# Random characters are appended in create account to
# Random characters are appended in create account to
# ensure unique username generated each time
"password": "password",
},
"virtual_machine":
{
"displayname": "testserver",
"username": "root", # VM creds for SSH
"username": "root", # VM creds for SSH
"password": "password",
"ssh_port": 22,
"hypervisor": 'XenServer',
@ -56,15 +57,15 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
"cpuspeed": 100, # in MHz
"memory": 128, # In MBs
},
"anti_affinity": {
"host_1": "10.147.29.55",
"host_2": "10.147.29.61",
"vm_2": '73973255-9354-4b1a-b98f-30a3531fd16d',
"vm_1": '11d4e127-7e07-47bb-8ec9-6a9e9ac672ce',
# VM IDs created manually on host 1 and anti-affinity rules added
"vm_2": '73973255-9354-4b1a-b98f-30a3531fd16d',
"vm_1": '11d4e127-7e07-47bb-8ec9-6a9e9ac672ce',
# VM IDs created manually on host 1 and anti-affinity rules added
},
"affinity": {
"host_1": "10.147.29.55",
@ -162,7 +163,7 @@ class TestVMPlacement(cloudstackTestCase):
- Another host should have some capacity remaining
- DRS Cluster is configured in "Fully automated" mode
"""
tags = ["advanced","vmware","eip","advancedns","basic","sg"]
tags = ["advanced", "vmware", "eip", "advancedns", "basic", "sg"]
# Validate the following
# 1. Create a new VM in a host which is almost fully utilized
# 2 Automatically places VM on the other host
@ -290,7 +291,7 @@ class TestAntiAffinityRules(cloudstackTestCase):
- Add host names to host_1,host_2 and IDs of VM 1,2 in the settings
class "anti_affinity" above.
"""
tags = ["advanced","vmware","eip","advancedns","basic","sg"]
tags = ["advanced", "vmware", "eip", "advancedns", "basic", "sg"]
# Validate the following
# 1. Deploy VMs on host 1 and 2
@ -382,10 +383,10 @@ class TestAntiAffinityRules(cloudstackTestCase):
self.apiclient,
zoneid=self.zone.id,
type='Routing',
id=host_1.id
id=host_1.id
)
if isinstance(hosts, list):
host = hosts[0]
host = hosts[0]
if host.resourcestate == 'Maintenance':
break
elif timeout == 0:
@ -491,7 +492,7 @@ class TestAffinityRules(cloudstackTestCase):
- Add host names to host_1,host_2 and IDs of VM 1,2 in the settings
class "affinity" above.
"""
tags = ["advanced","vmware","eip","advancedns","basic","sg"]
tags = ["advanced", "vmware", "eip", "advancedns", "basic", "sg"]
# Validate the following
# 1. Deploy VMs 2 VMs on same hosts

View File

@ -9,7 +9,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Automatically generated by addcopyright.py at 04/03/2012
""" P1 tests for Volumes
"""
@ -47,8 +47,8 @@ class Services:
"name": "Tiny Instance",
"displaytext": "Tiny Instance",
"cpunumber": 1,
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
"cpuspeed": 100, # in MHz
"memory": 64, # In MBs
},
"disk_offering": {
"displaytext": "Small",
@ -140,7 +140,7 @@ class TestAttachVolume(cloudstackTestCase):
def test_01_volume_attach(self):
"""Test Attach volumes (max capacity)
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Deploy a vm and create 5 data disk
# 2. Attach all the created Volume to the vm.
@ -160,7 +160,7 @@ class TestAttachVolume(cloudstackTestCase):
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.account.name
self.account.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
@ -179,7 +179,7 @@ class TestAttachVolume(cloudstackTestCase):
)
self.debug("Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
self.virtual_machine.id
))
# Check all volumes attached to same VM
list_volume_response = list_volumes(
@ -193,7 +193,7 @@ class TestAttachVolume(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
self.assertNotEqual(
list_volume_response,
None,
@ -243,7 +243,7 @@ class TestAttachVolume(cloudstackTestCase):
True,
"Check list VM response for valid list"
)
#Verify VM response to check whether VM deployment was successful
self.assertNotEqual(
len(vm_response),
@ -273,7 +273,7 @@ class TestAttachVolume(cloudstackTestCase):
True,
"Check list VM response for valid list"
)
#Verify VM response to check whether VM deployment was successful
self.assertNotEqual(
len(vm_response),
@ -292,7 +292,7 @@ class TestAttachVolume(cloudstackTestCase):
def test_02_volume_attach_max(self):
"""Test attach volumes (more than max) to an instance
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Attach one more data volume to VM (Already 5 attached)
@ -309,7 +309,7 @@ class TestAttachVolume(cloudstackTestCase):
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.account.name
self.account.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
@ -321,7 +321,7 @@ class TestAttachVolume(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
self.assertNotEqual(
list_volume_response,
None,
@ -331,7 +331,7 @@ class TestAttachVolume(cloudstackTestCase):
with self.assertRaises(Exception):
self.debug("Trying to Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
self.virtual_machine.id
))
self.virtual_machine.attach_volume(
self.apiclient,
@ -423,7 +423,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
def test_01_volume_attach_detach(self):
"""Test Volume attach/detach to VM (5 data volumes)
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Deploy a vm and create 5 data disk
@ -446,7 +446,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.account.name
self.account.account.name
))
self.cleanup.append(volume)
volumes.append(volume)
@ -461,7 +461,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
self.assertNotEqual(
list_volume_response,
None,
@ -469,7 +469,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
)
self.debug("Attach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
self.virtual_machine.id
))
# Attach volume to VM
self.virtual_machine.attach_volume(
@ -489,7 +489,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
self.assertNotEqual(
list_volume_response,
None,
@ -505,7 +505,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
for volume in volumes:
self.debug("Detach volume: %s to VM: %s" % (
volume.id,
self.virtual_machine.id
self.virtual_machine.id
))
self.virtual_machine.detach_volume(
self.apiclient,
@ -527,7 +527,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
True,
"Check list VM response for valid list"
)
self.assertNotEqual(
len(vm_response),
0,
@ -539,7 +539,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
'Running',
"Check the state of VM"
)
# Stop VM
self.debug("Stopping the VM: %s" % self.virtual_machine.id)
self.virtual_machine.stop(self.apiclient)
@ -671,7 +671,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
def test_01_volume_iso_attach(self):
"""Test Volumes and ISO attach
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Create and attach 5 data volumes to VM
@ -690,7 +690,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
)
self.debug("Created volume: %s for account: %s" % (
volume.id,
self.account.account.name
self.account.account.name
))
# Check List Volume response for newly created volume
list_volume_response = list_volumes(
@ -743,7 +743,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
domainid=self.account.account.domainid,
)
self.debug("Created ISO with ID: %s for account: %s" % (
iso.id,
iso.id,
self.account.account.name
))
@ -775,7 +775,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
True,
"Check list VM response for valid list"
)
self.assertNotEqual(
len(vm_response),
0,
@ -867,7 +867,7 @@ class TestVolumes(cloudstackTestCase):
def test_01_attach_volume(self):
"""Attach a created Volume to a Running VM
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Create a data volume.
# 2. List Volumes should not have vmname and virtualmachineid fields in
@ -951,7 +951,7 @@ class TestVolumes(cloudstackTestCase):
def test_02_detach_volume(self):
"""Detach a Volume attached to a VM
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. Data disk should be detached from instance
@ -976,7 +976,7 @@ class TestVolumes(cloudstackTestCase):
True,
"Check list volumes response for valid list"
)
self.assertNotEqual(
list_volume_response,
None,
@ -999,7 +999,7 @@ class TestVolumes(cloudstackTestCase):
def test_03_delete_detached_volume(self):
"""Delete a Volume unattached to an VM
"""
tags = ["advanced","advancedns"]
tags = ["advanced", "advancedns"]
# Validate the following
# 1. volume should be deleted successfully and listVolume should not
# contain the deleted volume details.