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 b01402ebdb5..41d0de1d286 100644 --- a/plugins/modules/s3_lifecycle.py +++ b/plugins/modules/s3_lifecycle.py @@ -326,7 +326,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) @@ -489,7 +489,7 @@ def create_lifecycle_rule(client, module): 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, botocore.exceptions.BotoCoreError) as e: # pylint: disable=duplicate-except module.fail_json_aws(e, lifecycle_configuration=lifecycle_configuration, name=name, old_lifecycle_rules=old_lifecycle_rules) diff --git a/tests/integration/targets/s3_lifecycle/tasks/main.yml b/tests/integration/targets/s3_lifecycle/tasks/main.yml index 71f183e8f38..7a15e4b66f7 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 @@ -704,6 +704,6 @@ s3_bucket: name: "{{item}}" state: absent - ignore_errors: yes + ignore_errors: true with_items: - '{{ bucket_name }}'