From 558660c50ad17dc2eae7bd1da159ecd9a40a2a3c Mon Sep 17 00:00:00 2001 From: Karim Nakad Date: Tue, 20 Aug 2019 10:24:37 -0700 Subject: [PATCH 1/2] change: Integration Tests now dynamically checks AZs Canaries have failed in Tokyo (ap-northeast-1) since inception because the ap-northeast-1b region doesn't exist. This commit makes the check dynamic instead of blindly assuming that a and b exist, as that isn't the case for 3 regions: ap-northeast-1 ap-northeast-2 sa-east-1 --- tests/integ/vpc_test_utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/integ/vpc_test_utils.py b/tests/integ/vpc_test_utils.py index 82014796a0..a013c73821 100644 --- a/tests/integ/vpc_test_utils.py +++ b/tests/integ/vpc_test_utils.py @@ -52,12 +52,17 @@ def _create_vpc_with_name(ec2_client, region, name): print("created vpc: {}".format(vpc_id)) # sagemaker endpoints require subnets in at least 2 different AZs for vpc mode + availability_zones = ec2_client.describe_availability_zones()["AvailabilityZones"] + + if len(availability_zones) < 2: + raise Exception("Sagemaker vpc mode cannot run in this region, as 2 AZs are required.") + subnet_id_a = ec2_client.create_subnet( - CidrBlock="10.0.0.0/24", VpcId=vpc_id, AvailabilityZone=(region + "a") + CidrBlock="10.0.0.0/24", VpcId=vpc_id, AvailabilityZone=availability_zones[0]["ZoneName"] )["Subnet"]["SubnetId"] print("created subnet: {}".format(subnet_id_a)) subnet_id_b = ec2_client.create_subnet( - CidrBlock="10.0.1.0/24", VpcId=vpc_id, AvailabilityZone=(region + "b") + CidrBlock="10.0.1.0/24", VpcId=vpc_id, AvailabilityZone=availability_zones[1]["ZoneName"] )["Subnet"]["SubnetId"] print("created subnet: {}".format(subnet_id_b)) From 412b1fded1febddb1848f4178199cdbf03002eb7 Mon Sep 17 00:00:00 2001 From: Karim Nakad Date: Tue, 20 Aug 2019 11:27:32 -0700 Subject: [PATCH 2/2] change: no longer assuming 2 subnets in 2 different AZs are required --- tests/integ/vpc_test_utils.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/integ/vpc_test_utils.py b/tests/integ/vpc_test_utils.py index a013c73821..717d2a9a52 100644 --- a/tests/integ/vpc_test_utils.py +++ b/tests/integ/vpc_test_utils.py @@ -51,18 +51,16 @@ def _create_vpc_with_name(ec2_client, region, name): vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] print("created vpc: {}".format(vpc_id)) - # sagemaker endpoints require subnets in at least 2 different AZs for vpc mode - availability_zones = ec2_client.describe_availability_zones()["AvailabilityZones"] - - if len(availability_zones) < 2: - raise Exception("Sagemaker vpc mode cannot run in this region, as 2 AZs are required.") + availability_zone_name = ec2_client.describe_availability_zones()["AvailabilityZones"][0][ + "ZoneName" + ] subnet_id_a = ec2_client.create_subnet( - CidrBlock="10.0.0.0/24", VpcId=vpc_id, AvailabilityZone=availability_zones[0]["ZoneName"] + CidrBlock="10.0.0.0/24", VpcId=vpc_id, AvailabilityZone=availability_zone_name )["Subnet"]["SubnetId"] print("created subnet: {}".format(subnet_id_a)) subnet_id_b = ec2_client.create_subnet( - CidrBlock="10.0.1.0/24", VpcId=vpc_id, AvailabilityZone=availability_zones[1]["ZoneName"] + CidrBlock="10.0.1.0/24", VpcId=vpc_id, AvailabilityZone=availability_zone_name )["Subnet"]["SubnetId"] print("created subnet: {}".format(subnet_id_b))