@Override public String apply(AvailabilityZoneInfo arg0) { return arg0.getZone(); }
@Override public String apply(AvailabilityZoneInfo arg0) { return arg0.getZone(); }
protected JcloudsLocation newSubLocation(Location parent, AvailabilityZoneInfo zone) { return loc.newSubLocation(ImmutableMap.of(JcloudsLocation.CLOUD_REGION_ID, zone.getZone())); } }
@Override public Map<String, Supplier<Set<String>>> get() { AvailabilityZoneAndRegionApi zoneApi = api.getAvailabilityZoneAndRegionApi().get(); Builder<String, Supplier<Set<String>>> map = ImmutableMap.builder(); for (String region : regions.get()) { ImmutableSet.Builder<String> zoneBuilder = ImmutableSet.builder(); for (AvailabilityZoneInfo zone : zoneApi.describeAvailabilityZonesInRegion(region)) { zoneBuilder.add(zone.getZone()); } map.put(region, Suppliers.<Set<String>>ofInstance(zoneBuilder.build())); } return map.build(); } }
@Override public Map<String, Supplier<Set<String>>> get() { AvailabilityZoneAndRegionApi zoneApi = api.getAvailabilityZoneAndRegionApi().get(); Builder<String, Supplier<Set<String>>> map = ImmutableMap.builder(); for (String region : regions.get()) { ImmutableSet.Builder<String> zoneBuilder = ImmutableSet.builder(); for (AvailabilityZoneInfo zone : zoneApi.describeAvailabilityZonesInRegion(region)) { zoneBuilder.add(zone.getZone()); } map.put(region, Suppliers.<Set<String>>ofInstance(zoneBuilder.build())); } return map.build(); } }
@Override public Map<String, Supplier<Set<String>>> get() { AvailabilityZoneAndRegionApi zoneApi = api.getAvailabilityZoneAndRegionApi().get(); Builder<String, Supplier<Set<String>>> map = ImmutableMap.builder(); for (String region : regions.get()) { ImmutableSet.Builder<String> zoneBuilder = ImmutableSet.builder(); for (AvailabilityZoneInfo zone : zoneApi.describeAvailabilityZonesInRegion(region)) { zoneBuilder.add(zone.getZone()); } map.put(region, Suppliers.<Set<String>>ofInstance(zoneBuilder.build())); } return map.build(); } }
public void testDescribeAvailabilityZones() { for (String region : ec2Api.getConfiguredRegions()) { Set<AvailabilityZoneInfo> allResults = client.describeAvailabilityZonesInRegion(region); assertNotNull(allResults); assert !allResults.isEmpty() : allResults.size(); Iterator<AvailabilityZoneInfo> iterator = allResults.iterator(); String id1 = iterator.next().getZone(); Set<AvailabilityZoneInfo> oneResult = client.describeAvailabilityZonesInRegion(region, availabilityZones(id1)); assertNotNull(oneResult); assertEquals(oneResult.size(), 1); iterator = allResults.iterator(); assertEquals(iterator.next().getZone(), id1); } }
public void testDescribeAvailabilityZones() { for (String region : ec2Client.getConfiguredRegions()) { Set<AvailabilityZoneInfo> allResults = client.describeAvailabilityZonesInRegion(region); assertNotNull(allResults); assert allResults.size() >= 1 : allResults.size(); Iterator<AvailabilityZoneInfo> iterator = allResults.iterator(); String id1 = iterator.next().getZone(); Set<AvailabilityZoneInfo> oneResult = client.describeAvailabilityZonesInRegion(region, availabilityZones(id1)); assertNotNull(oneResult); assertEquals(oneResult.size(), 1); iterator = allResults.iterator(); assertEquals(iterator.next().getZone(), id1); } }
@Override @BeforeClass(groups = { "integration", "live" }) public void setupContext() { super.setupContext(); ec2Api = view.unwrapApi(EC2Api.class); client = ec2Api.getElasticBlockStoreApi().get(); AvailabilityZoneInfo info = Iterables.get(ec2Api.getAvailabilityZoneAndRegionApi().get() .describeAvailabilityZonesInRegion(defaultRegion), 0); defaultRegion = checkNotNull(Strings.emptyToNull(info.getRegion()), "region of " + info); defaultZone = checkNotNull(Strings.emptyToNull(info.getZone()), "zone of " + info); }
@Override @BeforeClass(groups = { "integration", "live" }) public void setupContext() { super.setupContext(); ec2Client = view.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi(); client = ec2Client.getElasticBlockStoreServices(); AvailabilityZoneInfo info = Iterables.get(ec2Client.getAvailabilityZoneAndRegionServices() .describeAvailabilityZonesInRegion(defaultRegion), 0); defaultRegion = checkNotNull(Strings.emptyToNull(info.getRegion()), "region of " + info); defaultZone = checkNotNull(Strings.emptyToNull(info.getZone()), "zone of " + info); }
@Test public void testDescribeAvailabilityZonesInRegion_BestEffort() { IMocksControl control = createControl(); EC2Client client = control.createMock(EC2Client.class); AvailabilityZoneAndRegionClient regionClient = control.createMock(AvailabilityZoneAndRegionClient.class); AvailabilityZoneInfo info1 = control.createMock(AvailabilityZoneInfo.class); AvailabilityZoneInfo info2 = control.createMock(AvailabilityZoneInfo.class); HttpCommand command = control.createMock(HttpCommand.class); HttpResponseException exception = new HttpResponseException("Error: Unable to tunnel through proxy: ...", command, null); expect(client.getAvailabilityZoneAndRegionServices()).andStubReturn(regionClient); expect(regionClient.describeAvailabilityZonesInRegion("accessibleRegion1")).andReturn( ImmutableSet.of(info1)); expect(regionClient.describeAvailabilityZonesInRegion("inaccessibleRegion")).andThrow(exception); expect(regionClient.describeAvailabilityZonesInRegion("accessibleRegion2")).andReturn( ImmutableSet.of(info2)); expect(info1.getZone()).andStubReturn("zone1"); expect(info2.getZone()).andStubReturn("zone2"); Set<String> regions = ImmutableSet.of("accessibleRegion1", "inaccessibleRegion", "accessibleRegion2"); control.replay(); Map<String, Set<String>> expectedResult = ImmutableMap.<String, Set<String>> builder().put("accessibleRegion1", ImmutableSet.of("zone1")).put("accessibleRegion2", ImmutableSet.of("zone2")).build(); DescribeAvailabilityZonesInRegion regionIdToZoneId = new DescribeAvailabilityZonesInRegion(client, Suppliers .ofInstance(regions)); assertEquals(Maps.transformValues(regionIdToZoneId.get(), Suppliers.<Set<String>> supplierFunction()), expectedResult); control.verify(); }