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.netflix.dynomitemanager.sidecore.aws.AWSMembership.java
License:Apache License
@Override public void expandRacMembership(int count) { AmazonAutoScaling client = null;/*from w ww. j av a 2s . c o m*/ try { client = getAutoScalingClient(); DescribeAutoScalingGroupsRequest asgReq = new DescribeAutoScalingGroupsRequest() .withAutoScalingGroupNames(config.getASGName()); DescribeAutoScalingGroupsResult res = client.describeAutoScalingGroups(asgReq); AutoScalingGroup asg = res.getAutoScalingGroups().get(0); UpdateAutoScalingGroupRequest ureq = new UpdateAutoScalingGroupRequest(); ureq.setAutoScalingGroupName(asg.getAutoScalingGroupName()); ureq.setMinSize(asg.getMinSize() + 1); ureq.setMaxSize(asg.getMinSize() + 1); ureq.setDesiredCapacity(asg.getMinSize() + 1); client.updateAutoScalingGroup(ureq); } finally { if (client != null) client.shutdown(); } }
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; }/* w w w. ja va 2 s.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.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void updateSubnet(String groupName, String subnets) throws Exception { UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName); updateAutoScalingGroupRequest.setVPCZoneIdentifier(subnets); aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void updateAutoScalingGroup(AutoScalingRequestBean request, String subnets) throws Exception { UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(request.getGroupName()); updateAutoScalingGroupRequest.setVPCZoneIdentifier(subnets); updateAutoScalingGroupRequest.setTerminationPolicies(Arrays.asList(request.getTerminationPolicy())); updateAutoScalingGroupRequest.withMinSize(request.getMinSize()).withMaxSize(request.getMaxSize()); aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void changeAutoScalingGroupLaunchConfig(String groupName, String configId) throws Exception { UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName); updateAutoScalingGroupRequest.setLaunchConfigurationName(configId); aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void detachInstancesFromAutoScalingGroup(Collection<String> instances, String groupName, boolean decreaseSize) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//w w w. jav a2s . 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.arcee.autoscaling.AwsAutoScaleGroupManager.java
License:Apache License
@Override public void increaseASGDesiredCapacityBySize(String groupName, int instanceCnt) throws Exception { DescribeAutoScalingGroupsRequest request = new DescribeAutoScalingGroupsRequest(); request.setAutoScalingGroupNames(Arrays.asList(groupName)); DescribeAutoScalingGroupsResult result = aasClient.describeAutoScalingGroups(request); List<AutoScalingGroup> groups = result.getAutoScalingGroups(); if (groups.isEmpty()) { return;//from ww w . j a v a2 s .c o m } AutoScalingGroup group = groups.get(0); int curCapacity = group.getDesiredCapacity(); UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setDesiredCapacity(curCapacity + instanceCnt); updateRequest.setMaxSize(Math.max(group.getMaxSize(), curCapacity + instanceCnt)); aasClient.updateAutoScalingGroup(updateRequest); }
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 .j a v a2 s . com*/ 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.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public void updateAutoScalingGroup(String groupName, AwsVmBean request) throws Exception { UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest = new UpdateAutoScalingGroupRequest(); updateAutoScalingGroupRequest.setAutoScalingGroupName(groupName); if (!StringUtils.isEmpty(request.getLaunchConfigId())) { updateAutoScalingGroupRequest.setLaunchConfigurationName(request.getLaunchConfigId()); }/* ww w . j a va2 s . c o m*/ if (!StringUtils.isEmpty(request.getSubnet())) { updateAutoScalingGroupRequest.setVPCZoneIdentifier(request.getSubnet()); } if (!StringUtils.isEmpty(request.getTerminationPolicy())) { updateAutoScalingGroupRequest .setTerminationPolicies(Collections.singletonList(request.getTerminationPolicy())); } if (request.getMinSize() != null) { updateAutoScalingGroupRequest.setMinSize(request.getMinSize()); } if (request.getMaxSize() != null) { updateAutoScalingGroupRequest.setMaxSize(request.getMaxSize()); } aasClient.updateAutoScalingGroup(updateAutoScalingGroupRequest); }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
private void changeGroupCapacity(String groupName, int size, boolean increment) throws Exception { AutoScalingGroup group = getAutoScalingGroup(groupName); if (group == null) { return;/*from ww w . ja va 2s . com*/ } int currCapacity = group.getDesiredCapacity(); int currMinSize = group.getMinSize(); int currMaxSize = group.getMaxSize(); if (increment) { currCapacity += size; if (currMaxSize == currMinSize) { currMinSize = currCapacity; currMaxSize = currCapacity; } else { currMaxSize = Math.max(currMaxSize, currCapacity); } } else { currCapacity = Math.max(currCapacity - size, 0); if (currMaxSize == currMinSize) { currMinSize = currCapacity; currMaxSize = currCapacity; } else { currMinSize = Math.min(currMinSize, currCapacity); } } UpdateAutoScalingGroupRequest updateRequest = new UpdateAutoScalingGroupRequest(); updateRequest.setAutoScalingGroupName(groupName); updateRequest.setDesiredCapacity(currCapacity); updateRequest.setMaxSize(currMaxSize); updateRequest.setMinSize(currMinSize); aasClient.updateAutoScalingGroup(updateRequest); }