Example usage for com.amazonaws.services.autoscaling.model TerminateInstanceInAutoScalingGroupRequest setShouldDecrementDesiredCapacity

List of usage examples for com.amazonaws.services.autoscaling.model TerminateInstanceInAutoScalingGroupRequest setShouldDecrementDesiredCapacity

Introduction

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

Prototype


public void setShouldDecrementDesiredCapacity(Boolean shouldDecrementDesiredCapacity) 

Source Link

Document

Indicates whether terminating the instance also decrements the size of the Auto Scaling group.

Usage

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

License:Apache License

@Override
public void terminateInstanceInAutoScalingGroup(String instanceId, boolean decreaseSize) throws Exception {
    TerminateInstanceInAutoScalingGroupRequest request = new TerminateInstanceInAutoScalingGroupRequest();
    request.setShouldDecrementDesiredCapacity(decreaseSize);
    request.setInstanceId(instanceId);/*w w w  . j a v  a2s .  c  o m*/
    aasClient.terminateInstanceInAutoScalingGroup(request);
}

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

License:Apache License

@Override
public void terminateHosts(String clusterName, Collection<String> hostIds, boolean replaceHost)
        throws Exception {
    if (replaceHost) {
        TerminateInstancesRequest termianteRequest = new TerminateInstancesRequest();
        termianteRequest.setInstanceIds(hostIds);
        try {/*from  w  w  w  .j av a2 s  .  c  o  m*/
            ec2Client.terminateInstances(termianteRequest);
        } catch (AmazonClientException e) {
            LOG.error(String.format("Failed to termiante hosts %s: %s", hostIds.toString(), e.getMessage()));
            throw new Exception(
                    String.format("Failed to termiante hosts %s: %s", hostIds.toString(), e.getMessage()));
        }
    } else {
        // Do not replace host and decrease the cluster capacity
        AutoScalingGroup group = getAutoScalingGroup(clusterName);
        if (group == null) {
            LOG.error(String.format("Failed to terminate hosts: auto scaling group %s does not exist",
                    clusterName));
            throw new Exception(String.format("Failed to terminate hosts: auto scaling group %s does not exist",
                    clusterName));
        }

        UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest();
        updateRequest.setAutoScalingGroupName(clusterName);
        updateRequest.setMinSize(Math.max(group.getMinSize() - hostIds.size(), 0));

        for (String hostId : hostIds) {
            TerminateInstanceInAutoScalingGroupRequest terminateRequest = new TerminateInstanceInAutoScalingGroupRequest();
            terminateRequest.setShouldDecrementDesiredCapacity(true);
            terminateRequest.setInstanceId(hostId);
            aasClient.terminateInstanceInAutoScalingGroup(terminateRequest);
        }
    }
}