Example usage for com.amazonaws.services.autoscaling.model DescribeAutoScalingInstancesRequest DescribeAutoScalingInstancesRequest

List of usage examples for com.amazonaws.services.autoscaling.model DescribeAutoScalingInstancesRequest DescribeAutoScalingInstancesRequest

Introduction

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

Prototype

DescribeAutoScalingInstancesRequest

Source Link

Usage

From source file:com.netflix.servo.tag.aws.AwsInjectableTag.java

License:Apache License

static String getAutoScaleGroup() {
    try {// w  ww.  ja  v  a  2  s. c o m
        String credFileProperty = System.getProperties().getProperty(AwsPropertyKeys.awsCredentialsFile);
        AWSCredentials credentials;

        if (credFileProperty != null) {
            credentials = new PropertiesCredentials(new File(credFileProperty));
        } else {
            credentials = new DefaultAWSCredentialsProviderChain().getCredentials();
        }

        AmazonAutoScaling autoScalingClient = new AmazonAutoScalingClient(credentials);

        return autoScalingClient
                .describeAutoScalingInstances(
                        new DescribeAutoScalingInstancesRequest().withInstanceIds(getInstanceId()))
                .getAutoScalingInstances().get(0).getAutoScalingGroupName();
    } catch (Exception e) {
        log.error("Unable to get ASG name.", e);
        return undefined;
    }
}

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//from w w w. j a  va2s .  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.AwsAutoScaleGroupManager.java

License:Apache License

@Override
public Collection<String> instancesInAutoScalingGroup(Collection<String> instances) throws Exception {
    DescribeAutoScalingInstancesRequest request = new DescribeAutoScalingInstancesRequest();
    request.setInstanceIds(instances);/* w w  w  . j a va  2  s . co m*/
    List<AutoScalingInstanceDetails> asgInstanceDetails = aasClient.describeAutoScalingInstances(request)
            .getAutoScalingInstances();
    Collection<String> asgInstances = new ArrayList<>();
    for (AutoScalingInstanceDetails instance : asgInstanceDetails) {
        asgInstances.add(instance.getInstanceId());
    }
    return asgInstances;
}

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  www  . j av a  2s  .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  .  ja va2  s . com*/
    }
    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. j  av  a 2 s  .  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;//from   w  w  w .  jav a  2 s  . c  om
    }
    AutoScalingInstanceDetails instanceDetails = describeResult.getAutoScalingInstances().get(0);
    DetachInstancesRequest detachRequest = new DetachInstancesRequest()
            .withInstanceIds(instanceDetails.getInstanceId())
            .withAutoScalingGroupName(instanceDetails.getAutoScalingGroupName())
            .withShouldDecrementDesiredCapacity(false);
    as.detachInstances(detachRequest);
}