Skip to content

Commit

Permalink
added integration test cases and added more description into fragment
Browse files Browse the repository at this point in the history
  • Loading branch information
taehopark32 committed Jul 7, 2023
1 parent 44b6a4e commit 1d616f4
Show file tree
Hide file tree
Showing 3 changed files with 174 additions and 0 deletions.
3 changes: 3 additions & 0 deletions tests/integration/targets/rds_cluster_states/aliases
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
time=20m
cloud/aws
rds_cluster
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
cluster_id: ansible-test-cluster-{{ tiny_prefix }}
username: testrdsusername
password: test-rds_password
engine: aurora
db_cluster_instance_class: db.r5.large
166 changes: 166 additions & 0 deletions tests/integration/targets/rds_cluster_states/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
- module_defaults:
group/aws:
region: '{{ aws_region }}'
aws_access_key: '{{ aws_access_key }}'
aws_secret_key: '{{ aws_secret_key }}'
security_token: '{{ security_token | default(omit) }}'
block:
# ------------------------------------------------------------------------------------------
# Create DB cluster
- name: Ensure the resource doesn't exist
rds_cluster:
id: '{{ cluster_id }}'
state: absent
engine: '{{ engine}}'
username: '{{ username }}'
password: '{{ password }}'
skip_final_snapshot: true
register: _result_delete_db_cluster

- assert:
that:
- not _result_delete_db_cluster.changed
ignore_errors: yes

- name: Create an Aurora-PostgreSQL DB cluster
rds_cluster:
id: '{{ cluster_id }}'
state: present
engine: aurora-postgresql
engine_mode: provisioned
db_cluster_instance_class: '{{ db_cluster_instance_class }}'
username: '{{ username }}'
password: '{{ password }}'
register: _result_create_source_db_cluster

- assert:
that:
- _result_create_source_db_cluster.changed
- _result_create_source_db_cluster.changed
- "'allocated_storage' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.allocated_storage == 1
- "'cluster_create_time' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.copy_tags_to_snapshot == false
- "'db_cluster_arn' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.db_cluster_identifier == '{{ cluster_id }}'
- "'db_cluster_parameter_group' in _result_create_source_db_cluster"
- "'db_cluster_resource_id' in _result_create_source_db_cluster"
- "'endpoint' in _result_create_source_db_cluster"
- "'engine' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.engine == "aurora-postgresql"
- "'engine_mode' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.engine_mode == "provisioned"
- "'engine_version' in _result_create_source_db_cluster"
- "'master_username' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.master_username == "{{ username }}"
- "'port' in _result_create_source_db_cluster"
- "'status' in _result_create_source_db_cluster"
- _result_create_source_db_cluster.status == "available"
- "'tags' in _result_create_source_db_cluster"
- "'vpc_security_groups' in _result_create_source_db_cluster"

# ------------------------------------------------------------------------------------------
# Test stopping db clusters
- name: Stop db clusters - checkmode
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: stopped
register: check_stopped_cluster
check_mode: yes

- assert:
that:
- check_stopped_cluster.changed

- name: Stop db clusters
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: stopped
register: stopped_cluster

- assert:
that:
- stopped_cluster.changed

- name: Wait until db clusters state is stopped
amazon.aws.rds_cluster_info:
cluster_id: '{{ cluster_id }}'
register: stopped_cluster_info
retries: 30
delay: 60
until: stopped_cluster_info.clusters[0].status == "stopped"

- name: Stop db clusters (idempotence) - checkmode
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: stopped
register: check_stopped_cluster_idem
check_mode: yes

- assert:
that:
- not check_stopped_cluster_idem.changed

- name: Stop db clusters (idempotence)
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: stopped
register: stopped_cluster_idem

- assert:
that:
- not stopped_cluster_idem.changed

# ------------------------------------------------------------------------------------------
# Test starting DB clusters
- name: Start db clusters - checkmode
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: started
register: started_cluster
check_mode: yes

- assert:
that:
- started_cluster.changed

- name: Start db clusters
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: started
register: started_cluster

- assert:
that:
- started_cluster.changed

- name: Start db clusters (idempotence) - checkmode
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: started
register: started_cluster
check_mode: yes

- assert:
that:
- not started_cluster.changed

- name: Start db clusters
amazon.aws.rds_cluster:
cluster_id: '{{ cluster_id }}'
state: started
register: started_cluster

- assert:
that:
- not started_cluster.changed

# ------------------------------------------------------------------------------------------
# Cleanup starts here
always:
- name: Delete db cluster without creating a final snapshot
rds_cluster:
state: absent
cluster_id: '{{ cluster_id }}'
skip_final_snapshot: true
ignore_errors: true

0 comments on commit 1d616f4

Please sign in to comment.