diff --git a/changelogs/fragments/20250417-rds_instance-retention.yml b/changelogs/fragments/20250417-rds_instance-retention.yml new file mode 100644 index 00000000000..6efccc2b61e --- /dev/null +++ b/changelogs/fragments/20250417-rds_instance-retention.yml @@ -0,0 +1,2 @@ +bugfixes: + - rds_instance - Allow modifying the ``backup_retention_period`` option. When it was set, the value provided was ignored (https://github.com/ansible-collections/amazon.aws/pull/2579). diff --git a/plugins/modules/rds_instance.py b/plugins/modules/rds_instance.py index 27cbd4766ce..717151993b3 100644 --- a/plugins/modules/rds_instance.py +++ b/plugins/modules/rds_instance.py @@ -1187,6 +1187,10 @@ def get_options_with_changing_values(client, module: AnsibleAWSModule, parameter ): parameters.pop("NewDBInstanceIdentifier") + backup_retention_period = module.params.get("backup_retention_period") + if instance.get("BackupRetentionPeriod") != backup_retention_period: + parameters["BackupRetentionPeriod"] = backup_retention_period + if parameters: parameters["DBInstanceIdentifier"] = instance_id if apply_immediately is not None: diff --git a/tests/integration/targets/rds_instance_complex/tasks/main.yml b/tests/integration/targets/rds_instance_complex/tasks/main.yml index a7b8f330f6c..74e4c71b717 100644 --- a/tests/integration/targets/rds_instance_complex/tasks/main.yml +++ b/tests/integration/targets/rds_instance_complex/tasks/main.yml @@ -49,6 +49,8 @@ that: - result.changed - result.db_instance_identifier == instance_id + - '"backup_retention_period" in result' + - result.backup_retention_period | int == 0' - name: Add IAM roles to mariab (should fail - iam roles not supported for mariadb) amazon.aws.rds_instance: @@ -130,6 +132,8 @@ - '"port" in result.pending_modified_values or result.endpoint.port == 1150' - '"db_instance_class" in result.pending_modified_values or result.db_instance_class == modified_db_instance_class' - '"monitoring_interval" in result.pending_modified_values or result.monitoring_interval == monitoring_interval' + - '"backup_retention_period" in result' + - result.backup_retention_period | int == 0' - name: Idempotence modifying several pending attributes - check_mode amazon.aws.rds_instance: @@ -179,6 +183,8 @@ - '"max_allocated_storage" in result.pending_modified_values or result.max_allocated_storage == 150' - '"port" in result.pending_modified_values or result.endpoint.port == 1150' - '"db_instance_class" in result.pending_modified_values or result.db_instance_class == modified_db_instance_class' + - '"backup_retention_period" in result' + - result.backup_retention_period | int == 0' always: - name: Delete the instance