diff --git a/test/integration/amazon.yml b/test/integration/amazon.yml index c0fea475c9..a8931adf01 100644 --- a/test/integration/amazon.yml +++ b/test/integration/amazon.yml @@ -12,6 +12,7 @@ #- { role: test_ec2_ami, tags: test_ec2_ami } #- { role: test_ec2, tags: test_ec2 } - { role: test_ec2_asg, tags: test_ec2_asg } + - { role: test_ec2_vpc_nat_gateway, tags: test_ec2_vpc_nat_gateway } # complex test for ec2_elb, split up over multiple plays # since there is a setup component as well as the test which diff --git a/test/integration/roles/test_ec2_vpc_nat_gateway/tasks/main.yml b/test/integration/roles/test_ec2_vpc_nat_gateway/tasks/main.yml new file mode 100644 index 0000000000..f5ad5f50fc --- /dev/null +++ b/test/integration/roles/test_ec2_vpc_nat_gateway/tasks/main.yml @@ -0,0 +1,76 @@ +- name: Launching NAT Gateway and allocate a new eip. + ec2_vpc_nat_gateway: + region: us-west-2 + state: present + subnet_id: "{{ test_subnet_id }}" + wait: yes + wait_timeout: 600 + register: nat + +- debug: + var: nat +- fail: + msg: "Failed to create" + when: '"{{ nat["changed"] }}" != "True"' + +- name: Launch a new gateway only if one does not exist already in this subnet. + ec2_vpc_nat_gateway: + if_exist_do_not_create: yes + region: us-west-2 + state: present + subnet_id: "{{ test_subnet_id }}" + wait: yes + wait_timeout: 600 + register: nat_idempotent + +- debug: + var: nat_idempotent +- fail: + msg: "Failed to be idempotent" + when: '"{{ nat_idempotent["changed"] }}" == "True"' + +- name: Launching NAT Gateway and allocate a new eip even if one already exists in the subnet. + ec2_vpc_nat_gateway: + region: us-west-2 + state: present + subnet_id: "{{ test_subnet_id }}" + wait: yes + wait_timeout: 600 + register: new_nat + +- debug: + var: new_nat +- fail: + msg: "Failed to create" + when: '"{{ new_nat["changed"] }}" != "True"' + +- name: Launching NAT Gateway with allocation id, this call is idempotent and will not create anything. + ec2_vpc_nat_gateway: + allocation_id: eipalloc-1234567 + region: us-west-2 + state: present + subnet_id: "{{ test_subnet_id }}" + wait: yes + wait_timeout: 600 + register: nat_with_eipalloc + +- debug: + var: nat_with_eipalloc +- fail: + msg: 'Failed to be idempotent.' + when: '"{{ nat_with_eipalloc["changed"] }}" == "True"' + +- name: Delete the 1st nat gateway and do not wait for it to finish + ec2_vpc_nat_gateway: + region: us-west-2 + nat_gateway_id: "{{ nat.nat_gateway_id }}" + state: absent + +- name: Delete the nat_with_eipalloc and release the eip + ec2_vpc_nat_gateway: + region: us-west-2 + nat_gateway_id: "{{ new_nat.nat_gateway_id }}" + release_eip: yes + state: absent + wait: yes + wait_timeout: 600 diff --git a/test/integration/roles/test_ec2_vpc_nat_gateway/vars/main.yml b/test/integration/roles/test_ec2_vpc_nat_gateway/vars/main.yml new file mode 100644 index 0000000000..8a3ccba716 --- /dev/null +++ b/test/integration/roles/test_ec2_vpc_nat_gateway/vars/main.yml @@ -0,0 +1 @@ +test_subnet_id: 'subnet-123456789'