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.
|
||||
|
||||
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_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)
|
||||
|
||||
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:
|
||||
module.fail_json(msg='Subnet named "{0}" does not exist'.format(name))
|
||||
elif matching_count > 1:
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
state: present
|
||||
tags:
|
||||
Public: "{{ item.public|string }}"
|
||||
Name: "{{ item.public|ternary('public', 'private') }}-{{ item.az }}"
|
||||
Name: "{{ (item.public|bool)|ternary('public', 'private') }}-{{ item.az }}"
|
||||
<<: *aws_connection_info
|
||||
with_items:
|
||||
- cidr: 10.228.228.0/24
|
||||
|
@ -337,6 +337,78 @@
|
|||
that:
|
||||
- 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
|
||||
ec2_vpc_route_table:
|
||||
vpc_id: "{{ vpc.vpc.id }}"
|
||||
|
|
Loading…
Reference in a new issue