From 20b5ff5ab7fdc1fca7c6c402f5447cf4cfdd9c33 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 1 Aug 2019 23:00:07 +0200 Subject: [PATCH] [s3_bucket] access the bucket encryption response gracefully (#59826) Signed-off-by: Jakob Ackermann --- lib/ansible/modules/cloud/amazon/s3_bucket.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/cloud/amazon/s3_bucket.py b/lib/ansible/modules/cloud/amazon/s3_bucket.py index c59af28f50f..48e54711421 100644 --- a/lib/ansible/modules/cloud/amazon/s3_bucket.py +++ b/lib/ansible/modules/cloud/amazon/s3_bucket.py @@ -419,12 +419,14 @@ def put_bucket_versioning(s3_client, bucket_name, required_versioning): def get_bucket_encryption(s3_client, bucket_name): try: result = s3_client.get_bucket_encryption(Bucket=bucket_name) - return result.get('ServerSideEncryptionConfiguration').get('Rules')[0].get('ApplyServerSideEncryptionByDefault') + return result.get('ServerSideEncryptionConfiguration', {}).get('Rules', [])[0].get('ApplyServerSideEncryptionByDefault') except ClientError as e: if e.response['Error']['Code'] == 'ServerSideEncryptionConfigurationNotFoundError': return None else: raise e + except (IndexError, KeyError): + return None @AWSRetry.exponential_backoff(max_delay=120, catch_extra_error_codes=['NoSuchBucket'])