List of usage examples for com.amazonaws.services.autoscaling.model DeleteAutoScalingGroupRequest setForceDelete
public void setForceDelete(Boolean forceDelete)
Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated.
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void deleteAutoScalingGroup(String groupName, boolean detachInstances) throws Exception { // step 1: get the auto scaling instances information if (detachInstances) { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return; }/* ww w .j a va2s. c om*/ AutoScalingGroup group = groups.get(0); List<Instance> instances = group.getInstances(); List<String> ids = new LinkedList<>(); for (Instance instance : instances) { ids.add(instance.getInstanceId()); } // step 2: update the autoscaling min size to 0 UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName); updateAutoScalingGroupRequest.setMinSize(0); aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); // step 3: detach instances from auto scaling group if (!ids.isEmpty()) { for (int i = 0; i < ids.size(); i += MAX_DETACH_INSTANCE_LENGTH) { DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest(); detachInstancesRequest.setAutoScalingGroupName(groupName); detachInstancesRequest.setShouldDecrementDesiredCapacity(true); detachInstancesRequest .setInstanceIds(ids.subList(i, Math.min(i + MAX_DETACH_INSTANCE_LENGTH, ids.size()))); aasClient.detachInstances(detachInstancesRequest); } } } // step 4 delete auto scaling group DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest = new DeleteAutoScalingGroupRequest(); deleteAutoScalingGroupRequest.setAutoScalingGroupName(groupName); deleteAutoScalingGroupRequest.setForceDelete(true); aasClient.deleteAutoScalingGroup(deleteAutoScalingGroupRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public void deleteAutoScalingGroup(String groupName, boolean detachInstances) throws Exception { // step 1: get the auto scaling instances information if (detachInstances) { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return; }/*from w w w . ja v a 2 s . c o m*/ AutoScalingGroup group = groups.get(0); List<Instance> instances = group.getInstances(); List<String> ids = new ArrayList<>(); for (Instance instance : instances) { ids.add(instance.getInstanceId()); } // step 2: update the autoscaling min size to 0 UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName); updateAutoScalingGroupRequest.setMinSize(0); aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); // step 3: detach instances from auto scaling group if (!ids.isEmpty()) { for (int i = 0; i < ids.size(); i += MAX_DETACH_INSTANCE_LENGTH) { DetachInstancesRequest detachInstancesRequest = new DetachInstancesRequest(); detachInstancesRequest.setAutoScalingGroupName(groupName); detachInstancesRequest.setShouldDecrementDesiredCapacity(true); detachInstancesRequest .setInstanceIds(ids.subList(i, Math.min(i + MAX_DETACH_INSTANCE_LENGTH, ids.size()))); aasClient.detachInstances(detachInstancesRequest); } } } // step 4 delete auto scaling group DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest = new DeleteAutoScalingGroupRequest(); deleteAutoScalingGroupRequest.setAutoScalingGroupName(groupName); deleteAutoScalingGroupRequest.setForceDelete(true); aasClient.deleteAutoScalingGroup(deleteAutoScalingGroupRequest); }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
private void deleteAutoScalingGroup(String clusterName) throws Exception { try {//from ww w. jav a 2 s . c o m DeleteAutoScalingGroupRequest deleteRequest = new DeleteAutoScalingGroupRequest(); deleteRequest.setAutoScalingGroupName(clusterName); deleteRequest.setForceDelete(true); aasClient.deleteAutoScalingGroup(deleteRequest); } catch (AmazonClientException e) { LOG.error(String.format("Failed to delete auto scaling group %s: %s", clusterName, e.getMessage())); throw new Exception( String.format("Failed to delete auto scaling group %s: %s", clusterName, e.getMessage())); } }