diff --git a/changelogs/fragments/fix_ec2_group_vpc_precedence_classic.yaml b/changelogs/fragments/fix_ec2_group_vpc_precedence_classic.yaml new file mode 100644 index 0000000000..e1c0a48ffc --- /dev/null +++ b/changelogs/fragments/fix_ec2_group_vpc_precedence_classic.yaml @@ -0,0 +1,7 @@ +--- +bugfixes: + - The patch fixing the regression of no longer preferring matching security + groups in the same VPC https://github.com/ansible/ansible/pull/45787 + (which was also backported to 2.6) broke EC2-Classic accounts. + https://github.com/ansible/ansible/pull/46242 removes the assumption that + security groups must be in a VPC. diff --git a/lib/ansible/modules/cloud/amazon/ec2_group.py b/lib/ansible/modules/cloud/amazon/ec2_group.py index 4bc53dd04a..b266972b30 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_group.py +++ b/lib/ansible/modules/cloud/amazon/ec2_group.py @@ -856,7 +856,7 @@ def group_exists(client, module, vpc_id, group_id, name): groups = dict((group['GroupId'], 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) + vpc_wins = dict((group['GroupName'], group) for group in all_groups if group.get('VpcId') and group['VpcId'] == vpc_id) groups.update(vpc_wins) # maintain backwards compatibility by using the last matching group return security_groups[-1], groups