Example usage for com.amazonaws.services.ec2.model DescribeInstancesRequest getInstanceIds

List of usage examples for com.amazonaws.services.ec2.model DescribeInstancesRequest getInstanceIds

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model DescribeInstancesRequest getInstanceIds.

Prototype


public java.util.List<String> getInstanceIds() 

Source Link

Document

The instance IDs.

Usage

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);
}