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
This commit is contained in:
Sloane Hertel 2018-09-18 15:33:19 -04:00 committed by Ryan Brown
parent 06e2e0e040
commit 8d2df9be52
2 changed files with 9 additions and 0 deletions

View file

@ -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.

View file

@ -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, {}