List of usage examples for com.amazonaws.services.ec2.model DescribeInstancesRequest withInstanceIds
public DescribeInstancesRequest withInstanceIds(java.util.Collection<String> instanceIds)
The instance IDs.
From source file:ca.roussil.ec2instancestarter.SimpleEc2Service.java
License:Open Source License
private Instance getSingleEc2InstanceById(String ec2InstanceId) { DescribeInstancesRequest describeRequest = new DescribeInstancesRequest(); describeRequest.withInstanceIds(ec2InstanceId); DescribeInstancesResult result = config.getAmazonEC2Client().describeInstances(describeRequest); List<Reservation> reservations = result.getReservations(); List<Instance> instances = reservations.get(0).getInstances(); if (instances.size() == 0) throw new RuntimeException( "There is a problem, could not find an ec2 instance for id=" + ec2InstanceId); return instances.get(0); }
From source file:com.appdynamics.connectors.AWSConnector.java
License:Apache License
private Instance getEc2Instance(IMachine machine, AmazonEC2 connector) throws ConnectorException { DescribeInstancesResult describeInstancesResult = null; try {// w w w .j a va2 s.c om DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesResult = connector .describeInstances(describeInstancesRequest.withInstanceIds(machine.getName())); List<Reservation> reservations = describeInstancesResult.getReservations(); if (reservations.size() == 0) { // machine not found MUST have been terminated return null; } // always it will be in the first reservation as the query is on // only one machine List<Instance> instances = reservations.get(0).getInstances(); for (Instance instance : instances) { if (instance.getInstanceId().equals(machine.getName())) { // found the machine return instance; } } } catch (Exception e) { throw new ConnectorException(e); } return null; }
From source file:com.bodybuilding.turbine.discovery.AsgTagInstanceDiscovery.java
License:Apache License
/** * Convert from AWS ASG Instances to Turbine Instances * * @param asg/*from ww w. j av a2 s. c om*/ * @return list of Turbine Instances (not AWS Instances) */ private List<Instance> getTurbineInstances(AutoScalingGroup asg) { String clusterName = asg.getTags().stream().filter(t -> t.getKey().equals(CLUSTER_TAG_KEY.get())).findAny() .get().getValue(); List<com.amazonaws.services.autoscaling.model.Instance> awsInstances = asg.getInstances(); Collection<String> instanceIds = awsInstances.stream() .map(com.amazonaws.services.autoscaling.model.Instance::getInstanceId).collect(Collectors.toSet()); DescribeInstancesRequest request = new DescribeInstancesRequest(); request.withInstanceIds(instanceIds); DescribeInstancesResult describeInstancesResult = ec2Client.describeInstances(request); List<Reservation> reservations = describeInstancesResult.getReservations(); List<Instance> turbineInstances = new ArrayList<>(); // add all instances from each of the reservations - after converting to Turbine instance reservations.stream().flatMap(r -> r.getInstances().stream()) .filter(i -> !Strings.isNullOrEmpty(i.getPublicDnsName())) .map(i -> createTurbineInstance(clusterName, i)).forEach(turbineInstances::add); return turbineInstances; }
From source file:com.netflix.simianarmy.client.aws.AWSClient.java
License:Apache License
/** * Describe a set of specific instances. * * @param instanceIds the instance ids//w w w .jav a 2s . c om * @return the instances */ public List<Instance> describeInstances(String... instanceIds) { if (instanceIds == null || instanceIds.length == 0) { LOGGER.info(String.format("Getting all EC2 instances in region %s.", region)); } else { LOGGER.info( String.format("Getting EC2 instances for %d ids in region %s.", instanceIds.length, region)); } List<Instance> instances = new LinkedList<Instance>(); AmazonEC2 ec2Client = ec2Client(); DescribeInstancesRequest request = new DescribeInstancesRequest(); if (instanceIds != null) { request.withInstanceIds(Arrays.asList(instanceIds)); } DescribeInstancesResult result = ec2Client.describeInstances(request); for (Reservation reservation : result.getReservations()) { instances.addAll(reservation.getInstances()); } LOGGER.info(String.format("Got %d EC2 instances in region %s.", instances.size(), region)); return instances; }
From source file:com.netflix.turbine.discovery.AwsUtil.java
License:Apache License
/** * Convert from AWS ASG Instances to Turbine Instances * // w ww . j av a2 s. co m * @param asgName * @return list of Turbine Instances (not AWS Instances) */ public List<Instance> getTurbineInstances(String asgName) { List<com.amazonaws.services.autoscaling.model.Instance> awsInstances = getAutoScalingGroup(asgName) .getInstances(); Collection<String> instanceIds = Collections2.transform(awsInstances, new Function<com.amazonaws.services.autoscaling.model.Instance, String>() { @Override public String apply(com.amazonaws.services.autoscaling.model.Instance asgInstance) { return asgInstance.getInstanceId(); } }); DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesRequest.withInstanceIds(instanceIds); DescribeInstancesResult describeInstancesResult = ec2Client.describeInstances(describeInstancesRequest); List<Reservation> reservations = describeInstancesResult.getReservations(); List<Instance> turbineInstances = new ArrayList<Instance>(); // add all instances from each of the reservations - after converting to Turbine instance for (Reservation reservation : reservations) { List<com.amazonaws.services.ec2.model.Instance> ec2Instances = reservation.getInstances(); for (com.amazonaws.services.ec2.model.Instance ec2Instance : ec2Instances) { String hostname = ec2Instance.getPublicDnsName(); String statusName = ec2Instance.getState().getName(); boolean status = statusName.equals("running"); // see com.amazonaws.services.ec2.model.InstanceState for values Instance turbineInstance = new Instance(hostname, asgName, status); turbineInstance.getAttributes().put("asg", asgName); turbineInstances.add(turbineInstance); } } return turbineInstances; }
From source file:com.rmn.qa.aws.AwsTagReporter.java
License:Open Source License
@Override public void run() { log.info("AwsTagReporter thread initialized"); DescribeInstancesRequest request = new DescribeInstancesRequest(); Collection<String> instanceIds = new ArrayList<>(); for (Instance instance : instances) { instanceIds.add(instance.getInstanceId()); }/* ww w . ja v a2 s .c o m*/ request.withInstanceIds(instanceIds); long startTime = System.currentTimeMillis(); boolean instancesFound = false; do { // Wait up to 10 seconds for the instances to exist with AWS if (System.currentTimeMillis() > startTime + AwsTagReporter.TIMEOUT_IN_SECONDS) { throw new RuntimeException("Error waiting for instances to exist to add tags"); } try { DescribeInstancesResult existingInstances = ec2Client.describeInstances(request); if (existingInstances.getReservations().get(0).getInstances().size() == instances.size()) { log.info("Correct instances were found to add tags to!"); instancesFound = true; } } catch (Throwable t) { log.warn("Error finding instances. Sleeping for 500ms."); try { sleep(); } catch (InterruptedException e) { log.error("Error sleeping for adding tags", e); } } } while (!instancesFound); associateTags(instances); log.info("AwsTagReporter thread completed successfully"); }
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;//from w w w. j a va 2 s .c o m // 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.urbancode.terraform.tasks.aws.helpers.AWSHelper.java
License:Apache License
/** * * @param instanceIds// w ww . j a v a2 s . c o m * @param ec2Client * @return */ public List<Instance> getInstances(List<String> instanceIds, AmazonEC2 ec2Client) { DescribeInstancesRequest request = new DescribeInstancesRequest(); if (instanceIds != null && !instanceIds.isEmpty()) { request = request.withInstanceIds(instanceIds); } DescribeInstancesResult result = ec2Client.describeInstances(request); List<Instance> instances = new ArrayList<Instance>(); List<Reservation> reses = result.getReservations(); if (reses != null) { for (Reservation res : result.getReservations()) { if (res.getInstances() != null && !res.getInstances().isEmpty()) { for (Instance instance : res.getInstances()) { instances.add(instance); } } } } return instances; }
From source file:de.fischer.thotti.ec2.clients.EC2Updater.java
License:Apache License
private void prepareRequestsPerRegion(EC2RequestData<DescribeInstancesRequest> requestData, RegionType region) { DescribeInstancesRequest request = new DescribeInstancesRequest(); for (InstanceType server : region.getInstances()) { request.withInstanceIds(server.getInstanceID()); }//from w w w. ja v a 2 s . c o m requestData.getRegion(region.getName()).addRequest(request); }
From source file:elasticity.services.AmazonService.java
License:Open Source License
/** * Runs a VM instance on an EC2 compatible cloud. * // www .jav a 2 s . c o m * @return The IP of the started instance. */ public String runInstance() throws Exception { logger.log(Level.INFO, "Running new instance.."); //Prepares the run request. RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); runInstancesRequest.setImageId(awsImageId); runInstancesRequest.setKeyName(awsKeypair); runInstancesRequest.setSecurityGroups(Collections.singleton(awsSecurityGroup)); runInstancesRequest.setInstanceType(awsInstanceType); runInstancesRequest.setMaxCount(1); runInstancesRequest.setMinCount(1); //Executes the run request. String instanceId = ""; //Will be changed eventually. boolean done = false; while (!done) { try { RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest); instanceId = runInstancesResult.getReservation().getInstances().get(0).getInstanceId(); done = true; } catch (Exception e) { logger.log(Level.INFO, "Error while sending RunInstanceRequest, retrying in 1s..."); e.printStackTrace(System.out); Thread.sleep(1000); } } logger.log(Level.INFO, "Sent RunInstanceRequest successfully.."); //Waits for the instance to be "running". String instanceIp = ""; //Will be changed eventually. done = false; while (!done) { try { Thread.sleep(1000); DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesRequest.withInstanceIds(instanceId); DescribeInstancesResult describeInstancesResult = ec2.describeInstances(describeInstancesRequest); Instance instance = describeInstancesResult.getReservations().get(0).getInstances().get(0); logger.log(Level.INFO, "Current instance state: " + instance.getState().getName() + ".."); if (instance.getState().getName().equals("running")) { instanceIp = instance.getPrivateIpAddress(); ip2id.put(instanceIp, instanceId); done = true; } } catch (Exception e) { logger.log(Level.INFO, "Failed to get instance description, retrying.."); } } logger.log(Level.INFO, "Instance ran with IP: " + instanceIp + "."); return instanceIp; }