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