]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
Fall back when nuking buckets 51/head
authorAndrew Gaul <andrew@gaul.org>
Fri, 24 Apr 2015 21:35:35 +0000 (14:35 -0700)
committerAndrew Gaul <andrew@gaul.org>
Fri, 24 Apr 2015 21:47:28 +0000 (14:47 -0700)
Some S3 implementations do not support object versioning - fall back
to listing without versions.

Signed-off-by: Andrew Gaul <andrew@gaul.org>
s3tests/functional/__init__.py

index a575cebf4a2491b551eb97dd74e6fdc6bd25e2c1..9681099c312480551153c4083e6d999f13ab4c7f 100644 (file)
@@ -67,7 +67,17 @@ def nuke_prefixed_buckets_on_conn(prefix, name, conn):
             success = False
             for i in xrange(2):
                 try:
-                    for key in bucket.list_versions():
+                    try:
+                        iterator = iter(bucket.list_versions())
+                        # peek into iterator to issue list operation
+                        keys = itertools.chain([next(iterator)], iterator)
+                    except boto.exception.S3ResponseError as e:
+                        # some S3 implementations do not support object
+                        # versioning - fall back to listing without versions
+                        if e.error_code != 'NotImplemented':
+                            raise e
+                        keys = bucket.list();
+                    for key in keys:
                         print 'Cleaning bucket {bucket} key {key}'.format(
                             bucket=bucket,
                             key=key,