mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	CLOUDSTACK:3594: Fixes related to affinity groups tests. Included two test suites those were missed because there was no decorator for test cases
Signed-off-by: Prasanna Santhanam <tsp@apache.org> (cherry picked from commit 3028f4223b2a00f80159b387e86211effcfeda11)
This commit is contained in:
		
							parent
							
								
									2903bb5fd9
								
							
						
					
					
						commit
						6ef51b4159
					
				@ -51,12 +51,8 @@ class Services:
 | 
			
		||||
                # In MBs
 | 
			
		||||
            },
 | 
			
		||||
            "ostype": 'CentOS 5.3 (64-bit)',
 | 
			
		||||
            "host_anti_affinity_0": {
 | 
			
		||||
                    "name": "TestAffGrp_HA_0",
 | 
			
		||||
                    "type": "host anti-affinity",
 | 
			
		||||
                },
 | 
			
		||||
            "host_anti_affinity_1": {
 | 
			
		||||
                    "name": "TestAffGrp_HA_1",
 | 
			
		||||
            "host_anti_affinity": {
 | 
			
		||||
                    "name": "",
 | 
			
		||||
                    "type": "host anti-affinity",
 | 
			
		||||
                },
 | 
			
		||||
            "virtual_machine" : {
 | 
			
		||||
@ -151,17 +147,22 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
            raise Exception("Warning: Exception during cleanup : %s" % e)
 | 
			
		||||
 | 
			
		||||
    def create_aff_grp(self, api_client=None, aff_grp=None,
 | 
			
		||||
                  acc=None, domainid=None):
 | 
			
		||||
                  acc=None, domainid=None, aff_grp_name=None):
 | 
			
		||||
 | 
			
		||||
        if not api_client:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if not aff_grp:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
        if not acc:
 | 
			
		||||
            acc = self.account.name
 | 
			
		||||
        if not domainid:
 | 
			
		||||
            domainid = self.domain.id
 | 
			
		||||
 | 
			
		||||
        if aff_grp_name is None:
 | 
			
		||||
            aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
        else:
 | 
			
		||||
            aff_grp["name"] = aff_grp_name
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            return AffinityGroup.create(api_client, aff_grp, acc, domainid)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
@ -174,7 +175,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
        @return:
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
            acc=self.account.name, domainid=self.account.domainid)
 | 
			
		||||
        self.debug("Created Affinity Group: %s" % aff_grp.name)
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
 | 
			
		||||
@ -197,7 +198,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
        domainapiclient = self.testClient.createUserApiClient(self.do_admin.name, self.new_domain.name, 2)
 | 
			
		||||
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=domainapiclient, aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=domainapiclient, aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                                            acc=self.do_admin.name, domainid=self.new_domain.id)
 | 
			
		||||
        aff_grp.delete(domainapiclient)
 | 
			
		||||
 | 
			
		||||
@ -214,7 +215,7 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
        userapiclient = self.testClient.createUserApiClient(self.user.name, self.domain.name)
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user)
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=userapiclient, aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=userapiclient, aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id)
 | 
			
		||||
        aff_grp.delete(userapiclient)
 | 
			
		||||
 | 
			
		||||
@ -230,11 +231,12 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
                                  domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user)
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id)
 | 
			
		||||
        with self.assertRaises(Exception):
 | 
			
		||||
            self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id)
 | 
			
		||||
            self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id,
 | 
			
		||||
                            aff_grp_name = aff_grp.name)
 | 
			
		||||
 | 
			
		||||
        self.debug("Deleted Affinity Group: %s" %aff_grp.name)
 | 
			
		||||
        aff_grp.delete(self.api_client)
 | 
			
		||||
@ -250,11 +252,11 @@ class TestCreateAffinityGroup(cloudstackTestCase):
 | 
			
		||||
                                  domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user)
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
            self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        except Exception:
 | 
			
		||||
            self.debug("Error: Creating affinity group with same name from different account failed.")
 | 
			
		||||
 | 
			
		||||
@ -345,11 +347,15 @@ class TestListAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        if api_client == None:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if aff_grp == None:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
 | 
			
		||||
        aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            self.aff_grp.append(AffinityGroup.create(api_client,
 | 
			
		||||
                                                     aff_grp, acc, domainid))
 | 
			
		||||
            aff_grp = AffinityGroup.create(api_client,
 | 
			
		||||
                                           aff_grp, acc, domainid)
 | 
			
		||||
            self.aff_grp.append(aff_grp)
 | 
			
		||||
            return aff_grp
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise Exception("Error: Creation of Affinity Group failed : %s" %e)
 | 
			
		||||
 | 
			
		||||
@ -375,12 +381,13 @@ class TestListAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                         msg="VM is not in Running state")
 | 
			
		||||
        return vm, vm_response.hostid
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_01_list_aff_grps_for_vm(self):
 | 
			
		||||
        """
 | 
			
		||||
           List affinity group for a vm
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client)
 | 
			
		||||
 | 
			
		||||
        vm, hostid = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
@ -394,15 +401,16 @@ class TestListAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_02_list_multiple_aff_grps_for_vm(self):
 | 
			
		||||
        """
 | 
			
		||||
           List multiple affinity groups associated with a vm
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        aff_grp_01 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        aff_grp_02 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        aff_grps_names = [self.aff_grp[0].name, self.aff_grp[1].name]
 | 
			
		||||
        vm, hostid = self.create_vm_in_aff_grps(aff_grps_names)
 | 
			
		||||
@ -421,60 +429,65 @@ class TestListAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
 | 
			
		||||
        [AffinityGroup.delete(self.api_client, name) for name in aff_grps_names]
 | 
			
		||||
        aff_grp_01.delete(self.api_client)
 | 
			
		||||
        aff_grp_02.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_03_list_aff_grps_by_id(self):
 | 
			
		||||
        """
 | 
			
		||||
           List affinity groups by id
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        print self.aff_grp[0].__dict__
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client)
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client, id=list_aff_grps[0].id)
 | 
			
		||||
        self.assertEqual(list_aff_grps[0].name, self.aff_grp[0].name,
 | 
			
		||||
                         "Listing Affinity Group by VM id failed")
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_04_list_aff_grps_by_name(self):
 | 
			
		||||
        """
 | 
			
		||||
            List Affinity Groups by name
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=self.aff_grp[0].name)
 | 
			
		||||
        self.assertEqual(list_aff_grps[0].name, self.aff_grp[0].name,
 | 
			
		||||
                         "Listing Affinity Group by name failed")
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_05_list_aff_grps_by_non_existing_id(self):
 | 
			
		||||
        """
 | 
			
		||||
            List Affinity Groups by non-existing id
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           id=1234)
 | 
			
		||||
        self.assertEqual(list_aff_grps, None,
 | 
			
		||||
                         "Listing Affinity Group by non-existing id succeeded.")
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced"])
 | 
			
		||||
    def test_06_list_aff_grps_by_non_existing_name(self):
 | 
			
		||||
        """
 | 
			
		||||
            List Affinity Groups by non-existing name
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name="NonexistingName")
 | 
			
		||||
        self.assertEqual(list_aff_grps, None,
 | 
			
		||||
                         "Listing Affinity Group by non-existing name succeeded.")
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
@ -547,7 +560,10 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        if api_client == None:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if aff_grp == None:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
 | 
			
		||||
        aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            return AffinityGroup.create(api_client, aff_grp, acc, domainid)
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
@ -589,7 +605,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Delete Affinity Group by name
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        AffinityGroup.list(self.api_client, name=aff_0.name)
 | 
			
		||||
        self.delete_aff_group(self.api_client, name=aff_0.name)
 | 
			
		||||
        self.assert_(AffinityGroup.list(self.api_client, name=aff_0.name) is None)
 | 
			
		||||
@ -600,9 +616,9 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Delete Affinity Group as admin for an account
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.account.name, domainid=self.domain.id)
 | 
			
		||||
        aff_1 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"],
 | 
			
		||||
        aff_1 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.account.name, domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
        aff_0.delete(self.api_client)
 | 
			
		||||
@ -616,14 +632,12 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Delete Affinity Group which has vms in it
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
                            acc=self.account.name, domainid=self.domain.id)
 | 
			
		||||
        aff_1 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"],
 | 
			
		||||
                            acc=self.account.name, domainid=self.domain.id)
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        aff_1 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        vm, hostid = self.create_vm_in_aff_grps([aff_0.name, aff_1.name])
 | 
			
		||||
        aff_0.delete(self.api_client)
 | 
			
		||||
        vm_list = list_virtual_machines(self.apiclient, id=self.virtual_machine.id)
 | 
			
		||||
        vm_list = list_virtual_machines(self.apiclient, id=vm.id)
 | 
			
		||||
        self.assert_(vm_list is not None)
 | 
			
		||||
        vm.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
@ -636,7 +650,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Delete Affinity Group which has vms after updating affinity group for vms in it
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([aff_0.name])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps([aff_0.name])
 | 
			
		||||
@ -664,7 +678,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                       self.services["new_account"])
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user1)
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user1.name,
 | 
			
		||||
                            domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
@ -677,7 +691,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        aff_1 = self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=aff_0.name)
 | 
			
		||||
@ -700,7 +714,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                       self.services["new_account"])
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user1)
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user1.name,
 | 
			
		||||
                            domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
@ -713,7 +727,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        aff_1 = self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=aff_0.name)
 | 
			
		||||
@ -797,7 +811,10 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        if api_client == None:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if aff_grp == None:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
 | 
			
		||||
        aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            self.aff_grp.append(AffinityGroup.create(api_client,
 | 
			
		||||
                                                     aff_grp, acc, domainid))
 | 
			
		||||
@ -805,16 +822,18 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            raise Exception("Error: Creation of Affinity Group failed : %s" %e)
 | 
			
		||||
 | 
			
		||||
    def create_vm_in_aff_grps(self, ag_list):
 | 
			
		||||
        self.debug('Creating VM in AffinityGroup=%s' % ag_list[0])
 | 
			
		||||
 | 
			
		||||
        self.debug('Creating VM in AffinityGroup=%s' % ag_list)
 | 
			
		||||
 | 
			
		||||
        vm = VirtualMachine.create(
 | 
			
		||||
                self.api_client,
 | 
			
		||||
               self.api_client,
 | 
			
		||||
               self.services["virtual_machine"],
 | 
			
		||||
               templateid=self.template.id,
 | 
			
		||||
               serviceofferingid=self.service_offering.id,
 | 
			
		||||
               affinitygroupnames=ag_list
 | 
			
		||||
            )
 | 
			
		||||
        self.debug('Created VM=%s in Affinity Group=%s' %
 | 
			
		||||
                   (vm.id, ag_list[0]))
 | 
			
		||||
                   (vm.id, ag_list))
 | 
			
		||||
 | 
			
		||||
        list_vm = list_virtual_machines(self.api_client, id=vm.id)
 | 
			
		||||
 | 
			
		||||
@ -829,13 +848,14 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
        return vm, vm_response.hostid
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_01_update_aff_grp_by_ids(self):
 | 
			
		||||
        """
 | 
			
		||||
            Update the list of affinityGroups by using affinity groupids
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
@ -873,16 +893,17 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        for i in aff_grps_names:
 | 
			
		||||
            AffinityGroup.delete(self.api_client, i)
 | 
			
		||||
        for aff_grp in self.aff_grp:
 | 
			
		||||
            aff_grp.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_02_update_aff_grp_by_names(self):
 | 
			
		||||
        """
 | 
			
		||||
            Update the list of affinityGroups by using affinity groupnames
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
@ -915,17 +936,18 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        for i in aff_grps_names:
 | 
			
		||||
            AffinityGroup.delete(self.api_client, i)
 | 
			
		||||
        for aff_grp in self.aff_grp:
 | 
			
		||||
            aff_grp.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_03_update_aff_grp_for_vm_with_no_aff_grp(self):
 | 
			
		||||
        """
 | 
			
		||||
            Update the list of affinityGroups for vm which is not associated
 | 
			
		||||
            with any affinity groups.
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
@ -945,24 +967,25 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        aff_grps_names = [self.aff_grp[0].name, self.aff_grp[1].name]
 | 
			
		||||
        for i in aff_grps_names:
 | 
			
		||||
            AffinityGroup.delete(self.api_client, i)
 | 
			
		||||
        aff_grps = [self.aff_grp[0], self.aff_grp[1]]
 | 
			
		||||
        for aff_grp in aff_grps:
 | 
			
		||||
            aff_grp.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @unittest.skip("Skip - Failing - work in progress")
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_04_update_aff_grp_remove_all(self):
 | 
			
		||||
        """
 | 
			
		||||
            Update the list of Affinity Groups to empty list
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
        aff_grps_names = [self.aff_grp[0].name, self.aff_grp[1].name]
 | 
			
		||||
        aff_grps = [self.aff_grp[0], self.aff_grp[1]]
 | 
			
		||||
        vm1.stop(self.api_client)
 | 
			
		||||
 | 
			
		||||
        vm1.update_affinity_group(self.api_client,
 | 
			
		||||
                                  affinitygroupnames=[])
 | 
			
		||||
        vm1.update_affinity_group(self.api_client, affinitygroupids = [])
 | 
			
		||||
 | 
			
		||||
        vm1.start(self.api_client)
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
@ -972,27 +995,28 @@ class TestUpdateVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        for i in aff_grps_names:
 | 
			
		||||
            AffinityGroup.delete(self.api_client, i)
 | 
			
		||||
        for aff_grp in aff_grps:
 | 
			
		||||
            aff_grp.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_05_update_aff_grp_on_running_vm(self):
 | 
			
		||||
        """
 | 
			
		||||
            Update the list of Affinity Groups on running vm
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps([self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
        aff_grps_names = [self.aff_grp[0].name, self.aff_grp[1].name]
 | 
			
		||||
        aff_grps = [self.aff_grp[0], self.aff_grp[1]]
 | 
			
		||||
        with self.assertRaises(Exception):
 | 
			
		||||
            vm1.update_affinity_group(self.api_client, affinitygroupnames=[])
 | 
			
		||||
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        #Wait for expunge interval to cleanup VM
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        for i in aff_grps_names:
 | 
			
		||||
            AffinityGroup.delete(self.api_client, i)
 | 
			
		||||
        for aff_grp in aff_grps:
 | 
			
		||||
            aff_grp.delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
@ -1065,7 +1089,9 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        if api_client == None:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if aff_grp == None:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
 | 
			
		||||
        aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            self.aff_grp.append(AffinityGroup.create(api_client,
 | 
			
		||||
@ -1118,20 +1144,19 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        """
 | 
			
		||||
            Deploy VM by aff grp name
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_03_deploy_vm_by_aff_grp_id(self):
 | 
			
		||||
        """
 | 
			
		||||
            Deploy VM by aff grp id
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=self.aff_grp[0].name)
 | 
			
		||||
@ -1140,7 +1165,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_04_deploy_vm_anti_affinity_group(self):
 | 
			
		||||
@ -1150,7 +1175,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        deploy VM1 and VM2 in the same host-anti-affinity groups
 | 
			
		||||
        Verify that the vms are deployed on separate hosts
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
@ -1161,14 +1186,14 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_05_deploy_vm_by_id(self):
 | 
			
		||||
        """
 | 
			
		||||
            Deploy vms by affinity group id
 | 
			
		||||
        """
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=self.aff_grp[0].name)
 | 
			
		||||
@ -1183,7 +1208,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_06_deploy_vm_aff_grp_of_other_user_by_name(self):
 | 
			
		||||
@ -1195,7 +1220,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                       self.services["new_account"])
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user1)
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user1.name,
 | 
			
		||||
                            domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
@ -1208,15 +1233,15 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        with self.assertRaises(Exception):
 | 
			
		||||
            vm1, hostid1 = self.create_vm_in_aff_grps(api_client=userapiclient,
 | 
			
		||||
                                                  ag_list=[self.aff_grp[0].name])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        AffinityGroup.delete(userapiclient, self.aff_grp[1].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
        self.aff_grp[1].delete(userapiclient)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_07_deploy_vm_aff_grp_of_other_user_by_id(self):
 | 
			
		||||
@ -1228,7 +1253,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                       self.services["new_account"])
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user1)
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user1.name,
 | 
			
		||||
                            domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
@ -1241,7 +1266,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=self.aff_grp[0].name)
 | 
			
		||||
@ -1251,8 +1276,8 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            vm1, hostid1 = self.create_vm_in_aff_grps(api_client=userapiclient,
 | 
			
		||||
                                                  ag_ids=[list_aff_grps[0].id])
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        AffinityGroup.delete(userapiclient, self.aff_grp[1].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
        self.aff_grp[1].delete(userapiclient)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_08_deploy_vm_multiple_aff_grps(self):
 | 
			
		||||
@ -1260,8 +1285,9 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Deploy vm in multiple affinity groups
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name,
 | 
			
		||||
                                                   self.aff_grp[1].name])
 | 
			
		||||
 | 
			
		||||
@ -1279,8 +1305,8 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
        vm1.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[1].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
        self.aff_grp[1].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_09_deploy_vm_multiple_aff_grps(self):
 | 
			
		||||
@ -1288,8 +1314,9 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Deploy multiple vms in multiple affinity groups
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_1"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        vm1, hostid1 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name,
 | 
			
		||||
                                                   self.aff_grp[1].name])
 | 
			
		||||
        vm2, hostid2 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name,
 | 
			
		||||
@ -1313,8 +1340,8 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
        vm2.delete(self.api_client)
 | 
			
		||||
        wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[1].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
        self.aff_grp[1].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
    @attr(tags=["simulator", "basic", "advanced", "multihost"])
 | 
			
		||||
    def test_10_deploy_vm_by_aff_grp_name_and_id(self):
 | 
			
		||||
@ -1322,7 +1349,8 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            Deploy VM by aff grp name and id
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
        self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client,
 | 
			
		||||
                                           name=self.aff_grp[0].name)
 | 
			
		||||
 | 
			
		||||
@ -1330,7 +1358,7 @@ class TestDeployVMAffinityGroups(cloudstackTestCase):
 | 
			
		||||
            vm1, hostid1 = self.create_vm_in_aff_grps(ag_list=[self.aff_grp[0].name],
 | 
			
		||||
                                                  ag_ids=[list_aff_grps[0].id])
 | 
			
		||||
 | 
			
		||||
        AffinityGroup.delete(self.api_client, self.aff_grp[0].name)
 | 
			
		||||
        self.aff_grp[0].delete(self.api_client)
 | 
			
		||||
 | 
			
		||||
class TestAffinityGroupsAdminUser(cloudstackTestCase):
 | 
			
		||||
 | 
			
		||||
@ -1403,7 +1431,9 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 | 
			
		||||
        if api_client == None:
 | 
			
		||||
            api_client = self.api_client
 | 
			
		||||
        if aff_grp == None:
 | 
			
		||||
            self.services["host_anti_affinity_0"]
 | 
			
		||||
            aff_grp = self.services["host_anti_affinity"]
 | 
			
		||||
 | 
			
		||||
        aff_grp["name"] = "aff_grp_" + random_gen(size=6)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            return AffinityGroup.create(api_client, aff_grp, acc, domainid)
 | 
			
		||||
@ -1454,7 +1484,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        with self.assertRaises(Exception):
 | 
			
		||||
            self.create_vm_in_aff_grps(api_client=self.apiclient, ag_list=[self.aff_grp[0].name])
 | 
			
		||||
@ -1471,7 +1501,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 | 
			
		||||
                                  domainid=self.domain.id)
 | 
			
		||||
 | 
			
		||||
        self.cleanup.append(self.user)
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity_0"],
 | 
			
		||||
        aff_grp = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"],
 | 
			
		||||
                            acc=self.user.name, domainid=self.domain.id)
 | 
			
		||||
        aff_grp.delete(self.apiclient)
 | 
			
		||||
 | 
			
		||||
@ -1492,7 +1522,7 @@ class TestAffinityGroupsAdminUser(cloudstackTestCase):
 | 
			
		||||
                                        acctType=0)
 | 
			
		||||
 | 
			
		||||
        aff_grp = self.create_aff_grp(api_client=userapiclient,
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity_0"])
 | 
			
		||||
                            aff_grp=self.services["host_anti_affinity"])
 | 
			
		||||
 | 
			
		||||
        list_aff_grps = AffinityGroup.list(self.api_client)
 | 
			
		||||
        self.assertNotEqual(list_aff_grps, [], "Admin not able to list Affinity "
 | 
			
		||||
 | 
			
		||||
@ -571,6 +571,20 @@ class VirtualMachine:
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise Exception("assignVirtualMachine failed - %s" %e)
 | 
			
		||||
 | 
			
		||||
    def update_affinity_group(self, apiclient, affinitygroupids=None,
 | 
			
		||||
                              affinitygroupnames=None):
 | 
			
		||||
        """Update affinity group of a VM"""
 | 
			
		||||
        cmd = updateVMAffinityGroup.updateVMAffinityGroupCmd()
 | 
			
		||||
        cmd.id = self.id
 | 
			
		||||
 | 
			
		||||
        if affinitygroupids:
 | 
			
		||||
            cmd.affinitygroupids = affinitygroupids
 | 
			
		||||
 | 
			
		||||
        if affinitygroupnames:
 | 
			
		||||
            cmd.affinitygroupnames = affinitygroupnames
 | 
			
		||||
 | 
			
		||||
        return apiclient.updateVMAffinityGroup(cmd)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Volume:
 | 
			
		||||
    """Manage Volume Life cycle
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user