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

Fix issue with getting bucket/blob by name/id

FabioRosado 4 лет назад
Родитель
Сommit
11d42d754b
2 измененных файлов с 17 добавлено и 6 удалено
  1. 2 4
      cloudbridge/interfaces/services.py
  2. 15 2
      cloudbridge/providers/azure/resources.py

+ 2 - 4
cloudbridge/interfaces/services.py

@@ -1,9 +1,7 @@
 """
 Specifications for services available through a provider
 """
-from abc import ABCMeta
-from abc import abstractmethod
-from abc import abstractproperty
+from abc import ABCMeta, abstractmethod, abstractproperty
 
 from cloudbridge.interfaces.resources import PageableObjectMixin
 
@@ -1181,7 +1179,7 @@ class BucketObjectService(CloudService):
         pass
 
     @abstractmethod
-    def list(self, bucket, limit=None, marker=None):
+    def list(self, bucket, prefix=None, limit=None, marker=None):
         """
         List all bucket objects within a bucket.
 

+ 15 - 2
cloudbridge/providers/azure/resources.py

@@ -248,14 +248,26 @@ class AzureBucket(BaseBucket):
 
     @property
     def id(self):
-        return self._bucket.name
+        try:
+            name = self._bucket.name
+        except AttributeError:
+            name = self._bucket.container_name
+        return name
 
     @property
     def name(self):
         """
         Get this bucket's name.
+
+        Due to changes in the Azure API, we can either received a
+        Container or a ContainerClient, Container has a name, but
+        the ContainerClient has a container_name
         """
-        return self._bucket.name
+        try:
+            name = self._bucket.name
+        except AttributeError:
+            name = self._bucket.container_name
+        return name
 
     def exists(self, name):
         """
@@ -268,6 +280,7 @@ class AzureBucket(BaseBucket):
         return self._object_container
 
 
+
 class AzureVolume(BaseVolume):
     VOLUME_STATE_MAP = {
         'InProgress': VolumeState.CREATING,