in taskcat/_config.py [0:0]
def _create_regional_bucket_obj(self, bucket_objects, region, test):
_bucket_obj_key = f"{region.account_id}{region.name}"
new = False
object_acl = (
self.config.project.s3_object_acl
if self.config.project.s3_object_acl
else "private"
)
sigv4 = not self.config.project.s3_enable_sig_v2
org_id = self.config.project.org_id
if not test.s3_bucket and not bucket_objects.get(_bucket_obj_key):
name = generate_regional_bucket_name(region)
auto_generated = True
new = True
elif bucket_objects.get(_bucket_obj_key):
name = bucket_objects[_bucket_obj_key].name
auto_generated = bucket_objects[_bucket_obj_key].auto_generated
else:
name = f"{test.s3_bucket}-{region.name}"
auto_generated = False
try:
region.client("s3").head_bucket(Bucket=name)
except ClientError as e:
if "(404)" in str(e):
new = True
else:
raise
bucket_obj = S3BucketObj(
name=name,
region=region.name,
account_id=region.account_id,
s3_client=region.session.client("s3", region_name=region.name),
auto_generated=auto_generated,
object_acl=object_acl,
sigv4=sigv4,
taskcat_id=self.uid,
partition=region.partition,
regional_buckets=test.s3_regional_buckets,
org_id=org_id,
)
if new:
bucket_obj.create()
return bucket_obj