From 1412d6eb185bb148ad2f784623cc5c7a8e9e58a9 Mon Sep 17 00:00:00 2001 From: Will Thames Date: Thu, 4 Jan 2018 06:36:02 +1000 Subject: [PATCH] Allow ec2_vpc_net to work in non classiclink regions (#34336) describe_vpc_classic_link only works in regions that support EC2-Classic. --- lib/ansible/modules/cloud/amazon/ec2_vpc_net.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/cloud/amazon/ec2_vpc_net.py b/lib/ansible/modules/cloud/amazon/ec2_vpc_net.py index 501d8bd1314..88016982fbc 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_vpc_net.py +++ b/lib/ansible/modules/cloud/amazon/ec2_vpc_net.py @@ -196,9 +196,17 @@ def vpc_exists(module, vpc, name, cidr_block, multi): def get_vpc(module, connection, vpc_id): try: vpc_obj = connection.describe_vpcs(VpcIds=[vpc_id])['Vpcs'][0] + except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: + module.fail_json_aws(e, msg="Failed to describe VPCs") + try: classic_link = connection.describe_vpc_classic_link(VpcIds=[vpc_id])['Vpcs'][0].get('ClassicLinkEnabled') vpc_obj['ClassicLinkEnabled'] = classic_link - except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: + except botocore.exceptions.ClientError as e: + if e.response["Error"]["Message"] == "The functionality you requested is not available in this region.": + vpc_obj['ClassicLinkEnabled'] = False + else: + module.fail_json_aws(e, msg="Failed to describe VPCs") + except botocore.exceptions.BotoCoreError as e: module.fail_json_aws(e, msg="Failed to describe VPCs") return vpc_obj