List of usage examples for com.amazonaws.services.ec2.model DescribeInstancesRequest getInstanceIds
public java.util.List<String> getInstanceIds()
The instance IDs.
From source file:com.netflix.edda.EddaEc2Client.java
License:Apache License
public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) { validateEmpty("Filter", request.getFilters()); TypeReference<List<Reservation>> ref = new TypeReference<List<Reservation>>() { };/*from ww w .j a v a 2s. c o m*/ String url = config.url() + "/api/v2/aws/instances;_expand"; try { List<Reservation> reservations = parse(ref, doGet(url)); List<String> ids = request.getInstanceIds(); if (shouldFilter(ids)) { List<Reservation> rs = new ArrayList<Reservation>(); for (Reservation r : reservations) { List<Instance> is = new ArrayList<Instance>(); for (Instance i : r.getInstances()) { if (matches(ids, i.getInstanceId())) is.add(i); } if (is.size() > 0) rs.add(r.withInstances(is)); } reservations = rs; } return new DescribeInstancesResult().withReservations(reservations); } catch (IOException e) { throw new AmazonClientException("Faled to parse " + url, e); } }
From source file:com.vmware.photon.controller.model.adapters.awsadapter.enumeration.AWSEnumerationAndDeletionAdapterService.java
License:Open Source License
/** * Get the instances from AWS filtered by the instances Ids known to the local system. *///from www . j a va 2 s .co m public void getRemoteInstances(EnumerationDeletionContext aws, AWSEnumerationDeletionSubStage next) { if (aws.localInstanceIds == null || aws.localInstanceIds.size() == 0) { logInfo("There are no local records found for which state needs to be fetched from the remote system."); aws.subStage = next; deleteResourcesInLocalSystem(aws); return; } DescribeInstancesRequest request = new DescribeInstancesRequest(); Filter runningInstanceFilter = getAWSNonTerminatedInstancesFilter(); request.getFilters().add(runningInstanceFilter); // Get only the instances from the remote system for which a compute state exists in the // local system. logInfo("Fetching instance details for %d instances on the AWS endpoint", aws.localInstanceIds.keySet().size()); request.getInstanceIds().addAll(new ArrayList<String>(aws.localInstanceIds.keySet())); AsyncHandler<DescribeInstancesRequest, DescribeInstancesResult> resultHandler = new AWSEnumerationAsyncHandler( this, aws, next); aws.amazonEC2Client = this.clientManager.getOrCreateEC2Client(aws.parentAuth, aws.computeHostDescription.zoneId, this, aws.computeEnumerationRequest.taskReference, true); aws.amazonEC2Client.describeInstancesAsync(request, resultHandler); }
From source file:de.fischer.thotti.ec2.clients.EC2Describer.java
License:Apache License
private Map<String, SortedSet<Instance>> executeRequest(EC2RequestData<DescribeInstancesRequest> requestData) throws AWSCommunicationException { int requestID = 1; Map<String, SortedSet<Instance>> instances = new HashMap<String, SortedSet<Instance>>(); List<Region> awsRegions = getAWSRegions(); // @todo this should be a separate method for (Region region : awsRegions) { EC2RunnerContext context = new EC2RunnerContext(); context.regionName = region.getRegionName(); context.endPoint = region.getEndpoint(); getRegionContextCache().put(context.regionName, context); }/*from w ww.j av a 2s.com*/ for (String regionName : requestData.getAllRegions()) { EC2RunnerContext ctx = getRegionContextCache().get(regionName); Comparator comparator = new EC2Executor.InstaceAvailabilityComparator(); SortedSet<Instance> describedInstances = new TreeSet<Instance>(comparator); setRegionContext(ctx); switchCommunicationEndPoint(); RegionRequests<DescribeInstancesRequest> regionRequests = requestData.getRegion(regionName); List<DescribeInstancesRequest> runRequests = regionRequests.getRequests(); for (DescribeInstancesRequest request : runRequests) { if (logger.isInfoEnabled()) { List<String> idList = request.getInstanceIds(); for (String id : idList) { logger.info( "Going to request description of " + "instances in region {}. Internal request ID is #{}.", new Object[] { regionName, requestID }); } } DescribeInstancesResult result = null; try { result = getClient().describeInstances(request); } catch (AmazonServiceException ase) { handleAmazonServiceException(ase); } catch (AmazonClientException ace) { handleAmazonClientException(ace); } for (Reservation reservation : result.getReservations()) { for (Instance instance : reservation.getInstances()) { if (logger.isInfoEnabled()) { logger.info("Amazon AWS returned description for instance {} " + "in region {}", new Object[] { instance.getInstanceId(), regionName }); } describedInstances.add(instance); } requestID++; // For the next request } instances.put(regionName, describedInstances); } } return instances; }
From source file:de.fischer.thotti.ec2.clients.EC2Updater.java
License:Apache License
private Map<String, SortedSet<Instance>> executeRequest(EC2RequestData<DescribeInstancesRequest> requestData) throws AWSCommunicationException { int requestID = 1; Map<String, SortedSet<Instance>> instances = new HashMap<String, SortedSet<Instance>>(); List<Region> awsRegions = getAWSRegions(); // @todo this should be a separate method for (Region region : awsRegions) { EC2RunnerContext context = new EC2RunnerContext(); context.regionName = region.getRegionName(); context.endPoint = region.getEndpoint(); getRegionContextCache().put(context.regionName, context); }//from ww w.ja va 2 s. c o m for (String regionName : requestData.getAllRegions()) { EC2RunnerContext ctx = getRegionContextCache().get(regionName); Comparator comparator = new EC2Executor.InstaceAvailabilityComparator(); SortedSet<Instance> describedInstances = new TreeSet<Instance>(comparator); setRegionContext(ctx); switchCommunicationEndPoint(); RegionRequests regionRequests = requestData.getRegion(regionName); List<DescribeInstancesRequest> runRequests = regionRequests.getRequests(); for (DescribeInstancesRequest request : runRequests) { if (logger.isInfoEnabled()) { List<String> idList = request.getInstanceIds(); for (String id : idList) { logger.info( "Going to request description of instance {} in " + "region {} ({}). Internal request ID is #{}.", new Object[] { id, regionName, requestID }); } } DescribeInstancesResult result = null; try { result = getClient().describeInstances(request); } catch (AmazonServiceException ase) { handleAmazonServiceException(ase); } catch (AmazonClientException ace) { handleAmazonClientException(ace); } for (Reservation reservation : result.getReservations()) { for (Instance instance : reservation.getInstances()) { if (logger.isInfoEnabled()) { logger.info("Amazon AWS returned description for instance {} " + "in region {}", new Object[] { instance.getInstanceId(), regionName }); } describedInstances.add(instance); } requestID++; // For the next request } instances.put(regionName, describedInstances); } } return instances; }
From source file:jp.primecloud.auto.aws.typica.EucaEc2Client.java
License:Open Source License
@Override public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest) { try {/*from w w w .j a v a 2 s .co m*/ List<ReservationDescription> descriptions = jec2 .describeInstances(describeInstancesRequest.getInstanceIds()); List<Reservation> reservations = new ReservationConverter().convert(descriptions); return new DescribeInstancesResult().withReservations(reservations); } catch (EC2Exception e) { throw new AmazonClientException(e); } }
From source file:ro.cosu.vampires.server.resources.ec2.EC2Resource.java
License:Open Source License
private String getPublicDnsName(DescribeInstancesRequest describeRequest) throws InterruptedException { String publicDnsName = ""; int tries = 0; while (Strings.isNullOrEmpty(publicDnsName) && tries < MAX_TRIES) { publicDnsName = amazonEC2Client.describeInstances(describeRequest).getReservations().get(0) .getInstances().get(0).getPublicDnsName(); if (!Strings.isNullOrEmpty(publicDnsName)) break; tries++;//from w w w .ja v a2 s. c om Thread.sleep(TRY_INTERVAL_MILLI); } if (Strings.isNullOrEmpty(publicDnsName)) { LOG.warn("unable to create publicDNSName for instance {}", describeRequest.getInstanceIds()); } return publicDnsName; }
From source file:web.component.impl.aws.AWSEC2Impl.java
@Override public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) { if (request.getInstanceIds() == null || request.getInstanceIds().isEmpty()) throw new IllegalArgumentException("Instance ID not specified."); return awsHttpClient.describeInstances(request); }