Example usage for com.amazonaws.services.autoscaling.model DescribeAutoScalingInstancesResult getAutoScalingInstances

List of usage examples for com.amazonaws.services.autoscaling.model DescribeAutoScalingInstancesResult getAutoScalingInstances

Introduction

In this page you can find the example usage for com.amazonaws.services.autoscaling.model DescribeAutoScalingInstancesResult getAutoScalingInstances.

Prototype


public java.util.List<AutoScalingInstanceDetails> getAutoScalingInstances() 

Source Link

Document

The instances.

Usage

From source file:com.netflix.simianarmy.client.aws.AWSClient.java

License:Apache License

/**
 * Describe a set of specific auto-scaling instances.
 *
 * @param instanceIds the instance ids/* w ww .jav  a 2  s  . c o m*/
 * @return the instances
 */
public List<AutoScalingInstanceDetails> describeAutoScalingInstances(String... instanceIds) {
    if (instanceIds == null || instanceIds.length == 0) {
        LOGGER.info(String.format("Getting all auto-scaling instances in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting auto-scaling instances for %d ids in region %s.", instanceIds.length,
                region));
    }

    List<AutoScalingInstanceDetails> instances = new LinkedList<AutoScalingInstanceDetails>();

    AmazonAutoScalingClient asgClient = asgClient();
    DescribeAutoScalingInstancesRequest request = new DescribeAutoScalingInstancesRequest();
    if (instanceIds != null) {
        request.setInstanceIds(Arrays.asList(instanceIds));
    }
    DescribeAutoScalingInstancesResult result = asgClient.describeAutoScalingInstances(request);

    instances.addAll(result.getAutoScalingInstances());
    while (result.getNextToken() != null) {
        request = request.withNextToken(result.getNextToken());
        result = asgClient.describeAutoScalingInstances(request);
        instances.addAll(result.getAutoScalingInstances());
    }

    LOGGER.info(String.format("Got %d auto-scaling instances.", instances.size()));
    return instances;
}

From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java

License:Apache License

@Override
public boolean isInstanceProtected(String instance) throws Exception {
    DescribeAutoScalingInstancesRequest request = new DescribeAutoScalingInstancesRequest();
    request.setInstanceIds(Collections.singletonList(instance));
    DescribeAutoScalingInstancesResult result = aasClient.describeAutoScalingInstances(request);
    if (result.getAutoScalingInstances().isEmpty()) {
        LOG.error(String.format("Failed to find any instances details for  %s", instance));
        return false;
    }/*from  w  w  w .  j a v a  2  s .c o  m*/
    AutoScalingInstanceDetails details = result.getAutoScalingInstances().get(0);
    return details.getProtectedFromScaleIn();
}

From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java

License:Apache License

@Override
public Collection<String> getAutoScalingInstances(String groupName, Collection<String> hostIds)
        throws Exception {
    Collection<String> asgHostIds = new ArrayList<>();
    DescribeAutoScalingInstancesRequest asgInstancesRequest = new DescribeAutoScalingInstancesRequest();
    asgInstancesRequest.setInstanceIds(hostIds);
    DescribeAutoScalingInstancesResult asgInstancesResult = aasClient
            .describeAutoScalingInstances(asgInstancesRequest);
    List<AutoScalingInstanceDetails> instanceDetails = asgInstancesResult.getAutoScalingInstances();
    for (AutoScalingInstanceDetails instanceDetail : instanceDetails) {
        if (instanceDetail.getAutoScalingGroupName().equals(groupName)) {
            asgHostIds.add(instanceDetail.getInstanceId());
        }/*w  w  w .j a  v a  2 s .c  om*/
    }
    return asgHostIds;
}

From source file:com.pinterest.clusterservice.cm.AwsVmManager.java

License:Apache License

@Override
public Collection<String> getHosts(String clusterName, Collection<String> hostIds) throws Exception {
    Collection<String> asgHostIds = new ArrayList<>();
    if (hostIds == null || hostIds.isEmpty()) {
        AutoScalingGroup group = getAutoScalingGroup(clusterName);
        List<Instance> asgInstances = group.getInstances();
        for (Instance asgInstance : asgInstances) {
            asgHostIds.add(asgInstance.getInstanceId());
        }//  w w  w .ja  v a  2s  .  c o m
    } else {
        DescribeAutoScalingInstancesRequest asgInstancesRequest = new DescribeAutoScalingInstancesRequest();
        asgInstancesRequest.setInstanceIds(hostIds);
        DescribeAutoScalingInstancesResult asgInstancesResult = aasClient
                .describeAutoScalingInstances(asgInstancesRequest);
        List<AutoScalingInstanceDetails> instanceDetails = asgInstancesResult.getAutoScalingInstances();
        for (AutoScalingInstanceDetails instanceDetail : instanceDetails) {
            if (instanceDetail.getAutoScalingGroupName().equals(clusterName)) {
                asgHostIds.add(instanceDetail.getInstanceId());
            }
        }
    }
    return asgHostIds;
}

From source file:dsmwatcher.DSMWatcher.java

License:Open Source License

public void handleAutoScaledInstance(Instance instance) throws Exception {
    AmazonAutoScalingClient as = new AmazonAutoScalingClient().withRegion(region);
    DescribeAutoScalingInstancesResult describeResult = as.describeAutoScalingInstances(
            new DescribeAutoScalingInstancesRequest().withInstanceIds(instance.getInstanceId()));
    if (describeResult.getAutoScalingInstances().size() == 0) {
        return;/*  ww w.  j av a2  s.c o  m*/
    }
    AutoScalingInstanceDetails instanceDetails = describeResult.getAutoScalingInstances().get(0);
    DetachInstancesRequest detachRequest = new DetachInstancesRequest()
            .withInstanceIds(instanceDetails.getInstanceId())
            .withAutoScalingGroupName(instanceDetails.getAutoScalingGroupName())
            .withShouldDecrementDesiredCapacity(false);
    as.detachInstances(detachRequest);
}