You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by qu...@apache.org on 2018/03/23 05:33:49 UTC

[1/2] libcloud git commit: LIBCLOUD-986: Add prefix option to azure blob list and iterate container methods

Repository: libcloud
Updated Branches:
  refs/heads/trunk f8634a8cd -> f95203052


LIBCLOUD-986: Add prefix option to azure blob list and iterate container methods

Signed-off-by: Quentin Pradet <qu...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/1af5caf9
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/1af5caf9
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/1af5caf9

Branch: refs/heads/trunk
Commit: 1af5caf92a97092f7f11221ca881127e90807cb5
Parents: f8634a8
Author: jhawk <jh...@peaxy.net>
Authored: Wed Mar 21 12:08:02 2018 -0700
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Mar 23 09:27:28 2018 +0400

----------------------------------------------------------------------
 libcloud/storage/drivers/azure_blobs.py   | 21 +++++++++++++++++++--
 libcloud/test/storage/test_azure_blobs.py | 22 ++++++++++++++++++++++
 2 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/1af5caf9/libcloud/storage/drivers/azure_blobs.py
----------------------------------------------------------------------
diff --git a/libcloud/storage/drivers/azure_blobs.py b/libcloud/storage/drivers/azure_blobs.py
index 82ee03a..2475793 100644
--- a/libcloud/storage/drivers/azure_blobs.py
+++ b/libcloud/storage/drivers/azure_blobs.py
@@ -381,11 +381,12 @@ class AzureBlobsStorageDriver(StorageDriver):
             if not params['marker']:
                 break
 
-    def iterate_container_objects(self, container):
+    def iterate_container_objects(self, container, ex_prefix=None):
         """
         @inherits: :class:`StorageDriver.iterate_container_objects`
         """
-        params = {'restype': 'container',
+        params = {'prefix': ex_prefix,
+                  'restype': 'container',
                   'comp': 'list',
                   'maxresults': RESPONSES_PER_REQUEST,
                   'include': 'metadata'}
@@ -416,6 +417,22 @@ class AzureBlobsStorageDriver(StorageDriver):
             if not params['marker']:
                 break
 
+    def list_container_objects(self, container, ex_prefix=None):
+        """
+        Return a list of objects for the given container.
+
+        :param container: Container instance.
+        :type container: :class:`Container`
+
+        :param ex_prefix: Only return objects starting with ex_prefix
+        :type ex_prefix: ``str``
+
+        :return: A list of Object instances.
+        :rtype: ``list`` of :class:`Object`
+        """
+        return list(self.iterate_container_objects(container,
+                                                   ex_prefix=ex_prefix))
+
     def get_container(self, container_name):
         """
         @inherits: :class:`StorageDriver.get_container`

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1af5caf9/libcloud/test/storage/test_azure_blobs.py
----------------------------------------------------------------------
diff --git a/libcloud/test/storage/test_azure_blobs.py b/libcloud/test/storage/test_azure_blobs.py
index 95ab3f1..69bdebb 100644
--- a/libcloud/test/storage/test_azure_blobs.py
+++ b/libcloud/test/storage/test_azure_blobs.py
@@ -447,6 +447,28 @@ class AzureBlobsTests(unittest.TestCase):
         self.assertTrue('content_encoding' in obj.extra)
         self.assertTrue('content_language' in obj.extra)
 
+    def test_list_container_objects_with_prefix(self):
+        self.mock_response_klass.type = None
+        AzureBlobsStorageDriver.RESPONSES_PER_REQUEST = 2
+
+        container = Container(name='test_container', extra={},
+                              driver=self.driver)
+        objects = self.driver.list_container_objects(container=container,
+                                                     ex_prefix='test_prefix')
+        self.assertEqual(len(objects), 4)
+
+        obj = objects[1]
+        self.assertEqual(obj.name, 'object2.txt')
+        self.assertEqual(obj.hash, '0x8CFB90F1BA8CD8F')
+        self.assertEqual(obj.size, 1048576)
+        self.assertEqual(obj.container.name, 'test_container')
+        self.assertTrue('meta1' in obj.meta_data)
+        self.assertTrue('meta2' in obj.meta_data)
+        self.assertTrue('last_modified' in obj.extra)
+        self.assertTrue('content_type' in obj.extra)
+        self.assertTrue('content_encoding' in obj.extra)
+        self.assertTrue('content_language' in obj.extra)
+
     def test_get_container_doesnt_exist(self):
         self.mock_response_klass.type = None
         try:


[2/2] libcloud git commit: Add changes for #1193

Posted by qu...@apache.org.
Add changes for #1193

Closes #1193


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f9520305
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f9520305
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f9520305

Branch: refs/heads/trunk
Commit: f9520305279253ec854a0d58aef4c2b722da5f37
Parents: 1af5caf
Author: Quentin Pradet <qu...@apache.org>
Authored: Fri Mar 23 09:33:11 2018 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Mar 23 09:33:11 2018 +0400

----------------------------------------------------------------------
 CHANGES.rst | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/f9520305/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 5193ba4..c98b208 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -51,6 +51,12 @@ Compute
 - [OpenStack v2] Fix image members methods (GITHUB-1190)
   [Rick van de Loo]
 
+Storage
+~~~~~~~
+
+- [Azure Blob storage] Allow filtering lists by prefix (LIBCLOUD-986, GITHUB-1193)
+  [Joshua Hawkinson]
+
 Changes in Apache Libcloud 2.3.0
 --------------------------------