mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	CLOUDSTACK-7393: Fixed host tags issue in test_vpc_vm_life_cycle.py, This enables 9 test cases
Signed-off-by: SrikanteswaraRao Talluri <talluri@apache.org>
This commit is contained in:
		
							parent
							
								
									ce82ab605d
								
							
						
					
					
						commit
						ffbcd29103
					
				| @ -19,7 +19,7 @@ | |||||||
| """ | """ | ||||||
| #Import Local Modules | #Import Local Modules | ||||||
| from nose.plugins.attrib import attr | from nose.plugins.attrib import attr | ||||||
| from marvin.cloudstackTestCase import cloudstackTestCase | from marvin.cloudstackTestCase import cloudstackTestCase, unittest | ||||||
| from marvin.lib.utils import cleanup_resources, validateList | from marvin.lib.utils import cleanup_resources, validateList | ||||||
| from marvin.lib.base import (VirtualMachine, | from marvin.lib.base import (VirtualMachine, | ||||||
|                                          NATRule, |                                          NATRule, | ||||||
| @ -34,7 +34,8 @@ from marvin.lib.base import (VirtualMachine, | |||||||
|                                          Router, |                                          Router, | ||||||
|                                          Account, |                                          Account, | ||||||
|                                          ServiceOffering, |                                          ServiceOffering, | ||||||
|                                          Host) |                                          Host, | ||||||
|  |                                          Cluster) | ||||||
| from marvin.lib.common import (get_domain, | from marvin.lib.common import (get_domain, | ||||||
|                                            get_zone, |                                            get_zone, | ||||||
|                                            get_template, |                                            get_template, | ||||||
| @ -76,7 +77,7 @@ class Services: | |||||||
|                 "cpunumber": 1, |                 "cpunumber": 1, | ||||||
|                 "cpuspeed": 100, |                 "cpuspeed": 100, | ||||||
|                 "memory": 128, |                 "memory": 128, | ||||||
|                 "tags": "host1" |                 "hosttags": "host1" | ||||||
|             }, |             }, | ||||||
|             "service_offering_2": { |             "service_offering_2": { | ||||||
|                 "name": "Tiny Instance- tagged host 2", |                 "name": "Tiny Instance- tagged host 2", | ||||||
| @ -84,7 +85,7 @@ class Services: | |||||||
|                 "cpunumber": 1, |                 "cpunumber": 1, | ||||||
|                 "cpuspeed": 100, |                 "cpuspeed": 100, | ||||||
|                 "memory": 128, |                 "memory": 128, | ||||||
|                 "tags": "host2" |                 "hosttags": "host2" | ||||||
|             }, |             }, | ||||||
|             "network_offering": { |             "network_offering": { | ||||||
|                 "name": 'VPC Network offering', |                 "name": 'VPC Network offering', | ||||||
| @ -2660,7 +2661,7 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|         try: |         try: | ||||||
| 
 | 
 | ||||||
|             cls.testClient = super(TestVMLifeCycleDiffHosts, cls).getClsTestClient() |             cls.testClient = super(TestVMLifeCycleDiffHosts, cls).getClsTestClient() | ||||||
| 	    cls.api_client = cls.testClient.getApiClient() |             cls.api_client = cls.testClient.getApiClient() | ||||||
| 
 | 
 | ||||||
|             cls.services = Services().services |             cls.services = Services().services | ||||||
|             # Get Zone, Domain and templates |             # Get Zone, Domain and templates | ||||||
| @ -2674,19 +2675,25 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|             cls.services["virtual_machine"]["zoneid"] = cls.zone.id |             cls.services["virtual_machine"]["zoneid"] = cls.zone.id | ||||||
|             cls.services["virtual_machine"]["template"] = cls.template.id |             cls.services["virtual_machine"]["template"] = cls.template.id | ||||||
| 
 | 
 | ||||||
|             hosts = list_hosts(cls.api_client) |             # 2 hosts are needed within cluster to run the test cases and | ||||||
|  |             # 3rd host is needed to run the migrate test case | ||||||
|  |             # Even if only 2 hosts are present, remaining test cases will be run and | ||||||
|  |             # migrate test will be skipped automatically | ||||||
|  |             cluster = cls.FindClusterWithSufficientHosts(numberofhosts = 3) | ||||||
|  |             if cluster is None: | ||||||
|  |                 raise unittest.SkipTest("Skipping as unable to find a cluster with\ | ||||||
|  |                         sufficient number of hosts") | ||||||
|  | 
 | ||||||
|  |             hosts = list_hosts(cls.api_client, type="Routing", listall=True, clusterid=cluster.id) | ||||||
| 
 | 
 | ||||||
|             assert isinstance(hosts, list), "list_hosts should return a list response,\ |             assert isinstance(hosts, list), "list_hosts should return a list response,\ | ||||||
|                                         instead got %s" % hosts |                                         instead got %s" % hosts | ||||||
| 
 | 
 | ||||||
|             if len(hosts) < 3: |  | ||||||
|                 raise Exception("Minimum 3 hosts should be available to run this test suite") |  | ||||||
| 
 |  | ||||||
|             Host.update(cls.api_client, id=hosts[0].id, hosttags="host1") |             Host.update(cls.api_client, id=hosts[0].id, hosttags="host1") | ||||||
|  |             Host.update(cls.api_client, id=hosts[1].id, hosttags="host2") | ||||||
| 
 | 
 | ||||||
|             Host.update(cls.api_client, id=hosts[1].id, hosttags="host1") |             if len(hosts) > 2: | ||||||
| 
 |                 Host.update(cls.api_client, id=hosts[2].id, hosttags="host1") | ||||||
|             Host.update(cls.api_client, id=hosts[2].id, hosttags="host2") |  | ||||||
| 
 | 
 | ||||||
|             cls.service_offering_1 = ServiceOffering.create( |             cls.service_offering_1 = ServiceOffering.create( | ||||||
|                                             cls.api_client, |                                             cls.api_client, | ||||||
| @ -2909,6 +2916,21 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|             raise Exception("Warning: Exception during cleanup : %s" % e) |             raise Exception("Warning: Exception during cleanup : %s" % e) | ||||||
|         return |         return | ||||||
| 
 | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def FindClusterWithSufficientHosts(cls, numberofhosts = 3): | ||||||
|  |         """ Find a cluster in the zone with given number of hosts | ||||||
|  |             or at most 1 less than the given number as the extra host | ||||||
|  |             is needed only for migrate""" | ||||||
|  | 
 | ||||||
|  |         clusters = Cluster.list(cls.api_client, zoneid=cls.zone.id) | ||||||
|  |         for cluster in clusters: | ||||||
|  |             hosts = Host.list(cls.api_client, clusterid=cluster.id) | ||||||
|  |             if len(hosts) >= (numberofhosts - 1): | ||||||
|  |                 return cluster | ||||||
|  |         #end for | ||||||
|  |         return None | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     def validate_vm_deployment(self): |     def validate_vm_deployment(self): | ||||||
|         """Validates VM deployment on different hosts""" |         """Validates VM deployment on different hosts""" | ||||||
| 
 | 
 | ||||||
| @ -3487,7 +3509,7 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|         self.debug("Delete virtual machines in account: %s" % |         self.debug("Delete virtual machines in account: %s" % | ||||||
|                                                 self.account.name) |                                                 self.account.name) | ||||||
|         try: |         try: | ||||||
|             self.vm_1.delete(self.apiclient) |             self.vm_1.delete(self.apiclient, expunge=False) | ||||||
| 
 | 
 | ||||||
|             list_vm_response = list_virtual_machines( |             list_vm_response = list_virtual_machines( | ||||||
|                                                  self.apiclient, |                                                  self.apiclient, | ||||||
| @ -3502,7 +3524,7 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|                     "VM state should be destroyed" |                     "VM state should be destroyed" | ||||||
|                     ) |                     ) | ||||||
| 
 | 
 | ||||||
|             self.vm_2.delete(self.apiclient) |             self.vm_2.delete(self.apiclient, expunge=False) | ||||||
| 
 | 
 | ||||||
|             list_vm_response = list_virtual_machines( |             list_vm_response = list_virtual_machines( | ||||||
|                                                  self.apiclient, |                                                  self.apiclient, | ||||||
| @ -3517,7 +3539,7 @@ class TestVMLifeCycleDiffHosts(cloudstackTestCase): | |||||||
|                     "VM state should be destroyed" |                     "VM state should be destroyed" | ||||||
|                     ) |                     ) | ||||||
| 
 | 
 | ||||||
|             self.vm_3.delete(self.apiclient) |             self.vm_3.delete(self.apiclient, expunge=False) | ||||||
| 
 | 
 | ||||||
|             list_vm_response = list_virtual_machines( |             list_vm_response = list_virtual_machines( | ||||||
|                                                  self.apiclient, |                                                  self.apiclient, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user