ソースを参照

Resources Consistent across Providers

almahmoud 7 年 前
コミット
b76ed3b2eb

+ 0 - 1
cloudbridge/cloud/base/resources.py

@@ -848,7 +848,6 @@ class BaseFloatingIP(BaseCloudResource, BaseObjectLifeCycleMixin, FloatingIP):
 
     @property
     def name(self):
-        # VM firewall rules don't support labels
         return self.public_ip
 
     @property

+ 0 - 1
cloudbridge/cloud/providers/aws/resources.py

@@ -124,7 +124,6 @@ class AWSMachineImage(BaseMachineImage):
         snapshot = self._provider.storage.snapshots.get(snapshot_id[0])
         if snapshot:
             snapshot.delete()
-            snapshot.wait_till_ready()
 
     @property
     def state(self):

+ 1 - 0
cloudbridge/cloud/providers/aws/services.py

@@ -386,6 +386,7 @@ class AWSImageService(BaseImageService):
         # Filter by name or label
         name = kwargs.get('name', None)
         label = kwargs.get('label', None)
+        # Popped here, not used in the generic find
         owner = kwargs.pop('owners', None)
         extra_args = {}
         if owner:

+ 5 - 11
cloudbridge/cloud/providers/azure/services.py

@@ -108,7 +108,7 @@ class AzureVMFirewallService(BaseVMFirewallService):
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['label', 'name']
+        filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
         # All kwargs should have been popped at this time.
@@ -281,7 +281,7 @@ class AzureVolumeService(BaseVolumeService):
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['name', 'label']
+        filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
         # All kwargs should have been popped at this time.
@@ -777,7 +777,7 @@ class AzureImageService(BaseImageService):
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['name', 'label']
+        filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
         # All kwargs should have been popped at this time.
@@ -866,7 +866,7 @@ class AzureNetworkService(BaseNetworkService):
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['name', 'label']
+        filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
         # All kwargs should have been popped at this time.
@@ -984,12 +984,6 @@ class AzureSubnetService(BaseSubnetService):
         filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
-        # All kwargs should have been popped at this time.
-        if len(kwargs) > 0:
-            raise TypeError("Unrecognised parameters for search: %s."
-                            " Supported attributes: %s" % (kwargs,
-                                                           ", ".join(filters)))
-
         return ClientPagedResultList(self.provider,
                                      matches if matches else [])
 
@@ -1060,7 +1054,7 @@ class AzureRouterService(BaseRouterService):
 
     def find(self, **kwargs):
         obj_list = self
-        filters = ['name', 'label']
+        filters = ['label']
         matches = cb_helpers.generic_find(filters, kwargs, obj_list)
 
         # All kwargs should have been popped at this time.

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

@@ -823,6 +823,8 @@ class OpenStackGatewayContainer(BaseGatewayContainer):
                          if n.external)
         for net in external_nets:
             if self._check_fip_connectivity(net):
+                if name:
+                    net.label = name
                 return OpenStackInternetGateway(self._provider, net)
         return None
 
@@ -1156,19 +1158,7 @@ class OpenStackInternetGateway(BaseInternetGateway):
 
     @property
     def name(self):
-        return self.id
-
-    @property
-    def label(self):
-        return self._gateway_net.tags.get('gateway_name', None)
-
-    @label.setter
-    # pylint:disable=arguments-differ
-    def label(self, value):
-        self.assert_valid_resource_label(value)
-        self._provider.neutron_client.add_tag(
-            'network', self.id, {'gateway_name': value or ""})
-        self.refresh()
+        return self._gateway_net.get('name', None)
 
     @property
     def network_id(self):
@@ -1513,10 +1503,12 @@ class OpenStackBucketContainer(BaseBucketContainer):
         _, object_list = self._provider.swift.get_container(
             self.bucket.name, prefix=name)
         if object_list:
-            return OpenStackBucketObject(self._provider, self.bucket,
-                                         object_list[0])
-        else:
-            return None
+            for ob in object_list:
+                if ob.name == name:
+                    return OpenStackBucketObject(self._provider,
+                                                 self.bucket,
+                                                 ob)
+        return None
 
     def list(self, limit=None, marker=None, prefix=None):
         """