Example usage for com.amazonaws.services.applicationautoscaling.model ScalableDimension EcsServiceDesiredCount

List of usage examples for com.amazonaws.services.applicationautoscaling.model ScalableDimension EcsServiceDesiredCount

Introduction

In this page you can find the example usage for com.amazonaws.services.applicationautoscaling.model ScalableDimension EcsServiceDesiredCount.

Prototype

ScalableDimension EcsServiceDesiredCount

To view the source code for com.amazonaws.services.applicationautoscaling.model ScalableDimension EcsServiceDesiredCount.

Click Source Link

Usage

From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.ops.CreateServerGroupAtomicOperation.java

License:Apache License

private String registerAutoScalingGroup(AmazonCredentials credentials, Service service) {

    AWSApplicationAutoScaling autoScalingClient = getAmazonApplicationAutoScalingClient();
    String assumedRoleArn = inferAssumedRoleArn(credentials);

    RegisterScalableTargetRequest request = new RegisterScalableTargetRequest()
            .withServiceNamespace(ServiceNamespace.Ecs)
            .withScalableDimension(ScalableDimension.EcsServiceDesiredCount)
            .withResourceId(//w w  w .j a  v a  2s  . c o m
                    String.format("service/%s/%s", description.getEcsClusterName(), service.getServiceName()))
            .withRoleARN(assumedRoleArn).withMinCapacity(description.getCapacity().getMin())
            .withMaxCapacity(description.getCapacity().getMax());

    updateTaskStatus("Creating Amazon Application Auto Scaling Scalable Target Definition...");
    autoScalingClient.registerScalableTarget(request);
    updateTaskStatus("Done creating Amazon Application Auto Scaling Scalable Target Definition.");

    return request.getResourceId();
}

From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.ops.EnableServiceAtomicOperation.java

License:Apache License

private ScalableTarget getScalableTarget(String cluster) {
    AWSApplicationAutoScaling appASClient = getAmazonApplicationAutoScalingClient();

    List<String> resourceIds = new ArrayList<>();
    resourceIds.add(String.format("service/%s/%s", cluster, description.getServerGroupName()));

    DescribeScalableTargetsRequest request = new DescribeScalableTargetsRequest().withResourceIds(resourceIds)
            .withScalableDimension(ScalableDimension.EcsServiceDesiredCount)
            .withServiceNamespace(ServiceNamespace.Ecs);

    DescribeScalableTargetsResult result = appASClient.describeScalableTargets(request);

    if (result.getScalableTargets().isEmpty()) {
        return null;
    }/*  ww  w . j  ava 2 s  .com*/

    if (result.getScalableTargets().size() == 1) {
        return result.getScalableTargets().get(0);
    }

    throw new Error("Multiple Scalable Targets found");
}

From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.ops.ResizeServiceAtomicOperation.java

License:Apache License

private void resizeAutoScalingGroup(Service service) {
    AWSApplicationAutoScaling autoScalingClient = getAmazonApplicationAutoScalingClient();

    Integer desiredCount = description.getCapacity().getDesired();
    String ecsClusterName = containerInformationService.getClusterName(service.getServiceName(),
            description.getAccount(), description.getRegion());

    RegisterScalableTargetRequest request = new RegisterScalableTargetRequest()
            .withServiceNamespace(ServiceNamespace.Ecs)
            .withScalableDimension(ScalableDimension.EcsServiceDesiredCount)
            .withResourceId(String.format("service/%s/%s", ecsClusterName, service.getServiceName()))
            .withRoleARN(service.getRoleArn()).withMinCapacity(description.getCapacity().getMin())
            .withMaxCapacity(description.getCapacity().getMax());

    updateTaskStatus(String.format("Resizing Scalable Target of %s to %s instances", service.getServiceName(),
            desiredCount));//from w  w  w  . j a  v a 2s  . co m
    autoScalingClient.registerScalableTarget(request);
    updateTaskStatus(String.format("Done resizing Scalable Target of %s to %s instances",
            service.getServiceName(), desiredCount));
}