List of usage examples for com.amazonaws.services.autoscaling.model TerminateInstanceInAutoScalingGroupRequest setShouldDecrementDesiredCapacity
public void setShouldDecrementDesiredCapacity(Boolean shouldDecrementDesiredCapacity)
Indicates whether terminating the instance also decrements the size of the Auto Scaling group.
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); } } }