You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2011/05/15 14:56:49 UTC

svn commit: r1103357 - in /incubator/libcloud/trunk: libcloud/storage/base.py libcloud/storage/drivers/cloudfiles.py test/storage/test_cloudfiles.py test/storage/test_s3.py

Author: tomaz
Date: Sun May 15 12:56:48 2011
New Revision: 1103357

URL: http://svn.apache.org/viewvc?rev=1103357&view=rev
Log:
Make get_meta_data and extension method and update affected tests.

Modified:
    incubator/libcloud/trunk/libcloud/storage/base.py
    incubator/libcloud/trunk/libcloud/storage/drivers/cloudfiles.py
    incubator/libcloud/trunk/test/storage/test_cloudfiles.py
    incubator/libcloud/trunk/test/storage/test_s3.py

Modified: incubator/libcloud/trunk/libcloud/storage/base.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/storage/base.py?rev=1103357&r1=1103356&r2=1103357&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/storage/base.py (original)
+++ incubator/libcloud/trunk/libcloud/storage/base.py Sun May 15 12:56:48 2011
@@ -178,16 +178,6 @@ class StorageDriver(object):
         self.connection.driver = self
         self.connection.connect()
 
-    def get_meta_data(self):
-        """
-        Return account meta data - total number of containers, objects and
-        number of bytes currently used.
-
-        @return A C{dict} with account meta data.
-        """
-        raise NotImplementedError(
-            'get_account_meta_data not implemented for this driver')
-
     def list_containters(self):
         raise NotImplementedError(
             'list_containers not implemented for this driver')

Modified: incubator/libcloud/trunk/libcloud/storage/drivers/cloudfiles.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/libcloud/storage/drivers/cloudfiles.py?rev=1103357&r1=1103356&r2=1103357&view=diff
==============================================================================
--- incubator/libcloud/trunk/libcloud/storage/drivers/cloudfiles.py (original)
+++ incubator/libcloud/trunk/libcloud/storage/drivers/cloudfiles.py Sun May 15 12:56:48 2011
@@ -147,23 +147,6 @@ class CloudFilesStorageDriver(StorageDri
     connectionCls = CloudFilesConnection
     hash_type = 'md5'
 
-    def get_meta_data(self):
-        response = self.connection.request('', method='HEAD')
-
-        if response.status == httplib.NO_CONTENT:
-            container_count = response.headers.get(
-                'x-account-container-count', 'unknown')
-            object_count = response.headers.get(
-                'x-account-object-count', 'unknown')
-            bytes_used = response.headers.get(
-                'x-account-bytes-used', 'unknown')
-
-            return { 'container_count': int(container_count),
-                      'object_count': int(object_count),
-                      'bytes_used': int(bytes_used) }
-
-        raise LibcloudError('Unexpected status code: %s' % (response.status))
-
     def list_containers(self):
         response = self.connection.request('')
 
@@ -351,6 +334,23 @@ class CloudFilesStorageDriver(StorageDri
 
         raise LibcloudError('Unexpected status code: %s' % (response.status))
 
+    def ex_get_meta_data(self):
+        response = self.connection.request('', method='HEAD')
+
+        if response.status == httplib.NO_CONTENT:
+            container_count = response.headers.get(
+                'x-account-container-count', 'unknown')
+            object_count = response.headers.get(
+                'x-account-object-count', 'unknown')
+            bytes_used = response.headers.get(
+                'x-account-bytes-used', 'unknown')
+
+            return { 'container_count': int(container_count),
+                      'object_count': int(object_count),
+                      'bytes_used': int(bytes_used) }
+
+        raise LibcloudError('Unexpected status code: %s' % (response.status))
+
     def _put_object(self, container, object_name, upload_func,
                     upload_func_kwargs, extra=None, file_path=None,
                     iterator=None, verify_hash=True):

Modified: incubator/libcloud/trunk/test/storage/test_cloudfiles.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/test/storage/test_cloudfiles.py?rev=1103357&r1=1103356&r2=1103357&view=diff
==============================================================================
--- incubator/libcloud/trunk/test/storage/test_cloudfiles.py (original)
+++ incubator/libcloud/trunk/test/storage/test_cloudfiles.py Sun May 15 12:56:48 2011
@@ -52,9 +52,6 @@ class CloudFilesTests(unittest.TestCase)
     def tearDown(self):
         self._remove_test_file()
 
-    def test_get_meta_data(self):
-        self.driver.get_meta_data()
-
     def test_invalid_json_throws_exception(self):
         CloudFilesMockHttp.type = 'MALFORMED_JSON'
         try:
@@ -399,6 +396,12 @@ class CloudFilesTests(unittest.TestCase)
         else:
             self.fail('Object does not exist but an exception was not thrown')
 
+    def test_ex_get_meta_data(self):
+        meta_data = self.driver.ex_get_meta_data()
+        self.assertTrue(isinstance(meta_data, dict))
+        self.assertTrue('object_count' in meta_data)
+        self.assertTrue('container_count' in meta_data)
+        self.assertTrue('bytes_used' in meta_data)
 
     def _remove_test_file(self):
         file_path = os.path.abspath(__file__) + '.temp'

Modified: incubator/libcloud/trunk/test/storage/test_s3.py
URL: http://svn.apache.org/viewvc/incubator/libcloud/trunk/test/storage/test_s3.py?rev=1103357&r1=1103356&r2=1103357&view=diff
==============================================================================
--- incubator/libcloud/trunk/test/storage/test_s3.py (original)
+++ incubator/libcloud/trunk/test/storage/test_s3.py Sun May 15 12:56:48 2011
@@ -73,14 +73,6 @@ class S3Tests(unittest.TestCase):
         else:
             self.fail('Exception was not thrown')
 
-    def test_get_meta_data(self):
-        try:
-            self.driver.get_meta_data()
-        except NotImplementedError:
-            pass
-        else:
-            self.fail('Exception was not thrown')
-
     def test_list_containers_empty(self):
         S3MockHttp.type = 'list_containers_EMPTY'
         containers = self.driver.list_containers()