Example usage for com.amazonaws.services.ec2 AmazonEC2AsyncClient describeInstancesAsync

List of usage examples for com.amazonaws.services.ec2 AmazonEC2AsyncClient describeInstancesAsync

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2 AmazonEC2AsyncClient describeInstancesAsync.

Prototype

@Override
public java.util.concurrent.Future<DescribeInstancesResult> describeInstancesAsync(
        com.amazonaws.handlers.AsyncHandler<DescribeInstancesRequest, DescribeInstancesResult> asyncHandler) 

Source Link

Document

Simplified method form for invoking the DescribeInstances operation with an AsyncHandler.

Usage

From source file:com.dtolabs.rundeck.plugin.resources.ec2.InstanceToNodeMapper.java

License:Apache License

/**
 * Perform the query asynchronously and return the set of instances
 *
 *///from w w  w .java2  s. c om
public Future<INodeSet> performQueryAsync() {

    final AmazonEC2AsyncClient ec2;
    if (null != credentials) {
        ec2 = new AmazonEC2AsyncClient(credentials, clientConfiguration, executorService);
    } else {
        ec2 = new AmazonEC2AsyncClient(new DefaultAWSCredentialsProviderChain(), clientConfiguration,
                executorService);
    }
    if (null != getEndpoint()) {
        ec2.setEndpoint(getEndpoint());
    }
    final ArrayList<Filter> filters = buildFilters();

    final Future<DescribeInstancesResult> describeInstancesRequest = ec2
            .describeInstancesAsync(new DescribeInstancesRequest().withFilters(filters));

    return new Future<INodeSet>() {

        public boolean cancel(boolean b) {
            return describeInstancesRequest.cancel(b);
        }

        public boolean isCancelled() {
            return describeInstancesRequest.isCancelled();
        }

        public boolean isDone() {
            return describeInstancesRequest.isDone();
        }

        public INodeSet get() throws InterruptedException, ExecutionException {
            DescribeInstancesResult describeInstancesResult = describeInstancesRequest.get();

            final NodeSetImpl nodeSet = new NodeSetImpl();
            final Set<Instance> instances = examineResult(describeInstancesResult);

            mapInstances(nodeSet, instances);
            return nodeSet;
        }

        public INodeSet get(final long l, final TimeUnit timeUnit)
                throws InterruptedException, ExecutionException, TimeoutException {
            DescribeInstancesResult describeInstancesResult = describeInstancesRequest.get(l, timeUnit);

            final NodeSetImpl nodeSet = new NodeSetImpl();
            final Set<Instance> instances = examineResult(describeInstancesResult);

            mapInstances(nodeSet, instances);
            return nodeSet;
        }
    };
}