Add info in container-not-found error
authorStavros Sachtouris <saxtouri@admin.grnet.gr>
Mon, 10 Dec 2012 14:08:15 +0000 (16:08 +0200)
committerStavros Sachtouris <saxtouri@admin.grnet.gr>
Mon, 10 Dec 2012 14:08:15 +0000 (16:08 +0200)
kamaki/cli/commands/test_cli.py
kamaki/cli/utils.py
kamaki/clients/pithos.py

index 6c3a6f8..578cb97 100644 (file)
@@ -128,13 +128,24 @@ class test_prints(_test_init):
 
     l2 = [d2, l1, d1]
 
+    d3 = {'dict 1': d1, 'dict 2': d2, 'list2': l2,
+        'long key of size 75 characters is used to' +\
+        ' check the effects on total result': l1}
+
     def main(self):
-        from utils import print_dict, print_list
-        print('- - -\nTest simple dict')
-        print_dict(self.d1)
-        print('\n- - -\nTest simple list')
-        print_list(self.l1)
-        print('- - -\nTest 2-level dict')
+        from kamaki.cli.utils import print_dict, print_list
+        print('Test simple dict:\n- - -')
         print_dict(self.d1)
-        print('\n- - -\nTest non-trivial list')
+        print('- - -\n')
+        print('\nTest simple list:\n- - -')
         print_list(self.l1)
+        print('- - -\n')
+        print('\nTest 2-level dict:\n- - -')
+        print_dict(self.d2)
+        print('- - -\n')
+        print('\nTest non-trivial list:\n- - -')
+        print_list(self.l2)
+        print('- - -')
+        print('\nTest extreme dict:\n- - -')
+        print_dict(self.d3)
+        print('- - -\n')
index 13ff27c..fbe7ce6 100644 (file)
@@ -98,8 +98,13 @@ def print_list(l, exclude=(), ident=0):
         raiseCLIError(TypeError('Cannot list_print a non-list object'))
 
     if l:
-        margin = max(len(unicode(item).strip())\
-            for item in l if item not in exclude)
+        try:
+            margin = max(len(unicode(item).strip()) for item in l\
+                if not (isinstance(item, dict)\
+                or isinstance(item, list)\
+                or item in exclude))
+        except ValueError:
+            margin = 0
 
     for item in sorted(l):
         if item in exclude:
index 26d5fe3..9166944 100644 (file)
@@ -758,8 +758,14 @@ class PithosClient(PithosRestAPI):
         :param until: (str) formated date
 
         :returns: (dict)
+
+        :raises ClientError: 404 Container not found
         """
-        r = self.container_head(until=until)
+        try:
+            r = self.container_head(until=until)
+        except ClientError as err:
+            err.details.append('for container %s' % self.container)
+            raise err
         return r.headers
 
     def get_container_meta(self, until=None):