Example usage for com.amazonaws.services.autoscaling.model UpdateAutoScalingGroupRequest setAutoScalingGroupName

List of usage examples for com.amazonaws.services.autoscaling.model UpdateAutoScalingGroupRequest setAutoScalingGroupName

Introduction

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

Prototype


public void setAutoScalingGroupName(String autoScalingGroupName) 

Source Link

Document

The name of the Auto Scaling group.

Usage

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);
}