List of usage examples for com.amazonaws.services.ec2 AmazonEC2AsyncClient describeInstancesAsync
@Override
public java.util.concurrent.Future<DescribeInstancesResult> describeInstancesAsync(
com.amazonaws.handlers.AsyncHandler<DescribeInstancesRequest, DescribeInstancesResult> asyncHandler)
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; } }; }