]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
nuke_prefixed_buckets() ignores 404 from bucket delete 272/head
authorCasey Bodley <cbodley@redhat.com>
Mon, 22 Apr 2019 19:34:23 +0000 (15:34 -0400)
committerCasey Bodley <cbodley@redhat.com>
Mon, 22 Apr 2019 19:35:12 +0000 (15:35 -0400)
if a bucket delete request times out, the retry will likely get a 404
NoSuchBucket response. ignore that error and treat this as a success

Signed-off-by: Casey Bodley <cbodley@redhat.com>
s3tests/functional/__init__.py
s3tests_boto3/functional/__init__.py

index 05e3a6b9d1d6b9df003c8f78d131f8b1cdd7b0c9..4727285ab03356b49330bac517ae1c0055e01e34 100644 (file)
@@ -91,7 +91,13 @@ def nuke_prefixed_buckets_on_conn(prefix, name, conn):
                             ))
                         # key.set_canned_acl('private')
                         bucket.delete_key(key.name, version_id = key.version_id)
-                    bucket.delete()
+                    try:
+                        bucket.delete()
+                    except boto.exception.S3ResponseError as e:
+                        # if DELETE times out, the retry may see NoSuchBucket
+                        if e.error_code != 'NoSuchBucket':
+                            raise e
+                        pass
                     success = True
                 except boto.exception.S3ResponseError as e:
                     if e.error_code != 'AccessDenied':
index 9f7f1932225e2a98010fcc007789cb2191632e27..d892d64a29e16b18331b133433fda7c5f0973a51 100644 (file)
@@ -1,6 +1,7 @@
 import boto3
 from botocore import UNSIGNED
 from botocore.client import Config
+from botocore.exceptions import ClientError
 from botocore.handlers import disable_signing
 import ConfigParser
 import os
@@ -123,7 +124,13 @@ def nuke_prefixed_buckets(prefix, client=None):
             delete_markers = get_delete_markers_list(bucket_name, client)
             for obj in delete_markers:
                 response = client.delete_object(Bucket=bucket_name,Key=obj[0],VersionId=obj[1])
-            client.delete_bucket(Bucket=bucket_name)
+            try:
+                client.delete_bucket(Bucket=bucket_name)
+            except ClientError, e:
+                # if DELETE times out, the retry may see NoSuchBucket
+                if e.response['Error']['Code'] != 'NoSuchBucket':
+                    raise e
+                pass
 
     print('Done with cleanup of buckets in tests.')