Просмотр исходного кода

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

Enis Afgan 10 лет назад
Родитель
Сommit
4d1f016136

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

@@ -271,7 +271,9 @@ class OpenStackInstance(BaseInstance):
         """
         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):
         """

+ 6 - 0
test/test_compute_service.py

@@ -147,6 +147,12 @@ class CloudComputeServiceTestCase(ProviderTestBase):
                 self._is_valid_ip(ip_address),
                 "Instance must have a valid IP address")
             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):
         lc = self.provider.compute.instances.create_launch_config()