ansible-collections / amazon.aws

Ansible Collection for Amazon AWS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Idempotence fails with backup_plan on botocore >= 1.31.36

gravesm opened this issue · comments

Summary

The backup_plan module is not idempotent on botocore >= 1.31.36. This is because timezone customization support was added for rules (https://github.com/boto/boto3/blob/86426e872033d2d03e083fa53848e53d099ebcde/CHANGELOG.rst#L1112). The ScheduleExpressionTimezone field is always returned when describing a backup plan and defaults to Etc/UTC.

Issue Type

Bug Report

Component Name

backup_plan

Ansible Version

$ ansible --version
ansible [core 2.17.0.dev0] (milestone 5812cabaf5) last updated 2023/11/29 15:10:13 (GMT -400)
  config file = None
  configured module search path = ['/home/mgraves/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/mgraves/git/ansible/lib/ansible
  ansible collection location = /home/mgraves/git:/home/mgraves/.ansible/collections
  executable location = /home/mgraves/git/ansible/bin/ansible
  python version = 3.10.2 (main, Feb 22 2022, 13:57:33) [GCC 10.2.1 20210110] (/home/mgraves/git/ansible/venv-3.10/bin/python)
  jinja version = 3.1.2
  libyaml = True

Collection Versions

$ ansible-galaxy collection list
amazon.aws                8.0.0-dev0

AWS SDK versions

$ pip show boto boto3 botocore
Name: boto3
Version: 1.28.35
Summary: The AWS SDK for Python
Home-page: https://github.com/boto/boto3
Author: Amazon Web Services
Author-email: 
License: Apache License 2.0
Location: /home/mgraves/git/ansible/venv-3.10/lib/python3.10/site-packages
Requires: botocore, jmespath, s3transfer
Required-by: 
---
Name: botocore
Version: 1.31.36
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
Author-email: 
License: Apache License 2.0
Location: /home/mgraves/git/ansible/venv-3.10/lib/python3.10/site-packages
Requires: jmespath, python-dateutil, urllib3
Required-by: boto3, s3transfer

Configuration

No response

OS / Environment

No response

Steps to Reproduce

- hosts: localhost
  gather_facts: false
  vars:
    backup_vault_name: "mgraves-test-backup-vault"
    backup_plan_name: "mgraves-test-backup-plan"
  tasks:
    - name: Create a backup vault for the plan to target
      amazon.aws.backup_vault:
        backup_vault_name: "{{ backup_vault_name }}"

    - name: Create a backup plan
      amazon.aws.backup_plan:
        backup_plan_name: "{{ backup_plan_name }}"
        rules:
          - rule_name: daily
            target_backup_vault_name: "{{ backup_vault_name }}"
        tags:
          Environment: Test

    - name: Create the same backup plan
      amazon.aws.backup_plan:
        backup_plan_name: "{{ backup_plan_name }}"
        rules:
          - rule_name: daily
            target_backup_vault_name: "{{ backup_vault_name }}"
        tags:
          Environment: Test

Expected Results

The second task creating a backup plan should not show changed.

Actual Results

The second task creating a backup plan shows that it changed.

Code of Conduct

  • I agree to follow the Ansible Code of Conduct