@VisibleForTesting String vpcIdForSubnet(String region, String subnetId) { Optional<Subnet> subnet = Iterables.tryFind(awsEC2Api.getAWSSubnetApi().get().describeSubnetsInRegion(region, subnetId), Predicates.<Subnet>notNull()); if (!subnet.isPresent()) { throw new IllegalArgumentException("Subnet " + subnetId + " not found"); } return subnet.get().getVpcId(); } }
@Test(dependsOnMethods = {"testGet", "testFilter", "testList"}, alwaysRun = true) public void testDelete() { if (subnet != null) { String subnetId = subnet.getSubnetId(); subnet = null; subnetClient.deleteSubnetInRegion(region, subnetId); } } }
@Test(dependsOnMethods = "testCreateSubnetInRegion") public void testList() { FluentIterable<Subnet> subnets = subnetClient.describeSubnetsInRegionWithFilter(region, ImmutableMultimap.<String, String>of()); Optional<Subnet> subnetFound = Iterables.tryFind(subnets, new Predicate<Subnet>() { @Override public boolean apply(Subnet input) { return input != null && input.getSubnetId().equals(subnet.getSubnetId()); } }); assertTrue(subnetFound.isPresent(), "subnets=" + ImmutableList.copyOf(subnets)); }
@Test public void testCreateSubnetInRegion() { vpc = vpcClient.createVpc(region, "10.21.0.0/16", CreateVpcOptions.NONE); // tag the VPC for ease of identification in console if things go wrong tagApi.applyToResources(ImmutableMap.of("Name", simpleName), ImmutableList.of(vpc.id())); subnet = subnetClient.createSubnetInRegion(region, vpc.id(), "10.21.0.0/20"); assertNotNull(subnet); assertEquals(subnet.getCidrBlock(), "10.21.0.0/20"); }
@Test(dependsOnMethods = "testCreateSubnetInRegion") public void testModifySubnetAttribute() { final boolean result = subnetClient.modifySubnetAttribute(region, subnet.getSubnetId(), mapPublicIpOnLaunch(true)); assertTrue(result, "Failed to modify subnet attribute"); }
public void describeSubnetInNonDefaultRegionWhen404() throws Exception { String region = "us-west-2"; enqueueRegions(DEFAULT_REGION, region); enqueue(region, new MockResponse().setResponseCode(404)); FluentIterable<Subnet> results = subnetApiForRegion(region).list(); assertTrue(Iterables.isEmpty(results)); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(region, "Action=DescribeSubnets"); }
@Test(dependsOnMethods = "testCreate") public void testAssociateWithOptions() { subnet = subnetApi.createSubnetInRegion(TEST_REGION, vpc.id(), VPC_SUBNET); assertNotNull(subnet, "Failed to create subnet in " + vpc.id()); try { routeTableApi.associateRouteTable(TEST_REGION, routeTable.id(), subnet.getSubnetId(), dryRun()); Assert.fail("Expected 'DryRunOperation' exception was not thrown"); } catch (AWSResponseException e) { assertDryRun(e); } }
public void modifySubnetAttribute() throws Exception { String region = "us-west-2"; enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody("<ModifySubnetAttributeResponse xmlns=\"http://ec2.amazonaws.com/doc/2016-09-15/\">\n" + " <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>\n" + " <return>true</return>\n" + "</ModifySubnetAttributeResponse>")); final boolean result = subnetApiForRegion(DEFAULT_REGION).modifySubnetAttribute(DEFAULT_REGION, "subnet-9d4a7b6c", mapPublicIpOnLaunch(true)); assertTrue(result, "Failed to match expected test result of 'true'"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=ModifySubnetAttribute&SubnetId=subnet-9d4a7b6c&MapPublicIpOnLaunch.Value=true", "2014-06-15"); }
@VisibleForTesting String vpcIdForSubnet(String region, String subnetId) { Optional<Subnet> subnet = Iterables.tryFind(awsEC2Api.getAWSSubnetApi().get().describeSubnetsInRegion(region, subnetId), Predicates.<Subnet>notNull()); if (!subnet.isPresent()) { throw new IllegalArgumentException("Subnet " + subnetId + " not found"); } return subnet.get().getVpcId(); } }
public void createSubnetInRegion() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody("<CreateSubnetResponse xmlns=\"http://ec2.amazonaws.com/doc/2016-09-15/\">\n" + " <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>\n" + " <subnet>\n" + " <subnetId>subnet-9d4a7b6c</subnetId>\n" + " <state>pending</state>\n" + " <vpcId>vpc-1a2b3c4d</vpcId>\n" + " <cidrBlock>10.0.1.0/24</cidrBlock> \n" + " <availableIpAddressCount>251</availableIpAddressCount>\n" + " <availabilityZone>us-east-1a</availabilityZone>\n" + " <tagSet/>\n" + " </subnet>\n" + "</CreateSubnetResponse>")); Subnet result = subnetApi().createSubnetInRegion(DEFAULT_REGION, "vpc-1a2b3c4d", "10.0.1.0/24"); assertEquals(result.getVpcId(), "vpc-1a2b3c4d"); assertEquals(result.getCidrBlock(), "10.0.1.0/24"); assertEquals(result.getAvailabilityZone(), "us-east-1a"); assertEquals(result.getSubnetId(), "subnet-9d4a7b6c"); assertEquals(result.getSubnetState().value(), "pending"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=CreateSubnet&VpcId=vpc-1a2b3c4d&CidrBlock=10.0.1.0/24"); }
@Test(dependsOnMethods = "testDisassociateWithOptions") public void testDisassociate() { final boolean result = routeTableApi.disassociateRouteTable(TEST_REGION, associationId); assertTrue(result, "Failed to disassociate " + associationId + " from " + routeTable.id()); routeTable = routeTableApi.describeRouteTables(TEST_REGION, routeTable.id()).toList().get(0); assertEquals(routeTable.associationSet().size(), 0, "Found associations where none should exist in " + routeTable.id() + ": " + routeTable.associationSet()); subnetApi.deleteSubnetInRegion(TEST_REGION, subnet.getSubnetId()); }
@Test(dependsOnMethods = "testCreateSubnetInRegion") public void testFilter() { FluentIterable<Subnet> subnets = subnetClient.describeSubnetsInRegionWithFilter(region, ImmutableMultimap.of("subnet-id", subnet.getSubnetId())); Subnet subnetFound = Iterables.getOnlyElement(subnets); assertEquals(subnetFound.getSubnetId(), subnet.getSubnetId()); }
@Test(dependsOnMethods = "testCreateSubnetInRegion") public void testGet() { FluentIterable<Subnet> subnets = subnetClient.describeSubnetsInRegion(region, subnet.getSubnetId()); Subnet subnetFound = Iterables.getOnlyElement(subnets); assertEquals(subnetFound.getSubnetId(), subnet.getSubnetId()); }
public void createSubnetInRegion_options() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody("<CreateSubnetResponse xmlns=\"http://ec2.amazonaws.com/doc/2016-09-15/\">\n" + " <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>\n" + " <subnet>\n" + " <subnetId>subnet-9d4a7b6c</subnetId>\n" + " <state>pending</state>\n" + " <vpcId>vpc-1a2b3c4d</vpcId>\n" + " <cidrBlock>10.0.1.0/24</cidrBlock> \n" + " <availableIpAddressCount>251</availableIpAddressCount>\n" + " <availabilityZone>us-east-1a</availabilityZone>\n" + " <tagSet/>\n" + " </subnet>\n" + "</CreateSubnetResponse>")); Subnet result = subnetApi().createSubnetInRegion(DEFAULT_REGION, "vpc-1a2b3c4d", "10.0.1.0/24", new CreateSubnetOptions().dryRun().availabilityZone("us-east-1a")); assertEquals(result.getVpcId(), "vpc-1a2b3c4d"); assertEquals(result.getCidrBlock(), "10.0.1.0/24"); assertEquals(result.getAvailabilityZone(), "us-east-1a"); assertEquals(result.getSubnetId(), "subnet-9d4a7b6c"); assertEquals(result.getSubnetState().value(), "pending"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=CreateSubnet&VpcId=vpc-1a2b3c4d&CidrBlock=10.0.1.0/24&DryRun=true&AvailabilityZone=us-east-1a"); }
@Override @AfterClass(groups = { "integration", "live" }) public void tearDownContext() { try { try { if (subnet != null) { subnetClient.deleteSubnetInRegion(region, subnet.getSubnetId()); } } finally { if (vpc != null) { vpcClient.deleteVpc(region, vpc.id()); } } } finally { super.tearDownContext(); } }
public void describeSubnetInRegionWithFilterWhen404() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setResponseCode(404)); FluentIterable<Subnet> results = subnetApi().describeSubnetsInRegionWithFilter(DEFAULT_REGION, ImmutableMultimap.of("vpc-id", "vpc-1a2b3c4d")); assertTrue(Iterables.isEmpty(results)); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSubnets&Filter.1.Name=vpc-id&Filter.1.Value.1=vpc-1a2b3c4d"); }
public void describeSubnetInRegionWhen404() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setResponseCode(404)); FluentIterable<Subnet> results = subnetApi().describeSubnetsInRegion(DEFAULT_REGION); assertTrue(Iterables.isEmpty(results)); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSubnets"); }
public void deleteSubnetInRegion() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody("<DeleteSubnetResponse xmlns=\"http://ec2.amazonaws.com/doc/2016-09-15/\">\n" + " <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>\n" + " <return>true</return>\n" + "</DeleteSubnetResponse>")); subnetApi().deleteSubnetInRegion(DEFAULT_REGION, "subnet-9d4a7b6c"); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DeleteSubnet&SubnetId=subnet-9d4a7b6c"); }
public void describeSubnetInRegionWithFilter() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(describeSubnetsResponse)); FluentIterable<Subnet> results = subnetApi().describeSubnetsInRegionWithFilter(DEFAULT_REGION, ImmutableMultimap.of("vpc-id", "vpc-1a2b3c4d", "availabilityZone", "us-east-1a")); Subnet result = Iterables.getOnlyElement(results); assertEquals(result.getSubnetId(), "subnet-9d4a7b6c"); assertEquals(result.getSubnetState().value(), "available"); assertEquals(result.getVpcId(), "vpc-1a2b3c4d"); assertEquals(result.getCidrBlock(), "10.0.1.0/24"); assertEquals(result.getAvailabilityZone(), "us-east-1a"); assertEquals(result.getAvailableIpAddressCount(), 251); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSubnets&Filter.1.Name=vpc-id&Filter.1.Value.1=vpc-1a2b3c4d&Filter.2.Name=availabilityZone&Filter.2.Value.1=us-east-1a"); }
public void describeSubnetInRegion() throws Exception { enqueueRegions(DEFAULT_REGION); enqueue(DEFAULT_REGION, new MockResponse().setBody(describeSubnetsResponse)); FluentIterable<Subnet> results = subnetApi().describeSubnetsInRegion(DEFAULT_REGION); Subnet result = Iterables.getOnlyElement(results); assertEquals(result.getSubnetId(), "subnet-9d4a7b6c"); assertEquals(result.getSubnetState().value(), "available"); assertEquals(result.getVpcId(), "vpc-1a2b3c4d"); assertEquals(result.getCidrBlock(), "10.0.1.0/24"); assertEquals(result.getAvailabilityZone(), "us-east-1a"); assertEquals(result.getAvailableIpAddressCount(), 251); assertPosted(DEFAULT_REGION, "Action=DescribeRegions"); assertPosted(DEFAULT_REGION, "Action=DescribeSubnets"); }