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 }}'