diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py index 468a9a7eeb5..594ac283586 100644 --- a/test/integration/component/test_accounts.py +++ b/test/integration/component/test_accounts.py @@ -23,6 +23,7 @@ from integration.lib.utils import * from integration.lib.base import * from integration.lib.common import * from marvin.remoteSSHClient import remoteSSHClient +from nose.plugins.attrib import attr import datetime @@ -42,7 +43,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "user": { "email": "user@test.com", @@ -51,7 +52,7 @@ class Services: "username": "User", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -75,7 +76,7 @@ class Services: "template": { "displaytext": "Public Template", "name": "Public template", - "ostypeid": 'aaf6e8c9-b609-441d-9ebd-b4eaa030a275', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2", "hypervisor": 'XenServer', "format": 'VHD', @@ -83,7 +84,7 @@ class Services: "ispublic": True, "isextractable": True, }, - "ostypeid": 'aaf6e8c9-b609-441d-9ebd-b4eaa030a275', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, diff --git a/test/integration/component/test_blocker_bugs.py b/test/integration/component/test_blocker_bugs.py index 7762efb5125..2285afa8e89 100644 --- a/test/integration/component/test_blocker_bugs.py +++ b/test/integration/component/test_blocker_bugs.py @@ -17,6 +17,7 @@ """ Tests for Blocker bugs """ import marvin +from nose.plugins.attrib import attr from integration.lib.base import * from integration.lib.utils import * from integration.lib.common import * @@ -43,7 +44,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -75,7 +76,7 @@ class Services: "templates": { "displaytext": 'Template from snapshot', "name": 'Template from snapshot', - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2", "hypervisor": 'XenServer', @@ -97,7 +98,7 @@ class Services: "endport": 22, "protocol": "TCP" }, - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "mode": 'advanced', @@ -1071,6 +1072,7 @@ class TestTemplates(cloudstackTestCase): return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns", "basic", "sg", "eip"]) def test_01_check_template_size(self): """TS_BUG_009-Test the size of template created from root disk @@ -1098,6 +1100,7 @@ class TestTemplates(cloudstackTestCase): ) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns", "basic", "sg", "eip"]) def test_02_check_size_snapshotTemplate(self): """TS_BUG_010-Test check size of snapshot and template @@ -1178,6 +1181,7 @@ class TestTemplates(cloudstackTestCase): ) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns", "basic", "sg", "eip"]) def test_03_resuse_template_name(self): """TS_BUG_011-Test Reusing deleted template name diff --git a/test/integration/component/test_egress_rules.py b/test/integration/component/test_egress_rules.py index b72049a8a39..982f036bdf7 100644 --- a/test/integration/component/test_egress_rules.py +++ b/test/integration/component/test_egress_rules.py @@ -19,6 +19,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from marvin.remoteSSHClient import remoteSSHClient @@ -49,7 +50,7 @@ class Services: "username": "test", # Random characters are appended in create account to # ensure unique username generated each time - "password": "fr3sca", + "password": "password", }, "virtual_machine": { # Create a small virtual machine instance with disk offering @@ -114,10 +115,10 @@ class Services: }, "mgmt_server": { "username": "root", - "password": "fr3sca", + "password": "password", "ipaddress": "192.168.100.21" }, - "ostypeid": '85cb528f-72ed-4df9-ac6a-f6ccf0892ff2', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # CentOS 5.3 (64-bit) "sleep": 60, "timeout": 10, @@ -2222,7 +2223,8 @@ class TestEgressAfterHostMaintainance(cloudstackTestCase): return - @attr(tags = ["sg", "eip"]) + @attr(speed = "slow") + @attr(tags = ["sg", "eip", "maintenance"]) def test_egress_after_host_maintainance(self): """Test maintenance case for egress """ diff --git a/test/integration/component/test_eip_elb.py b/test/integration/component/test_eip_elb.py index 2b81691b0a4..7c28c3d2343 100644 --- a/test/integration/component/test_eip_elb.py +++ b/test/integration/component/test_eip_elb.py @@ -19,6 +19,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -80,7 +81,7 @@ class Services: "username": 'nsroot', "password": 'nsroot' }, - "ostypeid": '593341d7-879b-451e-804c-0c01bdea10c1', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -182,7 +183,7 @@ class TestEIP(cloudstackTestCase): @attr(tags = ["eip"]) - @unittest.skip("skipped") + @unittest.skip("skipped - Framework DB Exception") def test_01_eip_by_deploying_instance(self): """Test EIP by deploying an instance """ @@ -350,7 +351,7 @@ class TestEIP(cloudstackTestCase): return @attr(tags = ["eip"]) - @unittest.skip("skipped") + @unittest.skip("skipped - Framework DB Exception") def test_02_acquire_ip_enable_static_nat(self): """Test associate new IP and enable static NAT for new IP and the VM """ @@ -495,7 +496,7 @@ class TestEIP(cloudstackTestCase): return @attr(tags = ["eip"]) - @unittest.skip("skipped") + @unittest.skip("skipped - Framework DB Exception") def test_03_disable_static_nat(self): """Test disable static NAT and release EIP acquired """ @@ -695,7 +696,7 @@ class TestEIP(cloudstackTestCase): return @attr(tags = ["eip"]) - @unittest.skip("skipped") + @unittest.skip("skipped - Framework DB Exception") def test_04_disable_static_nat_system(self): """Test disable static NAT with system = True """ @@ -765,7 +766,7 @@ class TestEIP(cloudstackTestCase): return @attr(tags = ["eip"]) - @unittest.skip("skipped") + @unittest.skip("skipped - Framework DB Exception") def test_05_destroy_instance(self): """Test EIO after destroying instance """ diff --git a/test/integration/component/test_high_availability.py b/test/integration/component/test_high_availability.py deleted file mode 100644 index eda07011570..00000000000 --- a/test/integration/component/test_high_availability.py +++ /dev/null @@ -1,1097 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -""" P1 tests for high availability -""" -#Import Local Modules -import marvin -from marvin.cloudstackTestCase import * -from marvin.cloudstackAPI import * -from integration.lib.utils import * -from integration.lib.base import * -from integration.lib.common import * -from marvin.remoteSSHClient import remoteSSHClient -import datetime - - -class Services: - """Test network offering Services - """ - - def __init__(self): - self.services = { - "account": { - "email": "test@test.com", - "firstname": "HA", - "lastname": "HA", - "username": "HA", - # Random characters are appended for unique - # username - "password": "password", - }, - "service_offering": { - "name": "Tiny Instance", - "displaytext": "Tiny Instance", - "cpunumber": 1, - "cpuspeed": 100, # in MHz - "memory": 64, # In MBs - }, - "lbrule": { - "name": "SSH", - "alg": "roundrobin", - # Algorithm used for load balancing - "privateport": 22, - "publicport": 2222, - }, - "natrule": { - "privateport": 22, - "publicport": 22, - "protocol": "TCP" - }, - "fw_rule": { - "startport": 1, - "endport": 6000, - "cidr": '55.55.0.0/11', - # Any network (For creating FW rule) - }, - "virtual_machine": { - "displayname": "VM", - "username": "root", - "password": "password", - "ssh_port": 22, - "hypervisor": 'XenServer', - # Hypervisor type should be same as - # hypervisor type of cluster - "privateport": 22, - "publicport": 22, - "protocol": 'TCP', - }, - "templates": { - "displaytext": "Public Template", - "name": "Public template", - "ostypeid": '946b031b-0e10-4f4a-a3fc-d212ae2ea07f', - "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2", - "hypervisor": 'XenServer', - "format": 'VHD', - "isfeatured": True, - "ispublic": True, - "isextractable": True, - "templatefilter": 'self', - }, - "ostypeid": '946b031b-0e10-4f4a-a3fc-d212ae2ea07f', - # Cent OS 5.3 (64 bit) - "sleep": 60, - "timeout": 100, - "mode": 'advanced' - } - - -class TestHighAvailability(cloudstackTestCase): - - @classmethod - def setUpClass(cls): - - cls.api_client = super( - TestHighAvailability, - cls - ).getClsTestClient().getApiClient() - cls.services = Services().services - # Get Zone, Domain and templates - cls.domain = get_domain( - cls.api_client, - cls.services - ) - cls.zone = get_zone( - cls.api_client, - cls.services - ) - cls.pod = get_pod( - cls.api_client, - zoneid=cls.zone.id, - services=cls.services - ) - cls.template = get_template( - cls.api_client, - cls.zone.id, - cls.services["ostypeid"] - ) - cls.services["virtual_machine"]["zoneid"] = cls.zone.id - cls.services["virtual_machine"]["template"] = cls.template.id - - cls.service_offering = ServiceOffering.create( - cls.api_client, - cls.services["service_offering"], - offerha=True - ) - cls._cleanup = [ - cls.service_offering, - ] - return - - @classmethod - def tearDownClass(cls): - try: - #Cleanup resources used - cleanup_resources(cls.api_client, cls._cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return - - def setUp(self): - self.apiclient = self.testClient.getApiClient() - self.dbclient = self.testClient.getDbConnection() - self.account = Account.create( - self.apiclient, - self.services["account"], - admin=True, - domainid=self.domain.id - ) - self.cleanup = [self.account] - return - - def tearDown(self): - try: - #Clean up, terminate the created accounts, domains etc - cleanup_resources(self.apiclient, self.cleanup) - self.testClient.close() - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_01_host_maintenance_mode(self): - """Test host maintenance mode - """ - - - # Validate the following - # 1. Create Vms. Acquire IP. Create port forwarding & load balancing - # rules for Vms. - # 2. Host 1: put to maintenance mode. All Vms should failover to Host - # 2 in cluster. Vms should be in running state. All port forwarding - # rules and load balancing Rules should work. - # 3. After failover to Host 2 succeeds, deploy Vms. Deploy Vms on host - # 2 should succeed. - # 4. Host 1: cancel maintenance mode. - # 5. Host 2 : put to maintenance mode. All Vms should failover to - # Host 1 in cluster. - # 6. After failover to Host 1 succeeds, deploy VMs. Deploy Vms on - # host 1 should succeed. - - hosts = Host.list( - self.apiclient, - zoneid=self.zone.id, - resourcestate='Enabled', - type='Routing' - ) - self.assertEqual( - isinstance(hosts, list), - True, - "List hosts should return valid host response" - ) - self.assertEqual( - len(hosts), - 2, - "There must be two hosts present in a cluster" - ) - self.debug("Checking HA with hosts: %s, %s" % ( - hosts[0].name, - hosts[1].name - )) - self.debug("Deploying VM in account: %s" % self.account.account.name) - # Spawn an instance in that network - virtual_machine = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug("Deployed VM on host: %s" % vm.hostid) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in RUnning state" - ) - networks = Network.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(networks, list), - True, - "List networks should return valid list for the account" - ) - network = networks[0] - - self.debug("Associating public IP for account: %s" % - self.account.account.name) - public_ip = PublicIPAddress.create( - self.apiclient, - accountid=self.account.account.name, - zoneid=self.zone.id, - domainid=self.account.account.domainid, - networkid=network.id - ) - - self.debug("Associated %s with network %s" % ( - public_ip.ipaddress.ipaddress, - network.id - )) - self.debug("Creating PF rule for IP address: %s" % - public_ip.ipaddress.ipaddress) - nat_rule = NATRule.create( - self.apiclient, - virtual_machine, - self.services["natrule"], - ipaddressid=public_ip.ipaddress.id - ) - - self.debug("Creating LB rule on IP with NAT: %s" % - public_ip.ipaddress.ipaddress) - - # Open up firewall port for SSH - fw_rule = FireWallRule.create( - self.apiclient, - ipaddressid=public_ip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=['0.0.0.0/0'], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] - ) - # Create Load Balancer rule on IP already having NAT rule - lb_rule = LoadBalancerRule.create( - self.apiclient, - self.services["lbrule"], - ipaddressid=public_ip.ipaddress.id, - accountid=self.account.account.name - ) - self.debug("Created LB rule with ID: %s" % lb_rule.id) - - # Should be able to SSH VM - try: - self.debug("SSH into VM: %s" % virtual_machine.id) - ssh = virtual_machine.get_ssh_client( - ipaddress=public_ip.ipaddress.ipaddress) - except Exception as e: - self.fail("SSH Access failed for %s: %s" % \ - (virtual_machine.ipaddress, e) - ) - - first_host = vm.hostid - self.debug("Enabling maintenance mode for host %s" % vm.hostid) - cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd() - cmd.id = first_host - self.apiclient.prepareHostForMaintenance(cmd) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - - timeout = self.services["timeout"] - # Poll and check state of VM while it migrates from one host to another - while True: - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - - self.debug("VM 1 state: %s" % vm.state) - if vm.state in ["Stopping", - "Stopped", - "Running", - "Starting", - "Migrating"]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - second_host = vm.hostid - self.assertEqual( - vm.state, - "Running", - "VM should be in Running state after enabling host maintenance" - ) - # Should be able to SSH VM - try: - self.debug("SSH into VM: %s" % virtual_machine.id) - ssh = virtual_machine.get_ssh_client( - ipaddress=public_ip.ipaddress.ipaddress) - except Exception as e: - self.fail("SSH Access failed for %s: %s" % \ - (virtual_machine.ipaddress, e) - ) - self.debug("Deploying VM in account: %s" % self.account.account.name) - # Spawn an instance on other host - virtual_machine_2 = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine_2.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug("Deployed VM on host: %s" % vm.hostid) - self.debug("VM 2 state: %s" % vm.state) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - self.debug("Canceling host maintenance for ID: %s" % first_host) - cmd = cancelHostMaintenance.cancelHostMaintenanceCmd() - cmd.id = first_host - self.apiclient.cancelHostMaintenance(cmd) - self.debug("Maintenance mode canceled for host: %s" % first_host) - - self.debug("Enabling maintenance mode for host %s" % second_host) - cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd() - cmd.id = second_host - self.apiclient.prepareHostForMaintenance(cmd) - self.debug("Maintenance mode enabled for host: %s" % second_host) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - - # Poll and check the status of VMs - timeout = self.services["timeout"] - while True: - vms = VirtualMachine.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug( - "VM state after enabling maintenance on first host: %s" % - vm.state) - if vm.state in [ - "Stopping", - "Stopped", - "Running", - "Starting", - "Migrating" - ]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - - # Poll and check the status of VMs - timeout = self.services["timeout"] - while True: - vms = VirtualMachine.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[1] - self.debug( - "VM state after enabling maintenance on first host: %s" % - vm.state) - if vm.state in [ - "Stopping", - "Stopped", - "Running", - "Starting", - "Migrating" - ]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - - for vm in vms: - self.debug( - "VM states after enabling maintenance mode on host: %s - %s" % - (first_host, vm.state)) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - # Spawn an instance on other host - virtual_machine_3 = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine_3.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - - self.debug("Deployed VM on host: %s" % vm.hostid) - self.debug("VM 3 state: %s" % vm.state) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - # Should be able to SSH VM - try: - self.debug("SSH into VM: %s" % virtual_machine.id) - ssh = virtual_machine.get_ssh_client( - ipaddress=public_ip.ipaddress.ipaddress) - except Exception as e: - self.fail("SSH Access failed for %s: %s" % \ - (virtual_machine.ipaddress, e) - ) - - self.debug("Canceling host maintenance for ID: %s" % second_host) - cmd = cancelHostMaintenance.cancelHostMaintenanceCmd() - cmd.id = second_host - self.apiclient.cancelHostMaintenance(cmd) - self.debug("Maintenance mode canceled for host: %s" % second_host) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_02_host_maintenance_mode_with_activities(self): - """Test host maintenance mode with activities - """ - - - # Validate the following - # 1. Create Vms. Acquire IP. Create port forwarding & load balancing - # rules for Vms. - # 2. While activities are ongoing: Create snapshots, recurring - # snapshots, create templates, download volumes, Host 1: put to - # maintenance mode. All Vms should failover to Host 2 in cluster - # Vms should be in running state. All port forwarding rules and - # load balancing Rules should work. - # 3. After failover to Host 2 succeeds, deploy Vms. Deploy Vms on host - # 2 should succeed. All ongoing activities in step 3 should succeed - # 4. Host 1: cancel maintenance mode. - # 5. While activities are ongoing: Create snapshots, recurring - # snapshots, create templates, download volumes, Host 2: put to - # maintenance mode. All Vms should failover to Host 1 in cluster. - # 6. After failover to Host 1 succeeds, deploy VMs. Deploy Vms on - # host 1 should succeed. All ongoing activities in step 6 should - # succeed. - - hosts = Host.list( - self.apiclient, - zoneid=self.zone.id, - resourcestate='Enabled', - type='Routing' - ) - self.assertEqual( - isinstance(hosts, list), - True, - "List hosts should return valid host response" - ) - self.assertEqual( - len(hosts), - 2, - "There must be two hosts present in a cluster" - ) - self.debug("Checking HA with hosts: %s, %s" % ( - hosts[0].name, - hosts[1].name - )) - self.debug("Deploying VM in account: %s" % self.account.account.name) - # Spawn an instance in that network - virtual_machine = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug("Deployed VM on host: %s" % vm.hostid) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in RUnning state" - ) - networks = Network.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(networks, list), - True, - "List networks should return valid list for the account" - ) - network = networks[0] - - self.debug("Associating public IP for account: %s" % - self.account.account.name) - public_ip = PublicIPAddress.create( - self.apiclient, - accountid=self.account.account.name, - zoneid=self.zone.id, - domainid=self.account.account.domainid, - networkid=network.id - ) - - self.debug("Associated %s with network %s" % ( - public_ip.ipaddress.ipaddress, - network.id - )) - self.debug("Creating PF rule for IP address: %s" % - public_ip.ipaddress.ipaddress) - nat_rule = NATRule.create( - self.apiclient, - virtual_machine, - self.services["natrule"], - ipaddressid=public_ip.ipaddress.id - ) - - # Open up firewall port for SSH - fw_rule = FireWallRule.create( - self.apiclient, - ipaddressid=public_ip.ipaddress.id, - protocol=self.services["natrule"]["protocol"], - cidrlist=['0.0.0.0/0'], - startport=self.services["natrule"]["publicport"], - endport=self.services["natrule"]["publicport"] - ) - - self.debug("Creating LB rule on IP with NAT: %s" % - public_ip.ipaddress.ipaddress) - - # Create Load Balancer rule on IP already having NAT rule - lb_rule = LoadBalancerRule.create( - self.apiclient, - self.services["lbrule"], - ipaddressid=public_ip.ipaddress.id, - accountid=self.account.account.name - ) - self.debug("Created LB rule with ID: %s" % lb_rule.id) - - # Should be able to SSH VM - try: - self.debug("SSH into VM: %s" % virtual_machine.id) - ssh = virtual_machine.get_ssh_client( - ipaddress=public_ip.ipaddress.ipaddress) - except Exception as e: - self.fail("SSH Access failed for %s: %s" % \ - (virtual_machine.ipaddress, e) - ) - # Get the Root disk of VM - volumes = list_volumes( - self.apiclient, - virtualmachineid=virtual_machine.id, - type='ROOT', - listall=True - ) - volume = volumes[0] - self.debug( - "Root volume of VM(%s): %s" % ( - virtual_machine.name, - volume.name - )) - # Create a snapshot from the ROOTDISK - self.debug("Creating snapshot on ROOT volume: %s" % volume.name) - snapshot = Snapshot.create(self.apiclient, volumes[0].id) - self.debug("Snapshot created: ID - %s" % snapshot.id) - - snapshots = list_snapshots( - self.apiclient, - id=snapshot.id, - listall=True - ) - self.assertEqual( - isinstance(snapshots, list), - True, - "Check list response returns a valid list" - ) - self.assertNotEqual( - snapshots, - None, - "Check if result exists in list snapshots call" - ) - self.assertEqual( - snapshots[0].id, - snapshot.id, - "Check snapshot id in list resources call" - ) - - # Generate template from the snapshot - self.debug("Generating template from snapshot: %s" % snapshot.name) - template = Template.create_from_snapshot( - self.apiclient, - snapshot, - self.services["templates"] - ) - self.debug("Created template from snapshot: %s" % template.id) - - templates = list_templates( - self.apiclient, - templatefilter=\ - self.services["templates"]["templatefilter"], - id=template.id - ) - - self.assertEqual( - isinstance(templates, list), - True, - "List template call should return the newly created template" - ) - - self.assertEqual( - templates[0].isready, - True, - "The newly created template should be in ready state" - ) - - first_host = vm.hostid - self.debug("Enabling maintenance mode for host %s" % vm.hostid) - cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd() - cmd.id = first_host - self.apiclient.prepareHostForMaintenance(cmd) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - - timeout = self.services["timeout"] - # Poll and check state of VM while it migrates from one host to another - while True: - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - - self.debug("VM 1 state: %s" % vm.state) - if vm.state in ["Stopping", - "Stopped", - "Running", - "Starting", - "Migrating"]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - second_host = vm.hostid - self.assertEqual( - vm.state, - "Running", - "VM should be in Running state after enabling host maintenance" - ) - # Should be able to SSH VM - try: - self.debug("SSH into VM: %s" % virtual_machine.id) - ssh = virtual_machine.get_ssh_client( - ipaddress=public_ip.ipaddress.ipaddress) - except Exception as e: - self.fail("SSH Access failed for %s: %s" % \ - (virtual_machine.ipaddress, e) - ) - self.debug("Deploying VM in account: %s" % self.account.account.name) - # Spawn an instance on other host - virtual_machine_2 = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine_2.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug("Deployed VM on host: %s" % vm.hostid) - self.debug("VM 2 state: %s" % vm.state) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - self.debug("Canceling host maintenance for ID: %s" % first_host) - cmd = cancelHostMaintenance.cancelHostMaintenanceCmd() - cmd.id = first_host - self.apiclient.cancelHostMaintenance(cmd) - self.debug("Maintenance mode canceled for host: %s" % first_host) - - # Get the Root disk of VM - volumes = list_volumes( - self.apiclient, - virtualmachineid=virtual_machine_2.id, - type='ROOT', - listall=True - ) - volume = volumes[0] - self.debug( - "Root volume of VM(%s): %s" % ( - virtual_machine_2.name, - volume.name - )) - # Create a snapshot from the ROOTDISK - self.debug("Creating snapshot on ROOT volume: %s" % volume.name) - snapshot = Snapshot.create(self.apiclient, volumes[0].id) - self.debug("Snapshot created: ID - %s" % snapshot.id) - - snapshots = list_snapshots( - self.apiclient, - id=snapshot.id, - listall=True - ) - self.assertEqual( - isinstance(snapshots, list), - True, - "Check list response returns a valid list" - ) - self.assertNotEqual( - snapshots, - None, - "Check if result exists in list snapshots call" - ) - self.assertEqual( - snapshots[0].id, - snapshot.id, - "Check snapshot id in list resources call" - ) - - # Generate template from the snapshot - self.debug("Generating template from snapshot: %s" % snapshot.name) - template = Template.create_from_snapshot( - self.apiclient, - snapshot, - self.services["templates"] - ) - self.debug("Created template from snapshot: %s" % template.id) - - templates = list_templates( - self.apiclient, - templatefilter=\ - self.services["templates"]["templatefilter"], - id=template.id - ) - - self.assertEqual( - isinstance(templates, list), - True, - "List template call should return the newly created template" - ) - - self.assertEqual( - templates[0].isready, - True, - "The newly created template should be in ready state" - ) - - self.debug("Enabling maintenance mode for host %s" % second_host) - cmd = prepareHostForMaintenance.prepareHostForMaintenanceCmd() - cmd.id = second_host - self.apiclient.prepareHostForMaintenance(cmd) - self.debug("Maintenance mode enabled for host: %s" % second_host) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - - # Poll and check the status of VMs - timeout = self.services["timeout"] - while True: - vms = VirtualMachine.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - self.debug( - "VM state after enabling maintenance on first host: %s" % - vm.state) - if vm.state in ["Stopping", - "Stopped", - "Running", - "Starting", - "Migrating"]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - - # Poll and check the status of VMs - timeout = self.services["timeout"] - while True: - vms = VirtualMachine.list( - self.apiclient, - account=self.account.account.name, - domainid=self.account.account.domainid, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[1] - self.debug( - "VM state after enabling maintenance on first host: %s" % - vm.state) - if vm.state in ["Stopping", - "Stopped", - "Running", - "Starting", - "Migrating"]: - if vm.state == "Running": - break - else: - time.sleep(self.services["sleep"]) - timeout = timeout - 1 - else: - self.fail( - "VM migration from one-host-to-other failed while enabling maintenance" - ) - - for vm in vms: - self.debug( - "VM states after enabling maintenance mode on host: %s - %s" % - (first_host, vm.state)) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - # Spawn an instance on other host - virtual_machine_3 = VirtualMachine.create( - self.apiclient, - self.services["virtual_machine"], - accountid=self.account.account.name, - domainid=self.account.account.domainid, - serviceofferingid=self.service_offering.id - ) - vms = VirtualMachine.list( - self.apiclient, - id=virtual_machine_3.id, - listall=True - ) - self.assertEqual( - isinstance(vms, list), - True, - "List VMs should return valid response for deployed VM" - ) - self.assertNotEqual( - len(vms), - 0, - "List VMs should return valid response for deployed VM" - ) - vm = vms[0] - - self.debug("Deployed VM on host: %s" % vm.hostid) - self.debug("VM 3 state: %s" % vm.state) - self.assertEqual( - vm.state, - "Running", - "Deployed VM should be in Running state" - ) - - self.debug("Canceling host maintenance for ID: %s" % second_host) - cmd = cancelHostMaintenance.cancelHostMaintenanceCmd() - cmd.id = second_host - self.apiclient.cancelHostMaintenance(cmd) - self.debug("Maintenance mode canceled for host: %s" % second_host) - - self.debug("Waiting for SSVMs to come up") - wait_for_ssvms( - self.apiclient, - zoneid=self.zone.id, - podid=self.pod.id, - ) - return diff --git a/test/integration/component/test_network_offering.py b/test/integration/component/test_network_offering.py index 7cd2dcb33c3..135c4949222 100644 --- a/test/integration/component/test_network_offering.py +++ b/test/integration/component/test_network_offering.py @@ -19,6 +19,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -41,7 +42,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -136,7 +137,7 @@ class Services: "publicport": 22, "protocol": 'TCP', }, - "ostypeid": '9958b10f-9e5d-4ef1-908d-a047372d823b', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -1431,6 +1432,7 @@ class TestNetworkUpgrade(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(speed = "slow") @attr(tags = ["advancedns"]) def test_01_nwupgrade_netscaler_conserve_on(self): """Test Nw upgrade to netscaler lb service and conserve mode ON @@ -1630,6 +1632,7 @@ class TestNetworkUpgrade(cloudstackTestCase): ) return + @attr(speed = "slow") @attr(tags = ["advancedns"]) def test_02_nwupgrade_netscaler_conserve_off(self): """Test Nw upgrade to netscaler lb service and conserve mode OFF diff --git a/test/integration/component/test_project_configs.py b/test/integration/component/test_project_configs.py index 6134ecc3010..c82bf134871 100644 --- a/test/integration/component/test_project_configs.py +++ b/test/integration/component/test_project_configs.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -43,7 +44,7 @@ class Services: "mgmt_server": { "ipaddress": '192.168.100.21', "username": 'root', - "password": 'fr3sca', + "password": 'password', "port": 22, }, "account": { @@ -53,7 +54,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "user": { "email": "administrator@clogeny.com", @@ -62,7 +63,7 @@ class Services: "username": "User", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -86,7 +87,7 @@ class Services: "template": { "displaytext": "Public Template", "name": "Public template", - "ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2", "hypervisor": 'XenServer', "format": 'VHD', @@ -97,7 +98,7 @@ class Services: "configs": { "project.invite.timeout": 300, }, - "ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -173,7 +174,8 @@ class TestUserProjectCreation(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(configuration = "allow.user.create.projects") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_admin_project_creation(self): """Test create project as a domain admin and domain user """ @@ -338,7 +340,8 @@ class TestProjectCreationNegative(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(configuration = "allow.user.create.projects") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) @unittest.skip("Known bug-able to create project as a domain user") def test_user_project_creation(self): """Test create project as a domain admin and domain user @@ -479,7 +482,7 @@ class TestProjectInviteRequired(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_add_user_to_project(self): """Add user to project when 'project.invite.required' is false""" @@ -630,10 +633,11 @@ class TestProjectInviteRequiredTrue(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(configuration = "project.invite.required") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) def test_add_user_to_project(self): """Add user to project when 'project.invite.required' is true""" - tags = ["advanced", "basic", "sg", "eip", "advancedns"] # Validate the following: # 1. Create a Project @@ -794,10 +798,11 @@ class TestProjectInviteTimeout(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(configuration = "project.invite.timeout") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_invitation_timeout(self): """Test global config project invitation timeout""" - tags = ["advanced", "basic", "sg", "eip", "advancedns"] # Validate the following: # 1. Set configuration to 5 mins @@ -919,10 +924,11 @@ class TestProjectInviteTimeout(cloudstackTestCase): ) return + @attr(configuration = "project.invite.timeout") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_02_invitation_timeout_after_expiry(self): """Test global config project invitation timeout""" - tags = ["advanced", "basic", "sg", "eip", "advancedns"] # Validate the following: # 1. Set configuration to 5 mins @@ -1049,11 +1055,11 @@ class TestProjectInviteTimeout(cloudstackTestCase): ) return + @attr(configuration = "project.invite.timeout") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_03_invite_after_expiry(self): """Test global config project invitation timeout""" - tags = ["advanced", "basic", "sg", "eip", "advancedns"] - # Validate the following: # 1. Set configuration to 5 mins # 2. Create a Project @@ -1178,11 +1184,11 @@ class TestProjectInviteTimeout(cloudstackTestCase): ) return + @attr(configuration = "project.invite.timeout") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_04_decline_invitation(self): """Test decline invitation""" - tags = ["advanced", "basic", "sg", "eip", "advancedns"] - # Validate the following: # 1. Set configuration to 5 mins # 2. Create a Project diff --git a/test/integration/component/test_project_limits.py b/test/integration/component/test_project_limits.py index e2bf2e2bdb2..2c6b7716403 100644 --- a/test/integration/component/test_project_limits.py +++ b/test/integration/component/test_project_limits.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -46,7 +47,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "user": { "email": "administrator@clogeny.com", @@ -55,7 +56,7 @@ class Services: "username": "User", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -85,10 +86,10 @@ class Services: "template": { "displaytext": "Cent OS Template", "name": "Cent OS Template", - "ostypeid": '471a4b5b-5523-448f-9608-7d6218995733', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', }, - "ostypeid": '471a4b5b-5523-448f-9608-7d6218995733', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -155,7 +156,7 @@ class TestProjectLimits(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_project_limits(self): """ Test project limits """ @@ -302,7 +303,7 @@ class TestProjectLimits(cloudstackTestCase): ) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) @unittest.skip("No provision for updating resource limits from account through API") def test_02_project_limits_normal_user(self): """ Test project limits @@ -526,7 +527,7 @@ class TestResourceLimitsProject(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_03_vm_per_project(self): """Test VM limit per project """ @@ -588,10 +589,10 @@ class TestResourceLimitsProject(cloudstackTestCase): ) return + @attr(tags = ["advanced", "eip", "advancedns", "simulator"]) def test_04_publicip_per_project(self): """Test Public IP limit per project """ - tags = ["advanced", "eip", "advancedns"] # Validate the following # 1. set max no of IPs per project to 2. # 2. Create an account in this domain @@ -673,10 +674,10 @@ class TestResourceLimitsProject(cloudstackTestCase): ) return + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_05_snapshots_per_project(self): """Test Snapshot limit per project """ - # Validate the following # 1. set max no of snapshots per project to 1. # 2. Create one snapshot in the project. Snapshot should be @@ -750,10 +751,10 @@ class TestResourceLimitsProject(cloudstackTestCase): ) return + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_06_volumes_per_project(self): """Test Volumes limit per project """ - # Validate the following # 1. set max no of volume per project to 1. # 2. Create 1 VM in this project @@ -799,10 +800,10 @@ class TestResourceLimitsProject(cloudstackTestCase): ) return + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) def test_07_templates_per_project(self): """Test Templates limit per project """ - tags = ["advanced", "basic", "sg", "eip", "advancedns"] # 1. set max no of templates per project to 1. # 2. Create a template in this project. Both template should be in # ready state diff --git a/test/integration/component/test_project_resources.py b/test/integration/component/test_project_resources.py index dce3432a7ba..a32ca74c2e5 100644 --- a/test/integration/component/test_project_resources.py +++ b/test/integration/component/test_project_resources.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -47,7 +48,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "user": { "email": "administrator@clogeny.com", @@ -56,7 +57,7 @@ class Services: "username": "User", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -86,7 +87,7 @@ class Services: "template": { "displaytext": "Cent OS Template", "name": "Cent OS Template", - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', "ispublic": False, }, @@ -129,7 +130,7 @@ class Services: "endport": 22, "cidrlist": '0.0.0.0/0', }, - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -206,7 +207,7 @@ class TestOfferings(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_service_offerings(self): """ Test service offerings in a project """ @@ -248,7 +249,7 @@ class TestOfferings(cloudstackTestCase): return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_02_project_disk_offerings(self): """ Test project disk offerings """ @@ -381,7 +382,7 @@ class TestNetwork(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_03_network_create(self): """ Test create network in project """ @@ -808,7 +809,8 @@ class TestSnapshots(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(speed = "slow") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_06_create_snapshots_in_project(self): """Test create snapshots in project """ diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py index a2731e31fa4..c171e3c7f8b 100644 --- a/test/integration/component/test_project_usage.py +++ b/test/integration/component/test_project_usage.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -40,7 +41,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "project": { "name": "Project", @@ -74,7 +75,7 @@ class Services: "templates": { "displaytext": 'Template', "name": 'Template', - "ostypeid": '471a4b5b-5523-448f-9608-7d6218995733', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2" }, @@ -86,7 +87,7 @@ class Services: "isextractable": True, "isfeatured": True, "ispublic": True, - "ostypeid": '471a4b5b-5523-448f-9608-7d6218995733', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', }, "lbrule": { "name": "SSH", @@ -104,7 +105,7 @@ class Services: "username": "test", "password": "test", }, - "ostypeid": '471a4b5b-5523-448f-9608-7d6218995733', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -191,7 +192,7 @@ class TestVmUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_vm_usage(self): """Test Create/Destroy VM and verify usage calculation """ @@ -402,7 +403,7 @@ class TestPublicIPUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "eip", "advancedns"]) + @attr(tags = ["advanced", "eip", "advancedns", "simulator"]) def test_01_public_ip_usage(self): """Test Assign new IP and verify usage calculation """ @@ -560,7 +561,7 @@ class TestVolumeUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_volume_usage(self): """Test Create/delete a volume and verify correct usage is recorded """ @@ -1075,7 +1076,7 @@ class TestLBRuleUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "eip", "advancedns"]) + @attr(tags = ["advanced", "eip", "advancedns", "simulator"]) def test_01_lb_usage(self): """Test Create/Delete a LB rule and verify correct usage is recorded """ @@ -1241,7 +1242,8 @@ class TestSnapshotUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(speed = "slow") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_snapshot_usage(self): """Test Create/Delete a manual snap shot and verify correct usage is recorded @@ -1433,7 +1435,7 @@ class TestNatRuleUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_nat_usage(self): """Test Create/Delete a PF rule and verify correct usage is recorded """ @@ -1616,7 +1618,7 @@ class TestVpnUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_vpn_usage(self): """Test Create/Delete a VPN and verify correct usage is recorded """ diff --git a/test/integration/component/test_projects.py b/test/integration/component/test_projects.py index 201ee4a5cb0..26d4a6f91c4 100644 --- a/test/integration/component/test_projects.py +++ b/test/integration/component/test_projects.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -43,7 +44,7 @@ class Services: "mgmt_server": { "ipaddress": '192.168.100.21', "username": 'root', - "password": 'fr3sca', + "password": 'password', "port": 22, }, "account": { @@ -53,7 +54,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "user": { "email": "administrator@clogeny.com", @@ -62,7 +63,7 @@ class Services: "username": "User", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "disk_offering": { "displaytext": "Tiny Disk Offering", @@ -91,7 +92,7 @@ class Services: "publicport": 22, "protocol": 'TCP', }, - "ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -167,7 +168,7 @@ class TestMultipleProjectCreation(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_create_multiple_projects_by_account(self): """ Verify an account can own multiple projects and can belong to multiple projects @@ -383,7 +384,7 @@ class TestCrossDomainAccountAdd(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_02_cross_domain_account_add(self): """ Verify No cross domain projects """ @@ -503,7 +504,7 @@ class TestDeleteAccountWithProject(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_03_delete_account_with_project(self): """ Test As long as the project exists, its owner can't be removed """ @@ -617,7 +618,7 @@ class TestDeleteDomainWithProject(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_04_delete_domain_with_project(self): """ Test Verify delete domain with cleanup=true should delete projects belonging to the domain @@ -762,7 +763,7 @@ class TestProjectOwners(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_05_user_project_owner_promotion(self): """ Test Verify a project user can be later promoted to become a owner @@ -904,7 +905,7 @@ class TestProjectOwners(cloudstackTestCase): ) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_06_max_one_project_owner(self): """ Test Verify there can only be one owner of a project at a time """ @@ -1194,7 +1195,7 @@ class TestProjectResources(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_07_project_resources_account_delete(self): """ Test Verify after an account is removed from the project, all his resources stay with the project. @@ -1310,7 +1311,7 @@ class TestProjectResources(cloudstackTestCase): ) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_08_cleanup_after_project_delete(self): """ Test accounts are unassigned from project after project deletion """ @@ -1524,7 +1525,7 @@ class TestProjectSuspendActivate(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_09_project_suspend(self): """ Test Verify after an account is removed from the project, all his resources stay with the project. @@ -1661,7 +1662,7 @@ class TestProjectSuspendActivate(cloudstackTestCase): ) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_10_project_activation(self): """ Test project activation after suspension """ diff --git a/test/integration/component/test_resource_limits.py b/test/integration/component/test_resource_limits.py index e0679a07e06..98550492a8d 100644 --- a/test/integration/component/test_resource_limits.py +++ b/test/integration/component/test_resource_limits.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -42,7 +43,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -72,10 +73,10 @@ class Services: "template": { "displaytext": "Cent OS Template", "name": "Cent OS Template", - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', }, - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -152,7 +153,7 @@ class TestResourceLimitsAccount(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_vm_per_account(self): """Test VM limit per account """ @@ -245,7 +246,7 @@ class TestResourceLimitsAccount(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_02_publicip_per_account(self): """Test Public IP limit per account """ @@ -388,7 +389,8 @@ class TestResourceLimitsAccount(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(speed = "slow") + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_03_snapshots_per_account(self): """Test Snapshot limit per account """ @@ -544,7 +546,7 @@ class TestResourceLimitsAccount(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_04_volumes_per_account(self): """Test Volumes limit per account """ @@ -916,7 +918,7 @@ class TestResourceLimitsDomain(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_vm_per_domain(self): """Test VM limit per domain """ @@ -982,7 +984,7 @@ class TestResourceLimitsDomain(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_publicip_per_domain(self): """Test Public IP limit per domain """ @@ -1052,7 +1054,8 @@ class TestResourceLimitsDomain(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(speed = "slow") + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_03_snapshots_per_domain(self): """Test Snapshot limit per domain """ @@ -1135,7 +1138,7 @@ class TestResourceLimitsDomain(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_04_volumes_per_domain(self): """Test Volumes limit per domain """ @@ -1297,198 +1300,3 @@ class TestResourceLimitsDomain(cloudstackTestCase): ) return - -class TestResources(cloudstackTestCase): - - @classmethod - def setUpClass(cls): - cls.api_client = super( - 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 - - @classmethod - def tearDownClass(cls): - try: - #Cleanup resources used - cleanup_resources(cls.api_client, cls._cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return - - def setUp(self): - self.apiclient = self.testClient.getApiClient() - self.dbclient = self.testClient.getDbConnection() - self.cleanup = [] - return - - def tearDown(self): - try: - #Clean up, terminate the created instance, volumes and snapshots - cleanup_resources(self.apiclient, self.cleanup) - except Exception as e: - raise Exception("Warning: Exception during cleanup : %s" % e) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_01_zones(self): - """Check the status of zones""" - - # 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 - ) - self.assertEqual( - isinstance(zones, list), - True, - "Check if listZones returns a valid response" - ) - for zone in zones: - self.assertEqual( - zone.allocationstate, - 'Enabled', - "Zone allocation state should be enabled" - ) - return - - @attr(tags = ["advanced", "advancedns"] - def test_02_pods(self): - """Check the status of pods""" - - # 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 - ) - self.assertEqual( - isinstance(pods, list), - True, - "Check if listPods returns a valid response" - ) - for pod in pods: - self.assertEqual( - pod.allocationstate, - 'Enabled', - "Pods allocation state should be enabled" - ) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_03_clusters(self): - """Check the status of clusters""" - - # 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 - ) - self.assertEqual( - isinstance(clusters, list), - True, - "Check if listClusters returns a valid response" - ) - for cluster in clusters: - self.assertEqual( - cluster.allocationstate, - 'Enabled', - "Clusters allocation state should be enabled" - ) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_04_hosts(self): - """Check the status of hosts""" - - # 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 - ) - self.assertEqual( - isinstance(hosts, list), - True, - "Check if listHosts returns a valid response" - ) - for host in hosts: - self.assertEqual( - host.state, - 'Up', - "Host should be in Up state and running" - ) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_05_storage_pools(self): - """Check the status of Storage pools""" - - # 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 - ) - self.assertEqual( - isinstance(storage_pools, list), - True, - "Check if listStoragePools returns a valid response" - ) - for storage_pool in storage_pools: - self.assertEqual( - storage_pool.state, - 'Up', - "storage pool should be in Up state and running" - ) - return - - @attr(tags = ["advanced", "advancedns"]) - def test_06_secondary_storage(self): - """Check the status of secondary storage""" - - # 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='SecondaryStorageVM', - listall=True - ) - self.assertEqual( - isinstance(sec_storages, list), - True, - "Check if listHosts returns a valid response" - ) - for sec_storage in sec_storages: - self.assertEqual( - sec_storage.state, - 'Up', - "Secondary storage should be in Up state" - ) - return diff --git a/test/integration/component/test_routers.py b/test/integration/component/test_routers.py index e42792c5a5c..dde8aa4b8b6 100644 --- a/test/integration/component/test_routers.py +++ b/test/integration/component/test_routers.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -57,7 +58,7 @@ class Services: }, "host": { "username": "root", - "password": "fr3sca", + "password": "password", "publicport": 22, }, "account": { @@ -88,7 +89,7 @@ class Services: "cidr": '55.55.0.0/11', # Any network (For creating FW rule }, - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Used for Get_Template : CentOS 5.3 (64 bit) "mode": 'advanced', # Networking mode: Advanced, basic } @@ -313,6 +314,7 @@ class TestRouterServices(cloudstackTestCase): ) return + @attr(configuration = "network.gc") @attr(tags = ["advanced"]) def test_02_NetworkGarbageCollection(self): """Test network garbage collection @@ -646,7 +648,7 @@ class TestRouterStopCreatePF(cloudstackTestCase): self._cleanup = [] return - @attr(tags = ["advanced"]) + @attr(tags = ["advanced", "advancedns"]) def test_01_RouterStopCreatePF(self): """Test router stop create port forwarding """ @@ -856,7 +858,7 @@ class TestRouterStopCreateLB(cloudstackTestCase): self._cleanup = [] return - @attr(tags = ["advanced"]) + @attr(tags = ["advanced", "advancedns"]) def test_01_RouterStopCreateLB(self): """Test router stop create Load balancing """ @@ -1066,7 +1068,7 @@ class TestRouterStopCreateFW(cloudstackTestCase): self._cleanup = [] return - @attr(tags = ["advanced"]) + @attr(tags = ["advanced", "advancedns"]) def test_01_RouterStopCreateFW(self): """Test router stop create Firewall rule """ diff --git a/test/integration/component/test_security_groups.py b/test/integration/component/test_security_groups.py index f68b3a771c0..1cad467416a 100644 --- a/test/integration/component/test_security_groups.py +++ b/test/integration/component/test_security_groups.py @@ -19,6 +19,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -49,7 +50,7 @@ class Services: "username": "test", # Random characters are appended in create account to # ensure unique username generated each time - "password": "fr3sca", + "password": "password", }, "virtual_machine": { # Create a small virtual machine instance with disk offering @@ -66,7 +67,7 @@ class Services: "host": { "publicport": 22, "username": "root", # Host creds for SSH - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -89,7 +90,7 @@ class Services: "endport": -1, "cidrlist": '0.0.0.0/0', }, - "ostypeid": '0c2c5d19-525b-41be-a8c3-c6607412f82b', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # CentOS 5.3 (64-bit) "sleep": 60, "timeout": 10, diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py index 717e9d9439e..b368b853c72 100644 --- a/test/integration/component/test_snapshots.py +++ b/test/integration/component/test_snapshots.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -39,7 +40,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -66,7 +67,7 @@ class Services: "mgmt_server": { "ipaddress": '192.168.100.21', "username": "root", - "password": "fr3sca", + "password": "password", "port": 22, }, "recurring_snapshot": { @@ -80,7 +81,7 @@ class Services: "templates": { "displaytext": 'Template', "name": 'Template', - "ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', }, "diskdevice": "/dev/xvda", @@ -93,7 +94,7 @@ class Services: "sub_lvl_dir2": "test2", "random_data": "random.data", - "ostypeid": '7ddbbbb5-bb09-40de-b038-ee78995788ea', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -163,6 +164,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_01_createVM_snapshotTemplate(self): """Test create VM, Snapshot and Template @@ -476,6 +478,7 @@ class TestAccountSnapshotClean(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_02_accountSnapshotClean(self): """Test snapshot cleanup after account deletion @@ -819,6 +822,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_03_snapshot_detachedDisk(self): """Test snapshot from detached disk @@ -1098,6 +1102,7 @@ class TestSnapshotLimit(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_04_snapshot_limit(self): """Test snapshot limit in snapshot policies @@ -1355,7 +1360,8 @@ class TestSnapshotEvents(cloudstackTestCase): except Exception as e: raise Exception("Warning: Exception during cleanup : %s" % e) return - + + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_05_snapshot_events(self): """Test snapshot events diff --git a/test/integration/component/test_templates.py b/test/integration/component/test_templates.py index ced8732e652..0aa60616fef 100644 --- a/test/integration/component/test_templates.py +++ b/test/integration/component/test_templates.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -43,7 +44,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -76,7 +77,7 @@ class Services: 0: { "displaytext": "Public Template", "name": "Public template", - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.vhd.bz2", "hypervisor": 'XenServer', "format": 'VHD', @@ -88,12 +89,12 @@ class Services: "template": { "displaytext": "Cent OS Template", "name": "Cent OS Template", - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', }, "templatefilter": 'self', "destzoneid": 2, # For Copy template (Destination zone) - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "sleep": 60, "timeout": 10, "mode": 'advanced', # Networking mode: Advanced, basic @@ -415,7 +416,7 @@ class TestTemplates(cloudstackTestCase): ) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "multizone"]) def test_02_copy_template(self): """Test for copy template from one zone to another""" @@ -528,6 +529,7 @@ class TestTemplates(cloudstackTestCase): ) return + @attr(speed = "slow") @attr(tags = ["advanced", "advancedns"]) def test_04_template_from_snapshot(self): """Create Template from snapshot diff --git a/test/integration/component/test_usage.py b/test/integration/component/test_usage.py index 6172e1ef3ea..e5684f8694b 100644 --- a/test/integration/component/test_usage.py +++ b/test/integration/component/test_usage.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -40,7 +41,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -70,7 +71,7 @@ class Services: "templates": { "displaytext": 'Template', "name": 'Template', - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "templatefilter": 'self', "url": "http://download.cloud.com/releases/2.0.0/UbuntuServer-10-04-64bit.qcow2.bz2" }, @@ -82,7 +83,7 @@ class Services: "isextractable": True, "isfeatured": True, "ispublic": True, - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', }, "lbrule": { "name": "SSH", @@ -100,7 +101,7 @@ class Services: "username": "test", "password": "test", }, - "ostypeid": '144f66aa-7f74-4cfe-9799-80cc21439cb3', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', # Cent OS 5.3 (64 bit) "sleep": 60, "timeout": 10, @@ -177,7 +178,7 @@ class TestVmUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_vm_usage(self): """Test Create/Destroy VM and verify usage calculation """ @@ -368,7 +369,7 @@ class TestPublicIPUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "eip", "advancedns"]) + @attr(tags = ["advanced", "eip", "advancedns", "simulator"]) def test_01_public_ip_usage(self): """Test Assign new IP and verify usage calculation """ @@ -515,7 +516,7 @@ class TestVolumeUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_volume_usage(self): """Test Create/delete a volume and verify correct usage is recorded """ @@ -696,8 +697,8 @@ class TestTemplateUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - def test_01_template_usage(self): @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + def test_01_template_usage(self): """Test Upload/ delete a template and verify correct usage is generated for the template uploaded """ @@ -990,7 +991,7 @@ class TestLBRuleUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "eip", "advancedns"]) + @attr(tags = ["advanced", "eip", "advancedns", "simulator"]) def test_01_lb_usage(self): """Test Create/Delete a LB rule and verify correct usage is recorded """ @@ -1145,7 +1146,8 @@ class TestSnapshotUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns"]) + @attr(speed = "slow") + @attr(tags = ["advanced", "basic", "sg", "eip", "advancedns", "simulator"]) def test_01_snapshot_usage(self): """Test Create/Delete a manual snap shot and verify correct usage is recorded @@ -1316,7 +1318,7 @@ class TestNatRuleUsage(cloudstackTestCase): raise Exception("Warning: Exception during cleanup : %s" % e) return - @attr(tags = ["advanced", "advancedns"]) + @attr(tags = ["advanced", "advancedns", "simulator"]) def test_01_nat_usage(self): """Test Create/Delete a PF rule and verify correct usage is recorded """ diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py index 1eccf095a33..998ba2c520f 100644 --- a/test/integration/component/test_volumes.py +++ b/test/integration/component/test_volumes.py @@ -18,6 +18,7 @@ """ #Import Local Modules import marvin +from nose.plugins.attrib import attr from marvin.cloudstackTestCase import * from marvin.cloudstackAPI import * from integration.lib.utils import * @@ -44,7 +45,7 @@ class Services: "username": "test", # Random characters are appended for unique # username - "password": "fr3sca", + "password": "password", }, "service_offering": { "name": "Tiny Instance", @@ -78,10 +79,10 @@ class Services: "name": "testISO", "url": "http://iso.linuxquestions.org/download/504/1819/http/gd4.tuwien.ac.at/dsl-4.4.10.iso", # Source URL where ISO is located - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', }, "sleep": 50, - "ostypeid": '5776c0d2-f331-42db-ba3a-29f1f8319bc9', + "ostypeid": '01853327-513e-4508-9628-f1f55db1946f', "mode": 'advanced', }