List of usage examples for com.amazonaws.services.ec2.model DescribeInstancesRequest setNextToken
public void setNextToken(String nextToken)
The token to request the next page of results.
From source file:aws.example.ec2.DescribeInstances.java
License:Open Source License
public static void main(String[] args) { final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); boolean done = false; while (!done) { DescribeInstancesRequest request = new DescribeInstancesRequest(); DescribeInstancesResult response = ec2.describeInstances(request); for (Reservation reservation : response.getReservations()) { for (Instance instance : reservation.getInstances()) { System.out.printf( "Found reservation with id %s, " + "AMI %s, " + "type %s, " + "state %s " + "and monitoring state %s", instance.getInstanceId(), instance.getImageId(), instance.getInstanceType(), instance.getState().getName(), instance.getMonitoring().getState()); }// w w w .jav a2 s . c o m } request.setNextToken(response.getNextToken()); if (response.getNextToken() == null) { done = true; } } }
From source file:com.bodybuilding.turbine.discovery.Ec2TagInstanceDiscovery.java
License:Apache License
private Collection<Instance> getInstancesInternal() { List<Filter> filterList = new ArrayList<>(1); filterList.add(new Filter("tag-key", Lists.newArrayList(CLUSTER_TAG_KEY.get()))); String nextToken = null;//from www .j a v a2 s . co m Collection<Instance> instances = new ArrayList<>(); do { DescribeInstancesRequest request = new DescribeInstancesRequest(); request.setFilters(filterList); request.setNextToken(nextToken); DescribeInstancesResult results = ec2Client.describeInstances(request); nextToken = results.getNextToken(); instances.addAll(processReservations(results.getReservations())); } while (!Strings.isNullOrEmpty(nextToken)); return instances; }
From source file:com.netflix.spinnaker.clouddriver.aws.agent.ReconcileClassicLinkSecurityGroupsAgent.java
License:Apache License
@Override public void run() { if (!deployDefaults.isReconcileClassicLinkAccount(account)) { return;/* www.ja va 2s . c o m*/ } log.info("Checking classic link security groups in {}/{}", account.getName(), region); AmazonEC2 ec2 = amazonClientProvider.getAmazonEC2(account, region, true); List<String> classicLinkVpcIds = ec2.describeVpcClassicLink().getVpcs().stream() .filter(VpcClassicLink::getClassicLinkEnabled).map(VpcClassicLink::getVpcId) .collect(Collectors.toList()); if (classicLinkVpcIds.size() > 1) { log.warn("Multiple classicLinkVpcs found: {}", classicLinkVpcIds); throw new IllegalStateException("More than 1 classicLinkVpc found: " + classicLinkVpcIds); } if (classicLinkVpcIds.isEmpty()) { return; } String classicLinkVpcId = classicLinkVpcIds.get(0); RateLimiter apiRequestRateLimit = RateLimiter.create(5); final Map<String, ClassicLinkInstance> classicLinkInstances = new HashMap<>(); DescribeInstancesRequest describeInstances = new DescribeInstancesRequest().withMaxResults(500); while (true) { apiRequestRateLimit.acquire(); DescribeInstancesResult instanceResult = ec2.describeInstances(describeInstances); instanceResult.getReservations().stream().flatMap(r -> r.getInstances().stream()) .filter(i -> i.getVpcId() == null) .filter(i -> Optional .ofNullable(i.getState()).filter(is -> is.getCode() == RUNNING_STATE).isPresent()) .filter(this::isInstanceOldEnough) .map(i -> new ClassicLinkInstance().withInstanceId(i.getInstanceId()) .withVpcId(classicLinkVpcId).withTags(i.getTags())) .forEach(cli -> classicLinkInstances.put(cli.getInstanceId(), cli)); if (instanceResult.getNextToken() == null) { break; } describeInstances.setNextToken(instanceResult.getNextToken()); } DescribeClassicLinkInstancesRequest request = new DescribeClassicLinkInstancesRequest() .withMaxResults(1000); while (true) { apiRequestRateLimit.acquire(); DescribeClassicLinkInstancesResult result = ec2.describeClassicLinkInstances(request); result.getInstances().forEach(i -> classicLinkInstances.put(i.getInstanceId(), i)); if (result.getNextToken() == null) { break; } request.setNextToken(result.getNextToken()); } log.info("{} existing classic instances in {}/{}", classicLinkInstances.size(), account.getName(), region); Map<String, String> groupNamesToIds = ec2 .describeSecurityGroups(new DescribeSecurityGroupsRequest() .withFilters(new Filter("vpc-id").withValues(classicLinkVpcId))) .getSecurityGroups().stream() .collect(Collectors.toMap(SecurityGroup::getGroupName, SecurityGroup::getGroupId)); reconcileInstances(ec2, groupNamesToIds, classicLinkInstances.values()); }
From source file:com.pinterest.arcee.aws.EC2HostInfoDAOImpl.java
License:Apache License
@Override public Set<String> getTerminatedHosts(Set<String> staleIds) throws Exception { HashSet<String> ids = new HashSet<>(staleIds); HashSet<String> terminatedHosts = new HashSet<>(); while (!ids.isEmpty()) { DescribeInstancesRequest request = new DescribeInstancesRequest(); request.setInstanceIds(ids);/*ww w . j a v a2s. c om*/ try { do { DescribeInstancesResult results = ec2Client.describeInstances(request); List<Reservation> reservations = results.getReservations(); for (Reservation reservation : reservations) { for (Instance instance : reservation.getInstances()) { int stateCode = instance.getState().getCode(); String id = instance.getInstanceId(); if (stateCode == TERMINATED_CODE || stateCode == STOPPED_CODE) { LOG.info(String.format("Instance %s has already been terminated or stopped.", id)); terminatedHosts.add(id); } ids.remove(id); } } if (results.getNextToken() == null || results.getNextToken().isEmpty()) { break; } request = new DescribeInstancesRequest(); request.setInstanceIds(ids); request.setNextToken(results.getNextToken()); } while (true); LOG.debug("Cannot find the following ids in AWS:", ids); terminatedHosts.addAll(ids); return terminatedHosts; } catch (AmazonServiceException ex) { Collection<String> invalidHostIds = handleInvalidInstanceId(ex); ids.removeAll(invalidHostIds); // add invalid host ids to the terminated host list. terminatedHosts.addAll(invalidHostIds); } catch (AmazonClientException ex) { LOG.error(String.format("Get AmazonClientException, exit with terminiatedHost %s", terminatedHosts.toString()), ex); return terminatedHosts; } } return terminatedHosts; }
From source file:com.pinterest.arcee.aws.EC2HostInfoDAOImpl.java
License:Apache License
@Override public List<String> getRunningInstances(List<String> runningIds) throws Exception { HashSet<String> ids = new HashSet<>(runningIds); ArrayList<String> resultIds = new ArrayList<>(); while (!ids.isEmpty()) { DescribeInstancesRequest request = new DescribeInstancesRequest(); request.setInstanceIds(ids);//w w w.j a va 2 s. com Filter filter = new Filter("instance-state-code", Arrays.asList(RUNNING_CODE)); request.setFilters(Arrays.asList(filter)); try { do { DescribeInstancesResult results = ec2Client.describeInstances(request); List<Reservation> reservations = results.getReservations(); for (Reservation reservation : reservations) { for (Instance instance : reservation.getInstances()) { resultIds.add(instance.getInstanceId()); } } if (StringUtils.isEmpty(results.getNextToken())) { break; } request = new DescribeInstancesRequest(); request.setNextToken(results.getNextToken()); } while (true); LOG.debug("Cannot find the following ids in AWS:", ids); return resultIds; } catch (AmazonServiceException ex) { // if the error code is not instance not found. return the terminated list we've already got. ids.removeAll(handleInvalidInstanceId(ex)); } catch (AmazonClientException ex) { LOG.error(String.format("Get AmazonClientException, exit with terminiatedHost %s", resultIds.toString()), ex); throw new Exception(String.format("Get AmazonClientException, exit with terminiatedHost %s", resultIds.toString()), ex); } } return resultIds; }
From source file:com.steelbridgelabs.oss.neo4j.cluster.ecs.AutoscalingGroupMembers.java
License:Apache License
public static void main(String[] args) { // check arguments if (args.length == 1) { // create aws ec2 client AmazonEC2 client = AmazonEC2ClientBuilder.defaultClient(); // create request DescribeInstancesRequest request = new DescribeInstancesRequest(); // use instance ids associated to cluster request.withInstanceIds(ec2Instances(args[0])); // next token String token = null;// ww w. j a v a 2s.c om // instance ip addresses List<String> addresses = new ArrayList<>(); do { // set next token request.setNextToken(token); // describe instances DescribeInstancesResult result = client.describeInstances(request); // loop reservations result.getReservations().forEach(reservation -> { // append private ip addresses addresses.addAll(reservation.getInstances().stream().map(Instance::getPrivateIpAddress) .collect(Collectors.toList())); }); // check we have more data to retrieve token = result.getNextToken(); } while (token != null); // dump initial cluster members System.out.print(addresses.stream().map(entry -> entry + ":5000").collect(Collectors.joining(","))); } else { // show information System.err.println("Invalid ECS cluster name: java -jar neo4j-cluster-ecs-tools.jar My-Cluster-Name"); } }
From source file:com.vb.aws.services.compute.ec2.EC2UtilsImpl.java
/** * This method returns all EC2 instances. * @return// w w w . j ava2 s. c o m * @throws AmazonClientException */ public List<Instance> getAllInstances() throws AmazonClientException { String marker = null; List<Instance> allInstances = new ArrayList<>(); try { while (true) { DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesRequest.setNextToken(marker); DescribeInstancesResult describeInstancesResult = this.amazonEc2 .describeInstances(describeInstancesRequest); List<Reservation> reservations = describeInstancesResult.getReservations(); for (Reservation reservation : reservations) { allInstances.addAll(reservation.getInstances()); } marker = describeInstancesResult.getNextToken(); if (marker == null) { break; } } } catch (AmazonClientException e) { System.out.println("ERROR : Fetching all EC2 instances."); e.printStackTrace(); throw e; } System.out.println("INFO : Number of EC2 instances : " + allInstances.size()); List<String> instancesId = allInstances.stream().map(e -> e.getInstanceId()).collect(Collectors.toList()); System.out.println("INFO : EC2 Instances : " + instancesId); return allInstances; }
From source file:com.vmware.photon.controller.model.adapters.awsadapter.enumeration.AWSEnumerationAndCreationAdapterService.java
License:Open Source License
/** * Initializes and saves a reference to the request object that is sent to AWS to get a page of instances. Also saves an instance * to the async handler that will be used to handle the responses received from AWS. It sets the nextToken value in the request * object sent to AWS for getting the next page of results from AWS. * @param aws//from w w w . ja v a2 s .com */ private void creatAWSRequestAndAsyncHandler(EnumerationCreationContext aws) { DescribeInstancesRequest request = new DescribeInstancesRequest(); Filter runningInstanceFilter = getAWSNonTerminatedInstancesFilter(); request.getFilters().add(runningInstanceFilter); request.setMaxResults(getQueryPageSize()); request.setNextToken(aws.nextToken); aws.describeInstancesRequest = request; AsyncHandler<DescribeInstancesRequest, DescribeInstancesResult> resultHandler = new AWSEnumerationAsyncHandler( this, aws); aws.resultHandler = resultHandler; }
From source file:ec2.DescribeInstances.java
License:Open Source License
public static void main(String[] args) { final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); boolean done = false; while (!done) { DescribeInstancesRequest request = new DescribeInstancesRequest(); DescribeInstancesResult response = ec2.describeInstances(request); for (Reservation reservation : response.getReservations()) { for (Instance instance : reservation.getInstances()) { System.out.printf( "Found reservation with id %s, AMI %s, type %s, state %s and monitoring state %s", instance.getInstanceId(), instance.getImageId(), instance.getInstanceType(), instance.getState().getName(), instance.getMonitoring().getState()); }/*from w ww . jav a 2 s . c om*/ } request.setNextToken(response.getNextToken()); if (response.getNextToken() == null) { done = true; } } }
From source file:org.lendingclub.mercator.aws.EC2InstanceScanner.java
License:Apache License
public void scanInstanceId(String... instanceIdList) { Arrays.asList(instanceIdList).forEach(instanceId -> { String token = null;//from www . j a va2s .c o m DescribeInstancesRequest request = new DescribeInstancesRequest().withInstanceIds(instanceId); do { DescribeInstancesResult results = getClient().describeInstances(); results.getReservations().forEach(reservation -> { reservation.getInstances().forEach(instance -> { try { writeInstance(instance); } catch (RuntimeException e) { maybeThrow(e); } }); }); request.setNextToken(results.getNextToken()); } while (tokenHasNext(token)); }); }