From acb9daf1257fa2b2e6a6f782249d682d60280c23 Mon Sep 17 00:00:00 2001 From: rmahroua Date: Fri, 5 May 2023 08:21:00 +0000 Subject: [PATCH] s3_lifecycle - fix invalid value type for transitions list (#1788) s3_lifecycle - fix invalid value type for transitions list Depends-On: #1792 SUMMARY Fixes #1774 ISSUE TYPE Bugfix Pull Request COMPONENT NAME s3_lifecycle ADDITIONAL INFORMATION Forces casting to integer for the transition_days parameter of a transitions list. Reviewed-by: Mark Chappell --- changelogs/fragments/20230424-s3_lifecycle.yml | 3 +++ plugins/modules/s3_lifecycle.py | 4 ++-- tests/integration/targets/s3_lifecycle/tasks/main.yml | 8 ++++---- 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 changelogs/fragments/20230424-s3_lifecycle.yml diff --git a/changelogs/fragments/20230424-s3_lifecycle.yml b/changelogs/fragments/20230424-s3_lifecycle.yml new file mode 100644 index 00000000000..599add8591a --- /dev/null +++ b/changelogs/fragments/20230424-s3_lifecycle.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - s3_lifecycle - fix invalid value type for transitions list (https://github.com/ansible-collections/community.aws/issues/1774) diff --git a/plugins/modules/s3_lifecycle.py b/plugins/modules/s3_lifecycle.py index 9d5ea3b8ff6..24517b1e372 100644 --- a/plugins/modules/s3_lifecycle.py +++ b/plugins/modules/s3_lifecycle.py @@ -331,7 +331,7 @@ def build_rule(client, module): if transition.get("transition_date"): t_out["Date"] = transition["transition_date"] elif transition.get("transition_days") is not None: - t_out["Days"] = transition["transition_days"] + t_out["Days"] = int(transition["transition_days"]) if transition.get("storage_class"): t_out["StorageClass"] = transition["storage_class"].upper() rule["Transitions"].append(t_out) @@ -498,7 +498,7 @@ def create_lifecycle_rule(client, module): aws_retry=True, Bucket=name, LifecycleConfiguration=lifecycle_configuration ) except is_boto3_error_message("At least one action needs to be specified in a rule"): - # Amazon interpretted this as not changing anything + # Amazon interpreted this as not changing anything changed = False except ( botocore.exceptions.ClientError, diff --git a/tests/integration/targets/s3_lifecycle/tasks/main.yml b/tests/integration/targets/s3_lifecycle/tasks/main.yml index e12fd0c748f..75227044a41 100644 --- a/tests/integration/targets/s3_lifecycle/tasks/main.yml +++ b/tests/integration/targets/s3_lifecycle/tasks/main.yml @@ -9,7 +9,7 @@ security_token: '{{ security_token | default(omit) }}' region: '{{ aws_region }}' s3_lifecycle: - wait: yes + wait: true block: # ============================================================ @@ -33,7 +33,7 @@ prefix: "{{ item }}" status: enabled state: present - wait: yes + wait: true register: output loop: - rule_1 @@ -51,7 +51,7 @@ prefix: "{{ item }}" status: enabled state: absent - wait: yes + wait: true register: output loop: - rule_1 @@ -700,6 +700,6 @@ s3_bucket: name: "{{item}}" state: absent - ignore_errors: yes + ignore_errors: true with_items: - '{{ bucket_name }}'