ec2_vpc_route_table: Update matching_count parsing on find_subnets fu… (#38707)
* ec2_vpc_route_table: Update matching_count parsing on find_subnets function and tests * ec2_vpc_route_table: Update matching_count parsing on find_subnets function
This commit is contained in:
parent
aeecdbfc35
commit
1905a6e8fb
2 changed files with 75 additions and 3 deletions
|
@ -256,7 +256,7 @@ def find_subnets(connection, module, vpc_id, identified_subnets):
|
||||||
'Name' tag, or a CIDR such as 10.0.0.0/8.
|
'Name' tag, or a CIDR such as 10.0.0.0/8.
|
||||||
|
|
||||||
Note that this function is duplicated in other ec2 modules, and should
|
Note that this function is duplicated in other ec2 modules, and should
|
||||||
potentially be moved into potentially be moved into a shared module_utils
|
potentially be moved into a shared module_utils
|
||||||
"""
|
"""
|
||||||
subnet_ids = []
|
subnet_ids = []
|
||||||
subnet_names = []
|
subnet_names = []
|
||||||
|
@ -294,7 +294,7 @@ def find_subnets(connection, module, vpc_id, identified_subnets):
|
||||||
module.fail_json_aws(e, msg="Couldn't find subnet with names %s" % subnet_names)
|
module.fail_json_aws(e, msg="Couldn't find subnet with names %s" % subnet_names)
|
||||||
|
|
||||||
for name in subnet_names:
|
for name in subnet_names:
|
||||||
matching_count = len([1 for s in subnets_by_name if s.tags.get('Name') == name])
|
matching_count = len([1 for s in subnets_by_name for t in s.get('Tags', []) if t['Key'] == 'Name' and t['Value'] == name])
|
||||||
if matching_count == 0:
|
if matching_count == 0:
|
||||||
module.fail_json(msg='Subnet named "{0}" does not exist'.format(name))
|
module.fail_json(msg='Subnet named "{0}" does not exist'.format(name))
|
||||||
elif matching_count > 1:
|
elif matching_count > 1:
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
state: present
|
state: present
|
||||||
tags:
|
tags:
|
||||||
Public: "{{ item.public|string }}"
|
Public: "{{ item.public|string }}"
|
||||||
Name: "{{ item.public|ternary('public', 'private') }}-{{ item.az }}"
|
Name: "{{ (item.public|bool)|ternary('public', 'private') }}-{{ item.az }}"
|
||||||
<<: *aws_connection_info
|
<<: *aws_connection_info
|
||||||
with_items:
|
with_items:
|
||||||
- cidr: 10.228.228.0/24
|
- cidr: 10.228.228.0/24
|
||||||
|
@ -337,6 +337,78 @@
|
||||||
that:
|
that:
|
||||||
- check_mode_results.changed
|
- check_mode_results.changed
|
||||||
|
|
||||||
|
- name: add subnets by cidr to public route table
|
||||||
|
ec2_vpc_route_table:
|
||||||
|
vpc_id: "{{ vpc.vpc.id }}"
|
||||||
|
routes:
|
||||||
|
- dest: 0.0.0.0/0
|
||||||
|
gateway_id: igw
|
||||||
|
subnets: "{{ vpc_subnets|json_query('subnets[?tags.Public == `True`].cidr_block') }}"
|
||||||
|
lookup: id
|
||||||
|
route_table_id: "{{ create_public_table.route_table.id }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: add_subnets_cidr
|
||||||
|
|
||||||
|
- name: assert route table contains subnets added by cidr
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- add_subnets_cidr.changed
|
||||||
|
- add_subnets_cidr.route_table.associations|length == 2
|
||||||
|
|
||||||
|
- name: purge subnets added by cidr
|
||||||
|
ec2_vpc_route_table:
|
||||||
|
vpc_id: "{{ vpc.vpc.id }}"
|
||||||
|
routes:
|
||||||
|
- dest: 0.0.0.0/0
|
||||||
|
gateway_id: igw
|
||||||
|
subnets: []
|
||||||
|
lookup: id
|
||||||
|
route_table_id: "{{ create_public_table.route_table.id }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: purge_subnets_cidr
|
||||||
|
|
||||||
|
- name: assert purge subnets added by cidr worked
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- purge_subnets_cidr.changed
|
||||||
|
- purge_subnets_cidr.route_table.associations|length == 0
|
||||||
|
|
||||||
|
- name: add subnets by name to public route table
|
||||||
|
ec2_vpc_route_table:
|
||||||
|
vpc_id: "{{ vpc.vpc.id }}"
|
||||||
|
routes:
|
||||||
|
- dest: 0.0.0.0/0
|
||||||
|
gateway_id: igw
|
||||||
|
subnets: "{{ vpc_subnets|json_query('subnets[?tags.Public == `True`].tags.Name') }}"
|
||||||
|
lookup: id
|
||||||
|
route_table_id: "{{ create_public_table.route_table.id }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: add_subnets_name
|
||||||
|
|
||||||
|
- name: assert route table contains subnets added by name
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- add_subnets_name.changed
|
||||||
|
- add_subnets_name.route_table.associations|length == 2
|
||||||
|
|
||||||
|
- name: purge subnets added by name
|
||||||
|
ec2_vpc_route_table:
|
||||||
|
vpc_id: "{{ vpc.vpc.id }}"
|
||||||
|
routes:
|
||||||
|
- dest: 0.0.0.0/0
|
||||||
|
gateway_id: igw
|
||||||
|
subnets: []
|
||||||
|
lookup: id
|
||||||
|
route_table_id: "{{ create_public_table.route_table.id }}"
|
||||||
|
<<: *aws_connection_info
|
||||||
|
register: purge_subnets_name
|
||||||
|
|
||||||
|
- name: assert purge subnets added by name worked
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- purge_subnets_name.changed
|
||||||
|
- purge_subnets_name.route_table.associations|length == 0
|
||||||
|
|
||||||
- name: purge routes
|
- name: purge routes
|
||||||
ec2_vpc_route_table:
|
ec2_vpc_route_table:
|
||||||
vpc_id: "{{ vpc.vpc.id }}"
|
vpc_id: "{{ vpc.vpc.id }}"
|
||||||
|
|
Loading…
Add table
Reference in a new issue