mirror of https://github.com/ansible/ansible.git
Migrate ec2_eip module to boto3 (#61575)
* Migrate ec2_eip module to boto3 This patch is a step towards the integration of several PRs that have attempted to migrate this code closes #55190 closes #45478 Follow-up PRs will address the outstanding changes made in #55190pull/61655/merge
parent
00add5b668
commit
2ebeadfc14
@ -1,145 +1,144 @@
|
||||
---
|
||||
- name: Integration testing for ec2_eip
|
||||
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: True
|
||||
|
||||
- name: Allocate a new eip - attempt reusing unallocated ones
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
reuse_existing_ip_allowed: yes
|
||||
<<: *aws_connection_info
|
||||
register: eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- eip is defined
|
||||
- eip.public_ip is defined and eip.public_ip != ""
|
||||
- eip.allocation_id is defined and eip.allocation_id != ""
|
||||
|
||||
- name: Allocate a new eip
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
register: new_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- new_eip is defined
|
||||
- new_eip is changed
|
||||
- new_eip.public_ip is defined and new_eip.public_ip != ""
|
||||
- new_eip.allocation_id is defined and new_eip.allocation_id != ""
|
||||
|
||||
- name: Match an existing eip (changed == false)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ip: "{{ eip.public_ip }}"
|
||||
register: existing_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- existing_eip is defined
|
||||
- existing_eip is not changed
|
||||
- existing_eip.public_ip is defined and existing_eip.public_ip != ""
|
||||
- existing_eip.allocation_id is defined and existing_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag (or allocate a new one)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
register: tagged_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- tagged_eip is defined
|
||||
- tagged_eip.public_ip is defined and tagged_eip.public_ip != ""
|
||||
- tagged_eip.allocation_id is defined and tagged_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag and it's value (or allocate a new one)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ip: "{{ eip.public_ip }}"
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
tag_value: Backend
|
||||
register: backend_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- backend_eip is defined
|
||||
- backend_eip.public_ip is defined and backend_eip.public_ip != ""
|
||||
- backend_eip.allocation_id is defined and backend_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag and it's value (or allocate a new one from pool)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
tag_value: Backend
|
||||
public_ipv4_pool: amazon
|
||||
register: amazon_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- amazon_eip is defined
|
||||
- amazon_eip.public_ip is defined and amazon_eip.public_ip != ""
|
||||
- amazon_eip.allocation_id is defined and amazon_eip.allocation_id != ""
|
||||
|
||||
- name: allocate a new eip from a pool
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ipv4_pool: amazon
|
||||
register: pool_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- pool_eip is defined
|
||||
- pool_eip is changed
|
||||
- pool_eip.public_ip is defined and pool_eip.public_ip != ""
|
||||
- pool_eip.allocation_id is defined and pool_eip.allocation_id != ""
|
||||
|
||||
always:
|
||||
- debug: msg="{{ item }}"
|
||||
when: item is defined and item.public_ip is defined and item.allocation_id is defined
|
||||
loop:
|
||||
- eip
|
||||
- new_eip
|
||||
- pool_eip
|
||||
- tagged_eip
|
||||
- backend_eip
|
||||
- amazon_eip
|
||||
- name: Cleanup newly allocated eip
|
||||
ec2_eip:
|
||||
state: absent
|
||||
public_ip: "{{ item.public_ip }}"
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
when: item is defined and item is changed and item.public_ip is defined and item.public_ip != ""
|
||||
loop:
|
||||
- "{{ eip }}"
|
||||
- "{{ new_eip }}"
|
||||
- "{{ pool_eip }}"
|
||||
- "{{ tagged_eip }}"
|
||||
- "{{ backend_eip }}"
|
||||
- "{{ amazon_eip }}"
|
||||
- name: Integration testing for ec2_eip
|
||||
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: True
|
||||
|
||||
- name: Allocate a new eip - attempt reusing unallocated ones
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
reuse_existing_ip_allowed: yes
|
||||
<<: *aws_connection_info
|
||||
register: eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- eip is defined
|
||||
- eip.public_ip is defined and eip.public_ip != ""
|
||||
- eip.allocation_id is defined and eip.allocation_id != ""
|
||||
|
||||
- name: Allocate a new eip
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
register: new_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- new_eip is defined
|
||||
- new_eip is changed
|
||||
- new_eip.public_ip is defined and new_eip.public_ip != ""
|
||||
- new_eip.allocation_id is defined and new_eip.allocation_id != ""
|
||||
|
||||
- name: Match an existing eip (changed == false)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ip: "{{ eip.public_ip }}"
|
||||
register: existing_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- existing_eip is defined
|
||||
- existing_eip is not changed
|
||||
- existing_eip.public_ip is defined and existing_eip.public_ip != ""
|
||||
- existing_eip.allocation_id is defined and existing_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag (or allocate a new one)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
register: tagged_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- tagged_eip is defined
|
||||
- tagged_eip.public_ip is defined and tagged_eip.public_ip != ""
|
||||
- tagged_eip.allocation_id is defined and tagged_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag and it's value (or allocate a new one)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ip: "{{ eip.public_ip }}"
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
tag_value: Backend
|
||||
register: backend_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- backend_eip is defined
|
||||
- backend_eip.public_ip is defined and backend_eip.public_ip != ""
|
||||
- backend_eip.allocation_id is defined and backend_eip.allocation_id != ""
|
||||
|
||||
- name: attempt reusing an existing eip with a tag and it's value (or allocate a new one from pool)
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
reuse_existing_ip_allowed: yes
|
||||
tag_name: Team
|
||||
tag_value: Backend
|
||||
public_ipv4_pool: amazon
|
||||
register: amazon_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- amazon_eip is defined
|
||||
- amazon_eip.public_ip is defined and amazon_eip.public_ip != ""
|
||||
- amazon_eip.allocation_id is defined and amazon_eip.allocation_id != ""
|
||||
|
||||
- name: allocate a new eip from a pool
|
||||
ec2_eip:
|
||||
state: present
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
public_ipv4_pool: amazon
|
||||
register: pool_eip
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- pool_eip is defined
|
||||
- pool_eip is changed
|
||||
- pool_eip.public_ip is defined and pool_eip.public_ip != ""
|
||||
- pool_eip.allocation_id is defined and pool_eip.allocation_id != ""
|
||||
always:
|
||||
- debug:
|
||||
msg: "{{ item }}"
|
||||
when: item is defined and item.public_ip is defined and item.allocation_id is defined
|
||||
loop:
|
||||
- eip
|
||||
- new_eip
|
||||
- pool_eip
|
||||
- tagged_eip
|
||||
- backend_eip
|
||||
- amazon_eip
|
||||
- name: Cleanup newly allocated eip
|
||||
ec2_eip:
|
||||
state: absent
|
||||
public_ip: "{{ item.public_ip }}"
|
||||
in_vpc: yes
|
||||
<<: *aws_connection_info
|
||||
when: item is defined and item is changed and item.public_ip is defined and item.public_ip != ""
|
||||
loop:
|
||||
- "{{ eip }}"
|
||||
- "{{ new_eip }}"
|
||||
- "{{ pool_eip }}"
|
||||
- "{{ tagged_eip }}"
|
||||
- "{{ backend_eip }}"
|
||||
- "{{ amazon_eip }}"
|
||||
...
|
Loading…
Reference in New Issue