@Override public String apply(AvailabilityZoneInfo arg0) { return arg0.getZone(); }
public void endElement(String uri, String name, String qName) { if (qName.equals("zoneName")) { zone = currentText.toString().trim(); } else if (qName.equals("regionName")) { try { region = currentText.toString().trim(); } catch (IllegalArgumentException e) { logger.warn(e, "unsupported region: %s", currentText.toString().trim()); region = "UNKNOWN"; } } else if (qName.equals("zoneState")) { zoneState = currentText.toString().trim(); } else if (qName.equals("message")) { messages.add(currentText.toString().trim()); } else if (qName.equals("messageSet")) { inMessageSet = false; } else if (qName.equals("item") && !inMessageSet) { availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); this.zone = null; this.region = defaultRegion.get(); this.zoneState = null; this.messages = Sets.newHashSet(); } currentText = new StringBuilder(); }
@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); }
public void endElement(String uri, String name, String qName) { if (qName.equals("zoneName")) { zone = currentText.toString().trim(); } else if (qName.equals("regionName")) { try { region = currentText.toString().trim(); } catch (IllegalArgumentException e) { logger.warn(e, "unsupported region: %s", currentText.toString().trim()); region = "UNKNOWN"; } } else if (qName.equals("zoneState")) { zoneState = currentText.toString().trim(); } else if (qName.equals("message")) { messages.add(currentText.toString().trim()); } else if (qName.equals("messageSet")) { inMessageSet = false; } else if (qName.equals("item") && !inMessageSet) { availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); this.zone = null; this.region = defaultRegion.get(); this.zoneState = null; this.messages = Sets.newHashSet(); } currentText = new StringBuilder(); }
@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); }
@Override public String apply(AvailabilityZoneInfo arg0) { return arg0.getZone(); }
public void endElement(String uri, String name, String qName) { if (qName.equals("zoneName")) { zone = currentText.toString().trim(); } else if (qName.equals("regionName")) { try { region = currentText.toString().trim(); } catch (IllegalArgumentException e) { logger.warn(e, "unsupported region: %s", currentText.toString().trim()); region = "UNKNOWN"; } } else if (qName.equals("zoneState")) { zoneState = currentText.toString().trim(); } else if (qName.equals("message")) { messages.add(currentText.toString().trim()); } else if (qName.equals("messageSet")) { inMessageSet = false; } else if (qName.equals("item") && !inMessageSet) { availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); this.zone = null; this.region = defaultRegion.get(); this.zoneState = null; this.messages = Sets.newHashSet(); } currentText.setLength(0); }
protected JcloudsLocation newSubLocation(Location parent, AvailabilityZoneInfo zone) { return loc.newSubLocation(ImmutableMap.of(JcloudsLocation.CLOUD_REGION_ID, zone.getZone())); } }
public void endElement(String uri, String name, String qName) { if (qName.equals("zoneName")) { zone = currentText.toString().trim(); } else if (qName.equals("regionName")) { try { region = currentText.toString().trim(); } catch (IllegalArgumentException e) { logger.warn(e, "unsupported region: %s", currentText.toString().trim()); region = "UNKNOWN"; } } else if (qName.equals("zoneState")) { zoneState = currentText.toString().trim(); } else if (qName.equals("message")) { messages.add(currentText.toString().trim()); } else if (qName.equals("messageSet")) { inMessageSet = false; } else if (qName.equals("item") && !inMessageSet) { availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); this.zone = null; this.region = defaultRegion.get(); this.zoneState = null; this.messages = Sets.newHashSet(); } currentText.setLength(0); }
@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 endElement(String uri, String name, String qName) { if (qName.equals("zoneName")) { zone = currentText.toString().trim(); } else if (qName.equals("regionName")) { try { region = currentText.toString().trim(); } catch (IllegalArgumentException e) { logger.warn(e, "unsupported region: %s", currentText.toString().trim()); region = "UNKNOWN"; } } else if (qName.equals("zoneState")) { zoneState = currentText.toString().trim(); } else if (qName.equals("message")) { messages.add(currentText.toString().trim()); } else if (qName.equals("messageSet")) { inMessageSet = false; } else if (qName.equals("item") && !inMessageSet) { availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); this.zone = null; this.region = defaultRegion.get(); this.zoneState = null; this.messages = Sets.newHashSet(); } currentText.setLength(0); }
@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 testApplyInputStream() { InputStream is = getClass().getResourceAsStream("/availabilityZones.xml"); Set<AvailabilityZoneInfo> expected = ImmutableSet.<AvailabilityZoneInfo> of( new AvailabilityZoneInfo("us-east-1a", "available", "us-east-1", ImmutableSet.<String> of()), new AvailabilityZoneInfo("us-east-1b", "available", "us-east-1", ImmutableSet .<String> of()), new AvailabilityZoneInfo("us-east-1c", "available", "us-east-1", ImmutableSet .<String> of("our service is awesome")), new AvailabilityZoneInfo("us-east-1d", "downlikeaclown", "us-east-1", ImmutableSet .<String> of())); Set<AvailabilityZoneInfo> result = factory.create( injector.getInstance(DescribeAvailabilityZonesResponseHandler.class)).parse(is); assertEquals(result, expected); }
@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 testApplyInputStream() { InputStream is = getClass().getResourceAsStream("/availabilityZones.xml"); Set<AvailabilityZoneInfo> expected = ImmutableSet.<AvailabilityZoneInfo> of( new AvailabilityZoneInfo("us-east-1a", "available", "us-east-1", ImmutableSet.<String> of()), new AvailabilityZoneInfo("us-east-1b", "available", "us-east-1", ImmutableSet .<String> of()), new AvailabilityZoneInfo("us-east-1c", "available", "us-east-1", ImmutableSet .<String> of("our service is awesome")), new AvailabilityZoneInfo("us-east-1d", "downlikeaclown", "us-east-1", ImmutableSet .<String> of())); Set<AvailabilityZoneInfo> result = factory.create( injector.getInstance(DescribeAvailabilityZonesResponseHandler.class)).parse(is); assertEquals(result, expected); }
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); } }
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); } }
@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(); }