From: Andrew Gaul Date: Fri, 24 Apr 2015 21:35:35 +0000 (-0700) Subject: Fall back when nuking buckets X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F51%2Fhead;p=s3-tests.git Fall back when nuking buckets Some S3 implementations do not support object versioning - fall back to listing without versions. Signed-off-by: Andrew Gaul --- diff --git a/s3tests/functional/__init__.py b/s3tests/functional/__init__.py index a575cebf..9681099c 100644 --- a/s3tests/functional/__init__.py +++ b/s3tests/functional/__init__.py @@ -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,