mirror of https://github.com/ansible/ansible.git
rds_instance: add point-in-time instance restore test (#59411)
parent
ef59dd2ca2
commit
60c76be03c
@ -0,0 +1,95 @@
|
|||||||
|
---
|
||||||
|
- block:
|
||||||
|
|
||||||
|
- name: set up aws connection info
|
||||||
|
set_fact:
|
||||||
|
aws_connection_info: &aws_connection_info
|
||||||
|
aws_access_key: "{{ aws_access_key }}"
|
||||||
|
aws_secret_key: "{{ aws_secret_key }}"
|
||||||
|
security_token: "{{ security_token }}"
|
||||||
|
region: "{{ aws_region }}"
|
||||||
|
no_log: yes
|
||||||
|
|
||||||
|
- name: Ensure the resource doesn't exist
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}"
|
||||||
|
state: absent
|
||||||
|
skip_final_snapshot: True
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- not result.changed
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: Create a source DB instance
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}"
|
||||||
|
state: present
|
||||||
|
engine: mysql
|
||||||
|
backup_retention_period: 1
|
||||||
|
username: "{{ username }}"
|
||||||
|
password: "{{ password }}"
|
||||||
|
db_instance_class: "{{ db_instance_class }}"
|
||||||
|
allocated_storage: "{{ allocated_storage }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: source_db
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- source_db.changed
|
||||||
|
- "source_db.db_instance_identifier == '{{ instance_id }}'"
|
||||||
|
|
||||||
|
- name: Create a point in time DB instance
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}-point-in-time"
|
||||||
|
state: present
|
||||||
|
source_db_instance_identifier: "{{ instance_id }}"
|
||||||
|
creation_source: instance
|
||||||
|
engine: mysql
|
||||||
|
username: "{{ username }}"
|
||||||
|
password: "{{ password }}"
|
||||||
|
db_instance_class: "{{ db_instance_class }}"
|
||||||
|
allocated_storage: "{{ allocated_storage }}"
|
||||||
|
use_latest_restorable_time: True
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: Test idempotence with a point in time replica
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}-point-in-time"
|
||||||
|
state: present
|
||||||
|
source_db_instance_identifier: "{{ instance_id }}"
|
||||||
|
creation_source: instance
|
||||||
|
engine: mysql
|
||||||
|
username: "{{ username }}"
|
||||||
|
password: "{{ password }}"
|
||||||
|
db_instance_class: "{{ db_instance_class }}"
|
||||||
|
allocated_storage: "{{ allocated_storage }}"
|
||||||
|
restore_time: "{{ result.latest_restorable_time }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- not result.changed
|
||||||
|
|
||||||
|
always:
|
||||||
|
|
||||||
|
- name: Remove the DB instance
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}"
|
||||||
|
state: absent
|
||||||
|
skip_final_snapshot: True
|
||||||
|
<<: *aws_connection_info
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
|
||||||
|
- name: Remove the point in time restored DB
|
||||||
|
rds_instance:
|
||||||
|
id: "{{ instance_id }}-point-in-time"
|
||||||
|
state: absent
|
||||||
|
skip_final_snapshot: True
|
||||||
|
<<: *aws_connection_info
|
||||||
|
ignore_errors: yes
|
||||||
Loading…
Reference in New Issue