@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(from, toArray(idsByRegions.get(from), String.class)); } };
@Test(expectedExceptions = AWSResponseException.class) public void testDescribeSpotRequestsInRegionFilterInvalid() { for (String region : Region.DEFAULT_REGIONS) { SortedSet<SpotInstanceRequest> allResults = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(region)); assertNotNull(allResults); if (allResults.size() >= 1) { SpotInstanceRequest request = allResults.last(); SortedSet<SpotInstanceRequest> result = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegionWithFilter(region, ImmutableMultimap.<String, String>builder() .put("invalid-filter", request.getId()).build())); } } }
@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(from, toArray(idsByRegions.get(from), String.class)); } };
@Test public void testDescribeSpotRequestsInRegionFilter() { for (String region : Region.DEFAULT_REGIONS) { SortedSet<SpotInstanceRequest> allResults = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(region)); assertNotNull(allResults); if (allResults.size() >= 1) { SpotInstanceRequest request = allResults.last(); SortedSet<SpotInstanceRequest> result = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegionWithFilter(region, ImmutableMultimap.<String, String>builder() .put("spot-instance-request-id", request.getId()).build())); assertNotNull(result); SpotInstanceRequest compare = result.last(); assertEquals(compare, request); } } }
@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(from); } };
@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(from); } };
@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(from, toArray(idsByRegions.get(from), String.class)); } };
@Override public Set<SpotInstanceRequest> apply(String from) { return client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(from); } };
protected Set<RunningInstance> getSpots(Set<RegionAndName> regionAndIds) { Builder<RunningInstance> builder = ImmutableSet.<RunningInstance> builder(); Multimap<String, String> regionToSpotIds = transformValues(index(regionAndIds, regionFunction()), nameFunction()); for (Map.Entry<String, Collection<String>> entry : regionToSpotIds.asMap().entrySet()) { String region = entry.getKey(); Collection<String> spotIds = entry.getValue(); logger.trace("looking for spots %s in region %s", spotIds, region); builder.addAll(transform( client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(region, toArray(spotIds, String.class)), spotConverter)); } return builder.build(); }
protected Set<RunningInstance> getSpots(Set<RegionAndName> regionAndIds) { Builder<RunningInstance> builder = ImmutableSet.<RunningInstance> builder(); Multimap<String, String> regionToSpotIds = transformValues(index(regionAndIds, regionFunction()), nameFunction()); for (Map.Entry<String, Collection<String>> entry : regionToSpotIds.asMap().entrySet()) { String region = entry.getKey(); Collection<String> spotIds = entry.getValue(); logger.trace("looking for spots %s in region %s", spotIds, region); builder.addAll(transform( client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(region, toArray(spotIds, String.class)), spotConverter)); } return builder.build(); }
protected Set<RunningInstance> getSpots(Set<RegionAndName> regionAndIds) { Builder<RunningInstance> builder = ImmutableSet.<RunningInstance> builder(); Multimap<String, String> regionToSpotIds = transformValues(index(regionAndIds, regionFunction()), nameFunction()); for (Map.Entry<String, Collection<String>> entry : regionToSpotIds.asMap().entrySet()) { String region = entry.getKey(); Collection<String> spotIds = entry.getValue(); logger.trace("looking for spots %s in region %s", spotIds, region); builder.addAll(transform( client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(region, toArray(spotIds, String.class)), spotConverter)); } return builder.build(); }
private SpotInstanceRequest refresh(SpotInstanceRequest spot) { return Iterables.getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( spot.getRegion(), spot.getId())); } }
private SpotInstanceRequest refresh(SpotInstanceRequest spot) { return Iterables.getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( spot.getRegion(), spot.getId())); } }
private SpotInstanceRequest refresh(SpotInstanceRequest spot) { return Iterables.getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( spot.getRegion(), spot.getId())); } }
@Override public RunningInstance getRunningInstanceInRegion(String region, String id) { if (id.indexOf("sir-") != 0) return super.getRunningInstanceInRegion(region, id); SpotInstanceRequest spot = getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( region, id)); if (spot.getState() == SpotInstanceRequest.State.ACTIVE) return super.getRunningInstanceInRegion(region, spot.getInstanceId()); else return spotConverter.apply(spot); }
@Override public RunningInstance getRunningInstanceInRegion(String region, String id) { if (id.indexOf("sir-") != 0) return super.getRunningInstanceInRegion(region, id); SpotInstanceRequest spot = getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( region, id)); if (spot.getState() == SpotInstanceRequest.State.ACTIVE) return super.getRunningInstanceInRegion(region, spot.getInstanceId()); else return spotConverter.apply(spot); }
@Override public RunningInstance getRunningInstanceInRegion(String region, String id) { if (id.indexOf("sir-") != 0) return super.getRunningInstanceInRegion(region, id); SpotInstanceRequest spot = getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion( region, id)); if (spot.getState() == SpotInstanceRequest.State.ACTIVE) return super.getRunningInstanceInRegion(region, spot.getInstanceId()); else return spotConverter.apply(spot); }
@Test public void testDescribeSpotRequestsInRegion() { for (String region : Region.DEFAULT_REGIONS) { SortedSet<SpotInstanceRequest> allResults = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(region)); assertNotNull(allResults); if (allResults.size() >= 1) { SpotInstanceRequest request = allResults.last(); SortedSet<SpotInstanceRequest> result = ImmutableSortedSet.copyOf(client.getSpotInstanceApi().get() .describeSpotInstanceRequestsInRegion(region, request.getId())); assertNotNull(result); SpotInstanceRequest compare = result.last(); assertEquals(compare, request); } } }
@Test public void testWhenSpotsPresentSingleCall() { Function<SpotInstanceRequest, AWSRunningInstance> converter = Functions.forMap(ImmutableMap.of(spot1, instance1, spot2, instance2)); AWSEC2Api client = createMock(AWSEC2Api.class); SpotInstanceApi spotApi = createMock(SpotInstanceApi.class); expect(client.getSpotInstanceApi()).andReturn((Optional) Optional.of(spotApi)); expect(spotApi.describeSpotInstanceRequestsInRegion("us-east-1", "sir-aaaa", "sir-bbbb")).andReturn( ImmutableSet.of(spot1, spot2)); replay(client, spotApi); PresentSpotRequestsAndInstances fn = new PresentSpotRequestsAndInstances(client, converter); assertEquals(fn.apply(ImmutableSet.of(new RegionAndName("us-east-1", "sir-aaaa"), new RegionAndName("us-east-1", "sir-bbbb"))), ImmutableSet.of(instance1, instance2)); verify(client, spotApi); } }
public SpotInstanceRequest refresh(SpotInstanceRequest request) { return getOnlyElement(client.getSpotInstanceApi().get().describeSpotInstanceRequestsInRegion(request.getRegion(), request.getId())); }