Skip to content

Commit

Permalink
Review feedback and verify with s3_bucket_info
Browse files Browse the repository at this point in the history
  • Loading branch information
abraverm authored and alinabuzachis committed Jun 28, 2024
1 parent be94f57 commit 0896bb3
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 15 deletions.
34 changes: 19 additions & 15 deletions plugins/modules/s3_bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@
- Enables Amazon S3 Transfer Acceleration, sent data will be routed to Amazon S3 over an optimized network path.
type: bool
default: false
version_added: 7.6.0
version_added: 8.1.0
extends_documentation_fragment:
- amazon.aws.common.modules
Expand Down Expand Up @@ -297,7 +297,7 @@
- amazon.aws.s3_bucket:
name: mys3bucket
state: present
accelerate: true
accelerate_enabled: true
"""

RETURN = r"""
Expand Down Expand Up @@ -403,6 +403,11 @@
RestrictPublicBuckets:
description: Specifies whether Amazon S3 should restrict public bucket policies for this bucket.
type: bool
accelerate_enabled:
description: S3 bucket acceleration status.
type: bool
returned: O(state=present)
sample: true
"""

import json
Expand Down Expand Up @@ -898,7 +903,7 @@ def handle_bucket_accelerate(s3_client, module: AnsibleAWSModule, name: str) ->
and a dictionary containing the updated transfer accelerate setting.
"""
accelerate_enabled = module.params.get("accelerate_enabled")
accelerate_enabled_result = {}
accelerate_enabled_result = False
accelerate_enabled_changed = False
try:
accelerate_status = get_bucket_accelerate_status(s3_client, name)
Expand All @@ -915,18 +920,17 @@ def handle_bucket_accelerate(s3_client, module: AnsibleAWSModule, name: str) ->
) as e: # pylint: disable=duplicate-except
module.fail_json_aws(e, msg="Failed to fetch bucket transfer acceleration state")
else:
if accelerate_status is not None:
try:
if not accelerate_enabled and accelerate_status:
delete_bucket_accelerate_configuration(s3_client, name)
accelerate_enabled_changed = True
accelerate_enabled_result = False
if accelerate_enabled and not accelerate_status:
put_bucket_accelerate_configuration(s3_client, name)
accelerate_enabled_changed = True
accelerate_enabled_result = True
except (botocore.exceptions.BotoCoreError, botocore.exceptions.ClientError) as e:
module.fail_json_aws(e, msg="Failed to update bucket transfer acceleration")
try:
if not accelerate_enabled and accelerate_status:
delete_bucket_accelerate_configuration(s3_client, name)
accelerate_enabled_changed = True
accelerate_enabled_result = False
if accelerate_enabled and not accelerate_status:
put_bucket_accelerate_configuration(s3_client, name)
accelerate_enabled_changed = True
accelerate_enabled_result = True
except (botocore.exceptions.BotoCoreError, botocore.exceptions.ClientError) as e:
module.fail_json_aws(e, msg="Failed to update bucket transfer acceleration")
return accelerate_enabled_changed, accelerate_enabled_result


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@
- output.changed
- output.accelerate_enabled

- name: Assert transfer acceleration enabled
amazon.aws.s3_bucket_info:
name: "{{ local_bucket_name }}"
bucket_facts:
bucket_accelerate_configuration: true
register: output

- ansible.builtin.assert:
that:
- item.bucket_accelerate_configuration["Status"] == "Enabled"
loop: "{{ output.buckets }}"
loop_control:
label: "{{ item.name }}"

- name: Re-Enable transfer acceleration (idempotency)
amazon.aws.s3_bucket:
name: "{{ local_bucket_name }}"
Expand All @@ -59,6 +73,20 @@
- not output.changed
- output.accelerate_enabled

- name: Assert transfer acceleration enabled
amazon.aws.s3_bucket_info:
name: "{{ local_bucket_name }}"
bucket_facts:
bucket_accelerate_configuration: true
register: output

- ansible.builtin.assert:
that:
- item.bucket_accelerate_configuration["Status"] == "Enabled"
loop: "{{ output.buckets }}"
loop_control:
label: "{{ item.name }}"

- name: Delete test s3 bucket
amazon.aws.s3_bucket:
name: "{{ local_bucket_name }}"
Expand All @@ -83,6 +111,20 @@
- output.changed
- output.accelerate_enabled

- name: Assert transfer acceleration enabled
amazon.aws.s3_bucket_info:
name: "{{ local_bucket_name }}"
bucket_facts:
bucket_accelerate_configuration: true
register: output

- ansible.builtin.assert:
that:
- item.bucket_accelerate_configuration["Status"] == "Enabled"
loop: "{{ output.buckets }}"
loop_control:
label: "{{ item.name }}"

- name: Disable transfer accelerate
amazon.aws.s3_bucket:
name: "{{ local_bucket_name }}-2"
Expand All @@ -96,6 +138,20 @@
- output.changed
- not output.accelerate_enabled

- name: Assert transfer acceleration disabled
amazon.aws.s3_bucket_info:
name: "{{ local_bucket_name }}"
bucket_facts:
bucket_accelerate_configuration: true
register: output

- ansible.builtin.assert:
that:
- item.bucket_accelerate_configuration["Status"] == "Disabled"
loop: "{{ output.buckets }}"
loop_control:
label: "{{ item.name }}"

- name: Re-Enable transfer accelerate (idempotency)
amazon.aws.s3_bucket:
name: "{{ local_bucket_name }}-2"
Expand All @@ -108,6 +164,20 @@
- output.changed
- output.accelerate_enabled

- name: Assert transfer acceleration enabled
amazon.aws.s3_bucket_info:
name: "{{ local_bucket_name }}"
bucket_facts:
bucket_accelerate_configuration: true
register: output

- ansible.builtin.assert:
that:
- item.bucket_accelerate_configuration["Status"] == "Enabled"
loop: "{{ output.buckets }}"
loop_control:
label: "{{ item.name }}"

- name: Touch bucket with transfer accelerate enabled (idempotency)
amazon.aws.s3_bucket:
name: "{{ local_bucket_name }}-2"
Expand Down

0 comments on commit 0896bb3

Please sign in to comment.