aboutsummaryrefslogtreecommitdiff
path: root/test/s3/iam/s3_iam_framework.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/s3/iam/s3_iam_framework.go')
-rw-r--r--test/s3/iam/s3_iam_framework.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/s3/iam/s3_iam_framework.go b/test/s3/iam/s3_iam_framework.go
index 178ae0763..c155b7358 100644
--- a/test/s3/iam/s3_iam_framework.go
+++ b/test/s3/iam/s3_iam_framework.go
@@ -705,12 +705,22 @@ func (f *S3IAMTestFramework) CreateBucketWithCleanup(s3Client *s3.S3, bucketName
f.t.Logf("Warning: Failed to delete existing bucket %s: %v", bucketName, deleteErr)
}
+ // Add a small delay to allow deletion to propagate
+ time.Sleep(100 * time.Millisecond)
+
// Now create it fresh
_, err = s3Client.CreateBucket(&s3.CreateBucketInput{
Bucket: aws.String(bucketName),
})
if err != nil {
- return fmt.Errorf("failed to recreate bucket after cleanup: %v", err)
+ // If it still says bucket exists after cleanup, it might be in an inconsistent state
+ // In this case, just use the existing bucket since we emptied it
+ if awsErr, ok := err.(awserr.Error); ok && (awsErr.Code() == "BucketAlreadyExists" || awsErr.Code() == "BucketAlreadyOwnedByYou") {
+ f.t.Logf("Bucket %s still exists after cleanup, reusing it", bucketName)
+ // Bucket exists and is empty, so we can proceed
+ } else {
+ return fmt.Errorf("failed to recreate bucket after cleanup: %v", err)
+ }
}
} else {
return err