You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by gi...@apache.org on 2014/06/18 13:16:38 UTC
[1/2] CLOUDSTACK-6932: Removing redundant file test_escalations.py
Repository: cloudstack
Updated Branches:
refs/heads/4.4-forward 21e452ff4 -> 7e4303821
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7e430382/test/integration/component/test_escalations.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations.py b/test/integration/component/test_escalations.py
deleted file mode 100644
index 1b596a7..0000000
--- a/test/integration/component/test_escalations.py
+++ /dev/null
@@ -1,8202 +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.
-
-#Import Local Modules
-from marvin.cloudstackTestCase import cloudstackTestCase
-from marvin.cloudstackAPI import (createVolume,
- createTemplate)
-from marvin.lib.base import (Volume,
- Iso,
- VirtualMachine,
- Template,
- Snapshot,
- SecurityGroup,
- Account,
- Zone,
- Network,
- NetworkOffering,
- DiskOffering,
- ServiceOffering,
- VmSnapshot,
- SnapshotPolicy,
- SSHKeyPair,
- Resources,
- Configurations,
- VpnCustomerGateway,
- Hypervisor)
-from marvin.lib.common import (get_zone,
- get_domain,
- get_template,
- list_os_types)
-from marvin.lib.utils import (validateList,
- cleanup_resources,
- random_gen)
-from marvin.codes import (PASS, EMPTY_LIST)
-from nose.plugins.attrib import attr
-import time
-
-class TestVolumes(cloudstackTestCase):
-
- @classmethod
- def setUpClass(cls):
-
- cls.testClient = super(TestVolumes, cls).getClsTestClient()
- cls.api_client = cls.testClient.getApiClient()
- cls.services = cls.testClient.getParsedTestDataConfig()
- # Get Domain, Zone, Template
- cls.domain = get_domain(cls.api_client)
- cls.zone = get_zone(cls.api_client)
- cls.template = get_template(
- cls.api_client,
- cls.zone.id,
- cls.services["ostype"]
- )
- if cls.zone.localstorageenabled:
- cls.storagetype = 'local'
- cls.services["service_offerings"]["tiny"]["storagetype"] = 'local'
- cls.services["disk_offering"]["storagetype"] = 'local'
- else:
- cls.storagetype = 'shared'
- cls.services["service_offerings"]["tiny"]["storagetype"] = 'shared'
- cls.services["disk_offering"]["storagetype"] = 'shared'
-
- cls.services['mode'] = cls.zone.networktype
- cls.services["virtual_machine"]["hypervisor"] = 'XenServer'
- cls.services["virtual_machine"]["zoneid"] = cls.zone.id
- cls.services["virtual_machine"]["template"] = cls.template.id
- cls.services["custom_volume"]["zoneid"] = cls.zone.id
-
- # Creating Disk offering, Service Offering and Account
- cls.disk_offering = DiskOffering.create(
- cls.api_client,
- cls.services["disk_offering"]
- )
- cls.service_offering = ServiceOffering.create(
- cls.api_client,
- cls.services["service_offerings"]["tiny"]
- )
- cls.account = Account.create(
- cls.api_client,
- cls.services["account"],
- domainid=cls.domain.id
- )
-
- # Getting authentication for user in newly created Account
- cls.user = cls.account.user[0]
-
- cls.userapiclient = cls.testClient.getUserApiClient(cls.user.username, cls.domain.name)
-
- # Creating Virtual Machine
- cls.virtual_machine = VirtualMachine.create(
- cls.userapiclient,
- cls.services["virtual_machine"],
- accountid=cls.account.name,
- domainid=cls.account.domainid,
- serviceofferingid=cls.service_offering.id,
- )
- cls._cleanup = [
- cls.virtual_machine,
- cls.disk_offering,
- cls.service_offering,
- cls.account
- ]
-
- def setUp(self):
-
- self.apiClient = self.testClient.getApiClient()
- self.cleanup = []
-
- def tearDown(self):
- #Clean up, terminate the created volumes
- cleanup_resources(self.apiClient, self.cleanup)
- return
-
- @classmethod
- def tearDownClass(cls):
- try:
- cls.apiclient = super(TestVolumes, cls).getClsTestClient().getApiClient()
- cleanup_resources(cls.apiclient, cls._cleanup)
- except Exception as e:
- raise Exception("Warning: Exception during cleanup : %s" % e)
-
-
- def __verify_values(self, expected_vals, actual_vals):
- """
- @summary: Function to verify expected and actual values
- Step1: Initializing return flag to True
- Step1: Verifying length of expected and actual dictionaries is matching.
- If not matching returning false
- Step2: Listing all the keys from expected dictionary
- Step3: Looping through each key from step2 and verifying expected and actual dictionaries have same value
- If not making return flag to False
- Step4: returning the return flag after all the values are verified
- """
- return_flag = True
-
- if len(expected_vals) != len(actual_vals):
- return False
-
- keys = expected_vals.keys()
- for i in range(0, len(expected_vals)):
- exp_val = expected_vals[keys[i]]
- act_val = actual_vals[keys[i]]
- if exp_val == act_val:
- return_flag = return_flag and True
- else:
- return_flag = return_flag and False
- self.debug("expected Value: %s, is not matching with actual value: %s" % (
- exp_val,
- act_val
- ))
- return return_flag
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_01_list_volumes_pagination(self):
- """
- @summary: Test List Volumes pagination
-
- Step1: Listing all the volumes for a user
- Step2: Verifying listed volumes for account created at class level
- Step3: If number of volumes is less than (page size + 1), then creating them
- Step4: Listing all the volumes again after creation of volumes
- Step5: Verifying the length of the volumes is (page size + 1)
- Step6: Listing all the volumes in page1
- Step7: Verifying that the length of the volumes in page 1 is (page size)
- Step8: Listing all the volumes in page2
- Step9: Verifying that the length of the volumes in page 2 is 1
- Step10: Deleting the volume present in page 2
- Step11: Listing for the volumes on page 2
- Step12: Verifying that there are no volumes present in page 2
- """
- # Listing all the volumes for a user
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Verifying listed volumes for account created at class level
- self.assertIsNotNone(
- list_volumes_before,
- "create volume from VM failed at class setup method"
- )
- self.assertEqual(
- len(list_volumes_before),
- 1,
- "more than 1 volume created from VM at class level"
- )
-
- # If number of volumes is less than (pagesize + 1), then creating them
- for i in range(0, (self.services["pagesize"])):
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
- self.assertIsNotNone(
- volume_created,
- "Volume is not created"
- )
- if(i < (self.services["pagesize"] - 1)):
- self.cleanup.append(volume_created)
-
- self.assertEqual(
- self.services["volume"]["diskname"],
- volume_created.name,
- "Newly created volume name and the test data volume name are not matching"
- )
-
- # Listing all the volumes again after creation of volumes
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Verifying the length of the volumes is (page size + 1)
- self.assertEqual(
- len(list_volumes_after),
- (self.services["pagesize"] + 1),
- "Number of volumes created is not matching expected"
- )
-
- # Listing all the volumes in page1
- list_volumes_page1 = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- page=1,
- pagesize=self.services["pagesize"]
- )
- self.assertIsNotNone(
- list_volumes_page1,
- "No volumes found in Page 1"
- )
- # Verifying that the length of the volumes in page 1 is (page size)
- self.assertEqual(
- len(list_volumes_page1),
- self.services["pagesize"],
- "List Volume response is not matching with the page size length for page 1"
- )
-
- # Listing all the volumes in page2
- list_volumes_page2 = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- page=2,
- pagesize=self.services["pagesize"]
- )
- self.assertIsNotNone(
- list_volumes_page2,
- "No volumes found in Page 2"
- )
- # Verifying that the length of the volumes in page 2 is 1
- self.assertEqual(
- len(list_volumes_page2),
- 1,
- "List Volume response is not matching with the page size length for page 2"
- )
- volume_page2 = list_volumes_page2[0]
-
- # Verifying that the volume on page 2 is not present in page1
- for i in range(0, len(list_volumes_page1)):
- volume_page1 = list_volumes_page1[i]
- self.assertNotEquals(
- volume_page2.id,
- volume_page1.id,
- "Volume listed in page 2 is also listed in page 1"
- )
-
- # Deleting a single volume
- Volume.delete(volume_created, self.userapiclient)
-
- # Listing the volumes in page 2
- list_volume_response = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- page=2,
- pagesize=self.services["pagesize"]
- )
- # verifying that volume does not exists on page 2
- self.assertEqual(
- list_volume_response,
- None,
- "Volume was not deleted"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_02_list_volume_byid(self):
- """
- @summary: Test List Volumes with Id
-
- Step1: Listing all the volumes for a user before creating a data volume
- Step2: Verifying the length of the list as 1
- Step3: Creating a data volume
- Step4: Listing all the volumes for a user after creating a data volume
- Step5: Verifying the list volume size is increased by 1
- Step6: List the volumes by specifying root volume Id
- Step7: Verifying the details of the root volume
- Step8: List the volumes by specifying data volume Id
- Step9: Verifying the details of the data volume
- """
- # Listing all the volumes for a user before creating a data volume
- list_volumes_before = Volume.list(
- self.userapiclient,
- listall=self.services["listall"]
- )
- self.assertIsNotNone(
- list_volumes_before,
- "create volume from VM failed at class setup method")
- # Verifying the length of the list as 1
- self.assertEqual(
- len(list_volumes_before),
- 1,
- "more than 1 volume created at class level"
- )
- root_volume = list_volumes_before[0]
-
- # Creating a data volume
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
- self.assertIsNotNone(
- volume_created,
- "Volume is not created"
- )
- self.cleanup.append(volume_created)
-
- self.assertEqual(
- self.services["volume"]["diskname"],
- volume_created.name,
- "Newly created volume name and the test data volume name are not matching"
- )
- # Listing all the volumes for a user after creating a data volume
- list_volumes_after = Volume.list(
- self.userapiclient,
- listall=self.services["listall"]
- )
- self.assertIsNotNone(
- list_volumes_after,
- "Volume creation failed"
- )
- # Verifying the list volume size is increased by 1
- self.assertEqual(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "list volume is not matching with Number of volumes created"
- )
-
- # Listing a Root Volume by Id and verifying the volume details
- list_volumes_by_id = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=root_volume.id
- )
- self.assertIsNotNone(
- list_volumes_by_id,
- "Root volume is not listed"
- )
- self.assertEqual(
- 1,
- len(list_volumes_by_id),
- "list volume is not matching with Number of volumes created"
- )
- obtained_volume = list_volumes_by_id[0]
-
- #Creating expected and actual values dictionaries
- expected_dict = {
- "id":root_volume.id,
- "name":root_volume.name,
- "vmname":self.virtual_machine.name,
- "state":"Ready",
- "type":"ROOT",
- "zoneid":self.zone.id,
- "account":self.account.name,
- "storagetype":self.storagetype,
- "size":self.template.size
- }
- actual_dict = {
- "id":obtained_volume.id,
- "name":obtained_volume.name,
- "vmname":obtained_volume.vmname,
- "state":obtained_volume.state,
- "type":obtained_volume.type,
- "zoneid":obtained_volume.zoneid,
- "account":obtained_volume.account,
- "storagetype":obtained_volume.storagetype,
- "size":obtained_volume.size,
- }
- root_volume_status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- root_volume_status,
- "Listed Root Volume details are not as expected"
- )
- # Listing a Data Volume by Id and verifying the volume details
- list_volumes_by_id = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- self.assertIsNotNone(
- list_volumes_by_id,
- "Data volume is not listed"
- )
- self.assertEqual(
- len(list_volumes_by_id),
- 1,
- "list volume is not matching with Number of volumes created"
- )
- obtained_volume = list_volumes_by_id[0]
-
- #Creating expected and actual values dictionaries
- expected_dict = {
- "id":volume_created.id,
- "name":volume_created.name,
- "state":"Allocated",
- "type":"DATADISK",
- "zoneid":self.zone.id,
- "account":self.account.name,
- "storagetype":self.storagetype,
- "size":self.disk_offering.disksize
- }
- actual_dict = {
- "id":obtained_volume.id,
- "name":obtained_volume.name,
- "state":obtained_volume.state,
- "type":obtained_volume.type,
- "zoneid":obtained_volume.zoneid,
- "account":obtained_volume.account,
- "storagetype":obtained_volume.storagetype,
- "size":obtained_volume.size/(1024*1024*1024),
- }
- root_volume_status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- root_volume_status,
- "Listed Data Volume details are not as expected"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_03_data_volume_resize(self):
- """
- @summary: Test to verify creation and resize of data volume
-
- Step1: Listing the volumes for a user before creating data volume
- Step2: Creating a data volume
- Step3: Listing the volumes for a user after creating data volume
- Step4: Attaching and Detaching data volume created to Virtual Machine
- Step5: Verifying if there exists a disk offering with higher size
- If not present creating it
- Step6: Resizing data volume
- """
- # Listing volumes for a user before creating a volume
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Creating a data volume
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
- self.assertIsNotNone(volume_created, "Data volume creation failed")
-
- self.cleanup.append(volume_created)
-
- # Listing volumes for a user after creating data volume
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Data volume creation failed"
- )
-
- # Attaching data volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
-
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
-
- # Detaching data volume from Virtual Machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
-
- # Verifying if there exists a disk offering with higher size. If not present creating it
- list_disk_offerings = DiskOffering.list(self.apiClient)
-
- large_disk_offering_exists = False
- # Converting disk_size in bytes to GB
- current_disk_size = volume_created.size/(1024*1024*1024)
-
- for disk_offering in list_disk_offerings:
- if ((disk_offering.disksize > current_disk_size) and (not disk_offering.iscustomized) and disk_offering.storagetype == self.storagetype):
- new_disk_offering = disk_offering
- large_disk_offering_exists = True
- break
-
- if large_disk_offering_exists == False:
- new_size = (volume_created.size/(1024*1024*1024)) + 1
- self.services["disk_offering"]["disksize"] = new_size
- new_disk_offering = DiskOffering.create(
- self.apiClient,
- self.services["disk_offering"]
- )
- if new_disk_offering is not None:
- self.cleanup.append(new_disk_offering)
- else:
- new_size = new_disk_offering.disksize
-
- # Resizing data volume
- resized_volume = volume_created.resize(
- self.userapiclient,
- diskofferingid=new_disk_offering.id,
- shrinkok='false',
- )
- self.assertIsNotNone(resized_volume, "Resize Volume failed")
- # Verifying data volume size is increased
- self.assertEquals(
- new_size,
- (resized_volume.size/(1024*1024*1024)),
- "volume not resized to expected value"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_04_custom_volume_resize(self):
- """
- @summary: Test to verify creation and resize of custom volume
-
- Step1: Checking if Custom disk offering already exists.
- If not present then creating custom Disk Offering
- Step2: Listing the volumes for a user before creating custom volume
- Step3: Creating a custom volume
- Step4: Listing the volumes for a user after creating custom volume
- Step5: Attaching and Detaching custom volume created to Virtual Machine
- Step6: Resizing custom volume
- """
- # Listing all the disk offerings
- list_disk_offerings = DiskOffering.list(self.apiClient)
-
- custom_disk_offering_exists = False
-
- # Verifying if a custom disk offering already exists
- if list_disk_offerings is not None:
- for disk_offering in list_disk_offerings:
- if (disk_offering.iscustomized and disk_offering.storagetype == self.storagetype):
- custom_disk_offering = disk_offering
- custom_disk_offering_exists = True
- break
-
- # If a custom disk offering does not exists, then creating a custom disk offering
- if custom_disk_offering_exists == False:
- custom_disk_offering = DiskOffering.create(
- self.apiClient,
- self.services["disk_offering"],
- custom=True
- )
- if custom_disk_offering is not None:
- self.cleanup.append(custom_disk_offering)
-
- # Listing the volumes for a user before creating custom volume
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Creating a custom volume
- volume_created = Volume.create_custom_disk(
- self.userapiclient,
- self.services["custom_volume"],
- account=self.account.name,
- domainid=self.account.domainid,
- diskofferingid=custom_disk_offering.id
- )
- self.assertIsNotNone(
- volume_created,
- "Custom volume did not get created"
- )
-
- self.cleanup.append(volume_created)
-
- # Listing the volumes for a user after creating custom volume
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Verifyign that volume list is increased by 1 after creation of custion volume
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Custom volume did not get created"
- )
-
- # Attaching custom volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
-
- # Detaching custom volume from Virtual Machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
-
- # Resizing custom volume
- # Increasing custom disk size by 1
- new_size = self.services["custom_volume"]["customdisksize"] + 1
- resized_volume = volume_created.resize(
- self.userapiclient,
- diskofferingid=custom_disk_offering.id,
- shrinkok='false',
- size=new_size)
- self.assertIsNotNone(resized_volume, "Resize Volume failed")
- # Verifying that custom disk size is increased
- self.assertEquals(
- new_size,
- (resized_volume.size/(1024*1024*1024)),
- "volume not resized to expected value"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_05_volume_snapshot(self):
- """
- @summary: Test to verify creation of snapshot from volume and creation of template, volume from snapshot
-
- Step1: Creating a volume
- Step2: Attaching and Detaching custom volume created to Virtual Machine
- Step3: Creating Snapshot from volume
- Step4: Creating Volume from snapshot
- Step5: Creating Template from Snapshot
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
-
- self.assertIsNotNone(volume_created, "Volume not created")
-
- if volume_created is not None:
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
- # Attaching and Detaching custom volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
-
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- # Creating Snapshot from volume
- snapshot_created = Snapshot.create(
- self.userapiclient,
- volume_created.id,
- )
-
- self.assertIsNotNone(snapshot_created, "Snapshot not created")
-
- self.cleanup.append(snapshot_created)
-
- #Creating expected and actual values dictionaries
- expected_dict = {
- "id":volume_created.id,
- "intervaltype":"MANUAL",
- "snapshottype":"MANUAL",
- "volumetype":volume_created.type,
- "domain":self.domain.id
- }
- actual_dict = {
- "id":snapshot_created.volumeid,
- "intervaltype":snapshot_created.intervaltype,
- "snapshottype":snapshot_created.snapshottype,
- "volumetype":snapshot_created.volumetype,
- "domain":snapshot_created.domainid,
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Snapshot created from Volume details are not as expected"
- )
- # Creating Volume from snapshot
- cmd = createVolume.createVolumeCmd()
- cmd.name = "-".join([self.services["volume"]["diskname"], random_gen()])
- cmd.snapshotid = snapshot_created.id
-
- volume_from_snapshot = Volume(self.userapiclient.createVolume(cmd).__dict__)
-
- self.assertIsNotNone(
- volume_from_snapshot,
- "Volume creation failed from snapshot"
- )
- self.cleanup.append(volume_from_snapshot)
-
- #Creating expected and actual values dictionaries
- expected_dict = {
- "snapshotid":snapshot_created.id,
- "volumetype":snapshot_created.volumetype,
- "size":self.disk_offering.disksize,
- "accounr":self.account.name,
- "domain":self.domain.id,
- "storagetype":self.storagetype,
- "zone":self.zone.id
- }
- actual_dict = {
- "snapshotid":volume_from_snapshot.snapshotid,
- "volumetype":volume_from_snapshot.type,
- "size":volume_from_snapshot.size/(1024*1024*1024),
- "accounr":volume_from_snapshot.account,
- "domain":volume_from_snapshot.domainid,
- "storagetype":volume_from_snapshot.storagetype,
- "zone":volume_from_snapshot.zoneid,
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Volume created from Snapshot details are not as expected"
- )
- # Creating Template from Snapshot
- list_templates_before = Template.list(self.userapiclient, templatefilter='self')
-
- if list_templates_before is None:
- templates_before_size = 0
- else:
- templates_before_size = len(list_templates_before)
-
- cmd = createTemplate.createTemplateCmd()
- cmd.name = self.services["ostype"]
- cmd.displaytext = self.services["ostype"]
- cmd.ostypeid = self.template.ostypeid
- cmd.snapshotid = snapshot_created.id
- cmd.ispublic = False
- cmd.passwordenabled = False
-
- template_from_snapshot = Template(self.userapiclient.createTemplate(cmd).__dict__)
-
- self.assertIsNotNone(
- template_from_snapshot,
- "Template creation failed from snapshot"
- )
-
- self.cleanup.append(template_from_snapshot)
-
- #Creating expected and actual values dictionaries
- expected_dict = {
- "name":self.services["ostype"],
- "ostypeid":self.template.ostypeid,
- "type":"USER",
- "zone":self.zone.id,
- "domain":self.domain.id,
- "account":self.account.name,
- "passwordenabled":False,
- "ispublic":False,
- "size":self.disk_offering.disksize
- }
- actual_dict = {
- "name":template_from_snapshot.name,
- "ostypeid":template_from_snapshot.ostypeid,
- "type":template_from_snapshot.templatetype,
- "zone":template_from_snapshot.zoneid,
- "domain":template_from_snapshot.domainid,
- "account":template_from_snapshot.account,
- "passwordenabled":template_from_snapshot.passwordenabled,
- "ispublic":template_from_snapshot.ispublic,
- "size":template_from_snapshot.size/(1024*1024*1024)
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Template created from Snapshot details are not as expected"
- )
-
- list_templates_after = Template.list(self.userapiclient, templatefilter='self')
-
- self.assertEquals(
- templates_before_size + 1,
- len(list_templates_after),
- "Template creation failed from snapshot"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_06_volume_snapshot_policy_hourly(self):
- """
- @summary: Test to verify creation of Hourly Snapshot policies from volume
-
- Step1: Creating a Volume.
- Step2: Attaching volume created in Step2 to virtual machine
- Step3: Detaching the volume created in step2 from virtual machine
- Step4: Listing snapshot policies for a volume created in step1
- Step5: Creating Hourly snapshot policy
- Step6: Listing snapshot policies for a volume created in step1 again
- Step7: Verifyign that the list snapshot policy length is increased by 1
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
-
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
-
- # Attaching volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
-
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- # Detaching volume created from Virtual Machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- # Creating Hourly Snapshot Policy from volume
- self.services["recurring_snapshot"]["intervaltype"] = 'hourly'
- self.services["recurring_snapshot"]["schedule"] = '1'
-
- list_snapshot_policy_before = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- snapshot_policy_before_size = 0
-
- if list_snapshot_policy_before is not None:
- snapshot_policy_before_size = len(list_snapshot_policy_before)
-
- snapshot_policy_hourly = SnapshotPolicy.create(
- self.userapiclient,
- volume_created.id,
- self.services["recurring_snapshot"]
- )
- self.assertIsNotNone(
- snapshot_policy_hourly,
- "Hourly Snapshot policy creation failed"
- )
- #Creating expected and actual values dictionaries
- expected_dict = {
- "schedule":self.services["recurring_snapshot"]["schedule"],
- "intervaltype":0,
- "volumeid":volume_created.id
- }
- actual_dict = {
- "schedule":snapshot_policy_hourly.schedule,
- "intervaltype":snapshot_policy_hourly.intervaltype,
- "volumeid":snapshot_policy_hourly.volumeid
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Hourly Snapshot Policy details are not as expected"
- )
-
- list_snapshot_policy_after = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- self.assertIsNotNone(
- list_snapshot_policy_after,
- "Hourly Snapshot policy creation failed"
- )
- self.assertEquals(
- snapshot_policy_before_size + 1,
- len(list_snapshot_policy_after),
- "Hourly Snapshot policy creation failed"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_07_volume_snapshot_policy_daily(self):
- """
- @summary: Test to verify creation of Daily Snapshot policies from volume
-
- Step1: Creating a Volume.
- Step2: Attaching volume created in Step2 to virtual machine
- Step3: Detaching the volume created in step2 from virtual machine
- Step4: Listing snapshot policies for a volume created in step1
- Step5: Creating Daily snapshot policy
- Step6: Listing snapshot policies for a volume created in step1 again
- Step7: Verifyign that the list snapshot policy length is increased by 1
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
-
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
- # Attaching volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
-
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- # Detaching volume created from Virtual Machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- # Creating Daily Snapshot Policy from volume
- self.services["recurring_snapshot"]["intervaltype"] = 'daily'
- self.services["recurring_snapshot"]["schedule"] = '00:00'
-
- list_snapshot_policy_before = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- snapshot_policy_before_size = 0
-
- if list_snapshot_policy_before is not None:
- snapshot_policy_before_size = len(list_snapshot_policy_before)
-
- snapshot_policy_daily = SnapshotPolicy.create(
- self.userapiclient,
- volume_created.id,
- self.services["recurring_snapshot"]
- )
- self.assertIsNotNone(
- snapshot_policy_daily,
- "Daily Snapshot policy creation failed"
- )
- #Creating expected and actual values dictionaries
- expected_dict = {
- "schedule":self.services["recurring_snapshot"]["schedule"],
- "intervaltype":1,
- "volumeid":volume_created.id
- }
- actual_dict = {
- "schedule":snapshot_policy_daily.schedule,
- "intervaltype":snapshot_policy_daily.intervaltype,
- "volumeid":snapshot_policy_daily.volumeid
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Daily Snapshot Policy details are not as expected"
- )
-
- list_snapshot_policy_after = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- self.assertIsNotNone(
- list_snapshot_policy_after,
- "Daily Snapshot policy creation failed"
- )
- self.assertEquals(
- snapshot_policy_before_size + 1,
- len(list_snapshot_policy_after),
- "Daily Snapshot policy creation failed"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_08_volume_snapshot_policy_weekly(self):
- """
- @summary: Test to verify creation of Weekly Snapshot policies from volume
-
- Step1: Creating a Volume.
- Step2: Attaching volume created in Step2 to virtual machine
- Step3: Detaching the volume created in step2 from virtual machine
- Step4: Listing snapshot policies for a volume created in step1
- Step5: Creating Weekly snapshot policy
- Step6: Listing snapshot policies for a volume created in step1 again
- Step7: Verifyign that the list snapshot policy length is increased by 1
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
-
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
-
- # Attaching volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- # Detaching volume created to Virtual Machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- # Creating Weekly Snapshot Policy from volume
- self.services["recurring_snapshot"]["intervaltype"] = 'weekly'
- self.services["recurring_snapshot"]["schedule"] = '00:00:1'
-
- list_snapshot_policy_before = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- snapshot_policy_before_size = 0
-
- if list_snapshot_policy_before is not None:
- snapshot_policy_before_size = len(list_snapshot_policy_before)
-
- snapshot_policy_weekly = SnapshotPolicy.create(
- self.userapiclient,
- volume_created.id,
- self.services["recurring_snapshot"]
- )
- self.assertIsNotNone(
- snapshot_policy_weekly,
- "Weekly Snapshot policy creation failed"
- )
- #Creating expected and actual values dictionaries
- expected_dict = {
- "schedule":self.services["recurring_snapshot"]["schedule"],
- "intervaltype":2,
- "volumeid":volume_created.id
- }
- actual_dict = {
- "schedule":snapshot_policy_weekly.schedule,
- "intervaltype":snapshot_policy_weekly.intervaltype,
- "volumeid":snapshot_policy_weekly.volumeid
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Weekly Snapshot Policy details are not as expected"
- )
-
- list_snapshot_policy_after = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- self.assertIsNotNone(
- list_snapshot_policy_after,
- "Weekly Snapshot policy creation failed"
- )
- self.assertEquals(
- snapshot_policy_before_size + 1,
- len(list_snapshot_policy_after),
- "Weekly Snapshot policy creation failed"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_09_volume_snapshot_policy_monthly(self):
- """
- @summary: Test to verify creation of Monthly Snapshot policies from volume
-
- Step1: Creating a Volume.
- Step2: Attaching volume created in Step2 to virtual machine
- Step3: Detaching the volume created in step2 from virtual machine
- Step4: Listing snapshot policies for a volume created in step1
- Step5: Creating Monthly snapshot policy
- Step6: Listing snapshot policies for a volume created in step1 again
- Step7: Verifyign that the list snapshot policy length is increased by 1
- Step8: Deleting monthly snapshot policy created in step5
- Step9: List snapshot policies for a volume again
- Step10: Verifying that the list snapshot policy length is decreased by 1
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
- # Attaching and Detaching custom volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- # Creating Monthly Snapshot Policy from volume
- self.services["recurring_snapshot"]["intervaltype"] = 'monthly'
- self.services["recurring_snapshot"]["schedule"] = '00:00:1'
-
- list_snapshot_policy_before = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- snapshot_policy_before_size = 0
-
- if list_snapshot_policy_before is not None:
- snapshot_policy_before_size = len(list_snapshot_policy_before)
-
- snapshot_policy_monthly = SnapshotPolicy.create(
- self.userapiclient,
- volume_created.id,
- self.services["recurring_snapshot"])
- self.assertIsNotNone(
- snapshot_policy_monthly,
- "Monthly Snapshot policy creation failed"
- )
- #Creating expected and actual values dictionaries
- expected_dict = {
- "schedule":self.services["recurring_snapshot"]["schedule"],
- "intervaltype":3,
- "volumeid":volume_created.id
- }
- actual_dict = {
- "schedule":snapshot_policy_monthly.schedule,
- "intervaltype":snapshot_policy_monthly.intervaltype,
- "volumeid":snapshot_policy_monthly.volumeid
- }
- status = self.__verify_values(
- expected_dict,
- actual_dict
- )
- self.assertEqual(
- True,
- status,
- "Monthly Snapshot Policy details are not as expected"
- )
-
- list_snapshot_policy_after = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- self.assertIsNotNone(
- list_snapshot_policy_after,
- "Monthly Snapshot policy creation failed"
- )
- self.assertEquals(
- snapshot_policy_before_size + 1,
- len(list_snapshot_policy_after),
- "Monthly Snapshot policy creation failed"
- )
- # Deleting monthly snapshot policy
- SnapshotPolicy.delete(snapshot_policy_monthly, self.userapiclient)
-
- list_snapshot_policies = SnapshotPolicy.list(self.userapiclient, volumeid=volume_created.id)
-
- self.assertIsNone(
- list_snapshot_policies,
- "Deletion of Monthly Snapshot policy failed"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_10_volume_snapshots_pagination(self):
- """
- @summary: Test to verify pagination of snapshots for Volume
-
- Step1: Creating a Volume.
- Step2: Attaching volume created in Step2 to virtual machine
- Step3: Detaching the volume created in step2 from virtual machine
- Step4: Listing all the snapshots for a volume
- Step5: Creating Pagesize + 1 number of snapshots for a volume
- Step6: Listing all the snapshots for a volume
- Step7: Verifying that there are pagesize + 1 number of snapshots listsed
- Step8: Listing all the snapshots in page 1
- Step9: Listing all the snapshots in page 2
- Step10: Deleting the snapshot present in page 2
- Step11: Listign the snapshots from page 2 again and verifyign that list returns none
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- # Creating a Volume
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
- #Attaching volume to virtual machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- #Detaching volume from virtual machine
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
-
- #Creating 3 Snapshots from volume
- list_snapshot_before = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"]
- )
- self.assertIsNone(
- list_snapshot_before,
- "Newly created volume is already having snapshots"
- )
-
- list_snapshot_before_size = 0
- for i in range(0, 3):
- snapshot_created = Snapshot.create(
- self.userapiclient,
- volume_created.id,
- )
- self.assertIsNotNone(snapshot_created, "Snapshot not created")
- self.cleanup.append(snapshot_created)
-
- self.assertEquals(
- volume_created.id,
- snapshot_created.volumeid,
- "Snapshot not created for given volume"
- )
-
- list_snapshot_after = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"]
- )
- self.assertEqual(
- list_snapshot_before_size+3,
- len(list_snapshot_after),
- "Number of snapshots created is not matching expected"
- )
- #Listing all the snapshots in page1
- list_snapshots_page1 = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"],
- page=1,
- pagesize=2
- )
- self.assertEqual(
- 2,
- len(list_snapshots_page1),
- "List snapshots response is not matching with the page size length for page 1"
- )
-
- #Listing all the snapshots in page2 and ensuring only 1 snapshot is present
- list_snapshots_page2 = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"],
- page=2,
- pagesize=2
- )
- self.assertEqual(
- len(list_snapshots_page2),
- 1,
- "List snapshots response is not matching with the page size length for page 2"
- )
- snapshot_page2 = list_snapshots_page2[0]
-
- # Verifying that the snapshot on page 2 is not present in page1
- for i in range(0, len(list_snapshots_page1)):
- snapshot_page1 = list_snapshots_page1[i]
- self.assertNotEquals(
- snapshot_page2.id,
- snapshot_page1.id,
- "Snapshot listed in page 2 is also listed in page 1"
- )
- # Deleting a single snapshot and verifying that snapshot does not exists on page 2
- Snapshot.delete(snapshot_created, self.userapiclient)
-
- list_snapshot_page2 = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"],
- page=2,
- pagesize=2
- )
- self.assertEqual(
- None,
- list_snapshot_page2,
- "Snapshot was not deleted"
- )
- list_snapshot_page1 = Snapshot.list(
- self.userapiclient,
- volumeid=volume_created.id,
- listall=self.services["listall"],
- page=1,
- pagesize=2
- )
- self.assertEqual(
- 2,
- len(list_snapshot_page1),
- "Snapshots on page 1 are not matching"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_11_volume_extract(self):
- """
- @summary: Test to verify extract/download a Volume
-
- Step1: Listing Volumes before creating a Volume
- Step2: Creating a Volume.
- Step3: Verifying that created volume is not none and adding to clean up
- Step4: Listing the volumes after creation
- Step5: Verifying that the list volume size is increased by 1
- Step6: Attaching volume created in Step2 to virtual machine
- Step7: Detaching the volume created in step2 from virtual machine
- Step8: Extracting/Downloadign the volume
- Step9: Verifyign that a download URL is created for volume download
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertIsNotNone(
- list_volumes_before,
- "volume not created for the vm launched at class level"
- )
- volume_created = Volume.create(
- self.userapiclient,
- self.services["volume"],
- zoneid=self.zone.id,
- diskofferingid=self.disk_offering.id
- )
-
- self.assertIsNotNone(volume_created, "Volume not created")
- self.cleanup.append(volume_created)
-
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertIsNotNone(
- list_volumes_after,
- "volume creation failed"
- )
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "Volume not created"
- )
- #Attaching and Detaching volume created to Virtual Machine
- self.virtual_machine.attach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- attached_volume = list_volumes[0]
-
- self.assertIsNotNone(
- attached_volume.vmname,
- "VM is not attached to Volume"
- )
- self.assertEquals(
- self.virtual_machine.name,
- attached_volume.vmname,
- "VM Name is not matching with attached vm"
- )
- self.virtual_machine.detach_volume(
- self.userapiclient,
- volume_created
- )
- list_volumes = Volume.list(
- self.userapiclient,
- listall=self.services["listall"],
- id=volume_created.id
- )
- detached_volume = list_volumes[0]
- self.assertIsNone(
- detached_volume.vmname,
- "VM is not detached from volume"
- )
- #Extract/Download the volume
- self.services["mode"] = "HTTP_DOWNLOAD"
-
- extract_volume_response = Volume.extract(
- self.userapiclient,
- volume_created.id,
- self.zone.id,
- self.services["mode"]
- )
- self.assertIsNotNone(extract_volume_response, "Extract/Download volume failed")
-
- self.assertEquals(
- "DOWNLOAD_URL_CREATED",
- extract_volume_response.state,
- "Failed to create Download URL"
- )
- self.assertIsNotNone(
- extract_volume_response.url,
- "Extract/Download volume URL is NULL"
- )
- self.assertTrue(
- (extract_volume_response.url.find("https://")!=-1),
- "Extract/Download volume URL doesnot contain https://"
- )
- self.assertEquals(
- volume_created.id,
- extract_volume_response.id,
- "Extracted/Downloaded volume is not matching with original volume"
- )
- return
-
- @attr(tags=["advanced", "basic", "provisioning"])
- def test_12_volume_upload(self):
- """
- @summary: Test to verify upload volume
-
- Step1: Listing the volumes for a user before uploading volume
- Step2: Uploading a volume
- Step3: Listing the volumes for a user after uploading data volume
- Step4: Verifying that the list volume length after upload is increased by 1
- """
- list_volumes_before = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertIsNotNone(
- list_volumes_before,
- "volume not created for the vm launched at class level"
- )
- #Uploading a Volume
- volume_uploaded = Volume.upload(
- self.userapiclient,
- self.services["upload_volume"],
- self.zone.id
- )
- self.assertIsNotNone(volume_uploaded, "volume uploading failed")
-
- self.assertEquals(
- self.services["upload_volume"]["diskname"],
- volume_uploaded.name,
- "Uploaded volume name is not matching with name provided while uploading")
-
- #Listing the volumes for a user after uploading data volume
- list_volumes_after = Volume.list(self.userapiclient, listall=self.services["listall"])
-
- self.assertIsNotNone(
- list_volumes_after,
- "volume not created for the vm launched at class level"
- )
- #Asserting that the list volume length after upload is increased by 1
- self.assertEquals(
- len(list_volumes_before) + 1,
- len(list_volumes_after),
- "upload volume failed"
- )
- return
-
-class TestListInstances(cloudstackTestCase):
-
- @classmethod
- def setUpClass(cls):
- try:
- cls._cleanup = []
- cls.testClient = super(TestListInstances, cls).getClsTestClient()
- cls.api_client = cls.testClient.getApiClient()
- cls.services = cls.testClient.getParsedTestDataConfig()
-
- # Get Domain, Zone, Template
- cls.domain = get_domain(cls.api_client)
- cls.zone = get_zone(cls.api_client)
- cls.template = get_template(
- cls.api_client,
- cls.zone.id,
- cls.services["ostype"]
- )
- if cls.zone.localstorageenabled:
- cls.storagetype = 'local'
- cls.services["service_offerings"]["tiny"]["storagetype"] = 'local'
- cls.services["disk_offering"]["storagetype"] = 'local'
- else:
- cls.storagetype = 'shared'
- cls.services["service_offerings"]["tiny"]["storagetype"] = 'shared'
- cls.services["disk_offering"]["storagetype"] = 'shared'
-
- cls.services['mode'] = cls.zone.networktype
- cls.services["virtual_machine"]["hypervisor"] = cls.testClient.getHypervisorInfo()
- cls.services["virtual_machine"]["zoneid"] = cls.zone.id
- cls.services["virtual_machine"]["template"] = cls.template.id
- cls.services["custom_volume"]["zoneid"] = cls.zone.id
-
- # Creating Disk offering, Service Offering and Account
- cls.disk_offering = DiskOffering.create(
- cls.api_client,
- cls.services["disk_offering"]
- )
- cls._cleanup.append(cls.disk_offering)
- cls.service_offering = ServiceOffering.create(
- cls.api_client,
- cls.services["service_offerings"]["tiny"]
- )
- cls._cleanup.append(cls.service_offering)
- cls.account = Account.create(
- cls.api_client,
- cls.services["account"],
- domainid=cls.domain.id
- )
- # Getting authentication for user in newly created Account
- cls.user = cls.account.user[0]
- cls.userapiclient = cls.testClient.getUserApiClient(cls.user.username, cls.domain.name)
- # Updating resource Limits
- for i in range(0,12):
- Resources.updateLimit(
- cls.api_client,
- account=cls.account.name,
- domainid=cls.domain.id,
- max=-1,
- resourcetype=i
- )
-
- cls._cleanup.append(cls.account)
- except Exception as e:
- cls.tearDownClass()
- raise Exception("Warning: Exception in setup : %s" % e)
- return
-
- def setUp(self):
-
- self.apiClient = self.testClient.getApiClient()
- self.cleanup = []
-
- def tearDown(self):
- #Clean up, terminate the created resources
- cleanup_resources(self.apiClient, self.cleanup)
- return
-
- @classmethod
- def tearDownClass(cls):
- try:
- cleanup_resources(cls.api_client, cls._cleanup)
- except Exception as e:
- raise Exception("Warning: Exception during cleanup : %s" % e)
-
- return
-
- def __verify_values(self, expected_vals, actual_vals):
- """
- @Desc: Function to verify expected and actual values
- @Steps:
- Step1: Initializing return flag to True
- Step1: Verifying length of expected and actual dictionaries is matching.
- If not matching returning false
- Step2: Listing all the keys from expected dictionary
- Step3: Looping through each key from step2 and verifying expected and actual dictionaries have same value
- If not making return flag to False
- Step4: returning the return flag after all the values are verified
- """
- return_flag = True
-
- if len(expected_vals) != len(actual_vals):
- return False
-
- keys = expected_vals.keys()
- for i in range(0, len(expected_vals)):
- exp_val = expected_vals[keys[i]]
- act_val = actual_vals[keys[i]]
- if exp_val == act_val:
- return_flag = return_flag and True
- else:
- return_flag = return_flag and False
- self.debug("expected Value: %s, is not matching with actual value: %s" % (
- exp_val,
- act_val
- ))
- return return_flag
-
- @attr(tags=["advanced", "basic", "selfservice"])
- def test_01_list_instances_pagination(self):
- """
- @Desc: Test List Instances pagination
- @Steps:
- Step1: Listing all the Instances for a user
- Step2: Verifying listed Instances for account created at class level
- Step3: If number of volumes is less than (page size + 1), then creating them
- Step4: Listing all the volumes again after creation of volumes
- Step5: Verifying the length of the volumes is (page size + 1)
- Step6: Listing all the volumes in page1
- Step7: Verifying that the length of the volumes in page 1 is (page size)
- Step8: Listing all the volumes in page2
- Step9: Verifying that the length of the volumes in page 2 is 1
- Step10: Deleting the volume present in page 2
- Step11: Listing for the volumes on page 2
- Step12: Verifying that there are no volumes present in page 2
- """
- # Listing all the instances for a user
- list_instances_before = VirtualMachine.list(self.userapiclient, listall=self.services["listall"])
-
- # Verifying listed instances for account created at class level
- self.assertIsNone(
- list_instances_before,
- "Virtual Machine already exists for newly created user"
- )
- # If number of instances are less than (pagesize + 1), then creating them
- for i in range(0, (self.services["pagesize"] + 1)):
- vm_created = VirtualMachine.create(
- self.userapiclient,
- self.services["virtual_machine"],
- accountid=self.account.name,
- domainid=self.account.dom
<TRUNCATED>
[2/2] git commit: updated refs/heads/4.4-forward to 7e43038
Posted by gi...@apache.org.
CLOUDSTACK-6932: Removing redundant file test_escalations.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7e430382
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7e430382
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7e430382
Branch: refs/heads/4.4-forward
Commit: 7e4303821570d58ad962c85a1a3bd6dbf32f8d73
Parents: 21e452f
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Jun 18 16:26:13 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Jun 18 16:45:49 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_escalations.py | 8202 -------------------
1 file changed, 8202 deletions(-)
----------------------------------------------------------------------