ec2_group - fix VPC precedence for security group targets (#45787)

Update the dictionary with the preferred values last to get the right order of VPC precedence

Fixes #45782
pull/45797/head
Sloane Hertel 6 years ago committed by Ryan Brown
parent 06e2e0e040
commit 8d2df9be52

@ -0,0 +1,6 @@
---
bugfixes:
- ec2_group - There can be multiple security groups with the same name in
different VPCs. Prior to 2.6 if a target group name was provided, the group
matching the name and VPC had highest precedence. Restore this behavior by
updated the dictionary with the groups matching the VPC last.

@ -855,6 +855,9 @@ def group_exists(client, module, vpc_id, group_id, name):
if security_groups: if security_groups:
groups = dict((group['GroupId'], group) for group in all_groups) groups = dict((group['GroupId'], group) for group in all_groups)
groups.update(dict((group['GroupName'], group) for group in all_groups)) groups.update(dict((group['GroupName'], group) for group in all_groups))
if vpc_id:
vpc_wins = dict((group['GroupName'], group) for group in all_groups if group['VpcId'] == vpc_id)
groups.update(vpc_wins)
# maintain backwards compatibility by using the last matching group # maintain backwards compatibility by using the last matching group
return security_groups[-1], groups return security_groups[-1], groups
return None, {} return None, {}

Loading…
Cancel
Save