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

Moved openstack images to openstack SDK, allowing for novaclient upgrade

Nuwan Goonasekera 8 лет назад
Родитель
Сommit
6eeaa45f80

+ 9 - 8
cloudbridge/cloud/providers/openstack/resources.py

@@ -60,12 +60,13 @@ class OpenStackMachineImage(BaseMachineImage):
 
     # ref: http://docs.openstack.org/developer/glance/statuses.html
     IMAGE_STATE_MAP = {
-        'QUEUED': MachineImageState.PENDING,
-        'SAVING': MachineImageState.PENDING,
-        'ACTIVE': MachineImageState.AVAILABLE,
-        'KILLED': MachineImageState.ERROR,
-        'DELETED': MachineImageState.ERROR,
-        'PENDING_DELETE': MachineImageState.ERROR
+        'queued': MachineImageState.PENDING,
+        'saving': MachineImageState.PENDING,
+        'active': MachineImageState.AVAILABLE,
+        'killed': MachineImageState.ERROR,
+        'deleted': MachineImageState.ERROR,
+        'pending_delete': MachineImageState.ERROR,
+        'deactivated': MachineImageState.ERROR
     }
 
     def __init__(self, provider, os_image):
@@ -106,13 +107,13 @@ class OpenStackMachineImage(BaseMachineImage):
         :rtype: ``int``
         :return: The minimum disk size needed by this image
         """
-        return self._os_image.minDisk
+        return self._os_image.min_disk
 
     def delete(self):
         """
         Delete this image
         """
-        self._os_image.delete()
+        self._os_image.delete(self._provider.os_conn.session)
 
     @property
     def state(self):

+ 4 - 4
cloudbridge/cloud/providers/openstack/services.py

@@ -233,8 +233,8 @@ class OpenStackImageService(BaseImageService):
         """
         try:
             return OpenStackMachineImage(
-                self.provider, self.provider.nova.images.get(image_id))
-        except NovaNotFound:
+                self.provider, self.provider.os_conn.image.get_image(image_id))
+        except ResourceNotFound:
             return None
 
     def find(self, name, limit=None, marker=None):
@@ -243,7 +243,7 @@ class OpenStackImageService(BaseImageService):
         """
         regex = fnmatch.translate(name)
         cb_images = [
-            OpenStackMachineImage(self.provider, img)
+            img
             for img in self
             if img.name and re.search(regex, img.name)]
 
@@ -253,7 +253,7 @@ class OpenStackImageService(BaseImageService):
         """
         List all images.
         """
-        os_images = self.provider.nova.images.list(
+        os_images = self.provider.os_conn.image.images(
             limit=oshelpers.os_result_limit(self.provider, limit),
             marker=marker)
 

+ 1 - 1
setup.py

@@ -26,7 +26,7 @@ REQS_BASE = [
 REQS_AWS = ['boto3']
 REQS_OPENSTACK = [
     'openstacksdk',
-    'python-novaclient==7.0.0',
+    'python-novaclient>=7.0.0',
     'python-glanceclient>=2.5.0,<=2.6.0',
     'python-cinderclient>=1.9.0,<=2.0.1',
     'python-swiftclient>=3.2.0,<=3.3.0',

+ 1 - 0
test/helpers/standard_interface_tests.py

@@ -70,6 +70,7 @@ def check_find(test, service, obj):
         len(find_objs) == 1,
         "Find objects for %s does not return the expected object: %s. Got %s"
         % (type(obj).__name__, obj.name, find_objs))
+    test.assertEqual(find_objs[0], obj)
     return find_objs