소스 검색

Fix instance_type property for OpenStack and add a more complete test.

Enis Afgan 10 년 전
부모
커밋
4d1f016136
2개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      cloudbridge/cloud/providers/openstack/resources.py
  2. 6 0
      test/test_compute_service.py

+ 3 - 1
cloudbridge/cloud/providers/openstack/resources.py

@@ -271,7 +271,9 @@ class OpenStackInstance(BaseInstance):
         """
         """
         Get the instance type.
         Get the instance type.
         """
         """
-        return OpenStackInstanceType(self._provider, self._os_instance.flavor)
+        flavor = self._provider.nova.flavors.get(
+            self._os_instance.flavor.get('id'))
+        return OpenStackInstanceType(self._provider, flavor)
 
 
     def reboot(self):
     def reboot(self):
         """
         """

+ 6 - 0
test/test_compute_service.py

@@ -147,6 +147,12 @@ class CloudComputeServiceTestCase(ProviderTestBase):
                 self._is_valid_ip(ip_address),
                 self._is_valid_ip(ip_address),
                 "Instance must have a valid IP address")
                 "Instance must have a valid IP address")
             self.assertIsInstance(test_instance.instance_type, InstanceType)
             self.assertIsInstance(test_instance.instance_type, InstanceType)
+            expected_type = helpers.get_provider_test_data(self.provider,
+                                                           'instance_type')
+            self.assertEqual(
+                test_instance.instance_type.name, expected_type,
+                "Instance type {0} does not match expected type {1}".format(
+                    test_instance.instance_type.name, expected_type))
 
 
     def test_block_device_mapping_launch_config(self):
     def test_block_device_mapping_launch_config(self):
         lc = self.provider.compute.instances.create_launch_config()
         lc = self.provider.compute.instances.create_launch_config()