List of usage examples for com.amazonaws.services.autoscaling.model UpdateAutoScalingGroupRequest setAutoScalingGroupName
public void setAutoScalingGroupName(String autoScalingGroupName)
The name of the Auto Scaling group.
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public void detachInstancesFromAutoScalingGroup(Collection<String> instances, String groupName, boolean decreaseSize) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Collections.singletonList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//from w ww . j a va2 s . c om } AutoScalingGroup group = groups.get(0); int curCapacity = group.getDesiredCapacity(); int minSize = group.getMinSize(); if (decreaseSize && (curCapacity == minSize)) { UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setMinSize(minSize - 1); aasClient.updateAutoScalingGroup(updateRequest); } DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest(); detachInstancesRequest.withAutoScalingGroupName(groupName).setInstanceIds(instances); detachInstancesRequest.setShouldDecrementDesiredCapacity(decreaseSize); aasClient.detachInstances(detachInstancesRequest); }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
@Override public void launchHosts(String clusterName, int num) throws Exception { AutoScalingGroup group = getAutoScalingGroup(clusterName); if (group == null) { LOG.error(String.format("Failed to launch hosts: auto scaling group %s does not exist", clusterName)); throw new Exception( String.format("Failed to launch hosts: auto scaling group %s does not exist", clusterName)); }/* w w w . j a v a2 s. c om*/ try { UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(clusterName); updateRequest.setDesiredCapacity(group.getDesiredCapacity() + num); updateRequest.setMaxSize(Math.max(group.getDesiredCapacity(), group.getDesiredCapacity() + num)); aasClient.updateAutoScalingGroup(updateRequest); } catch (AmazonClientException e) { LOG.error(String.format("Failed to launch %d hosts to auto scaling group %s: %s", num, clusterName, e.getMessage())); throw new Exception(String.format("Failed to launch %d hosts to auto scaling group %s: %s", num, clusterName, e.getMessage())); } }
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 ww . ja va 2 s . c om*/ 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); } } }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
private void updateAutoScalingGroup(String clusterName, AwsVmBean newBean) throws Exception { try {/* www. j a v a2s. co m*/ UpdateAutoScalingGroupRequest updateAsgRequest = new UpdateAutoScalingGroupRequest(); updateAsgRequest.setAutoScalingGroupName(clusterName); if (newBean.getSubnet() != null) { updateAsgRequest.setVPCZoneIdentifier(newBean.getSubnet()); } if (newBean.getMinSize() != null) { updateAsgRequest.setMinSize(newBean.getMinSize()); } if (newBean.getMaxSize() != null) { updateAsgRequest.setMaxSize(newBean.getMaxSize()); } if (newBean.getLaunchConfigId() != null) { updateAsgRequest.setLaunchConfigurationName(newBean.getLaunchConfigId()); } aasClient.updateAutoScalingGroup(updateAsgRequest); } catch (AmazonClientException e) { LOG.error(String.format("Failed to update auto scaling group %s: %s", clusterName, e.getMessage())); throw new Exception( String.format("Failed to update auto scaling group %s: %s", clusterName, e.getMessage())); } }