List of usage examples for com.amazonaws.services.applicationautoscaling AWSApplicationAutoScaling describeScalableTargets
DescribeScalableTargetsResult describeScalableTargets( DescribeScalableTargetsRequest describeScalableTargetsRequest);
Gets information about the scalable targets in the specified namespace.
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; }/*from ww w .j a va2 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.provider.agent.ScalableTargetsCachingAgent.java
License:Apache License
Set<ScalableTarget> fetchScalableTargets(AWSApplicationAutoScaling autoScalingClient) { Set<ScalableTarget> scalableTargets = new HashSet<>(); String nextToken = null;//from w ww . j a va2s. c o m do { DescribeScalableTargetsRequest request = new DescribeScalableTargetsRequest() .withServiceNamespace(ServiceNamespace.Ecs); if (nextToken != null) { request.setNextToken(nextToken); } DescribeScalableTargetsResult result = autoScalingClient.describeScalableTargets(request); scalableTargets.addAll(result.getScalableTargets()); nextToken = result.getNextToken(); } while (nextToken != null && nextToken.length() != 0); return scalableTargets; }
From source file:com.netflix.spinnaker.clouddriver.ecs.services.EcsCloudMetricService.java
License:Apache License
private void deregisterScalableTargets(Set<String> resources, String account, String region) { AmazonCredentials credentials = (AmazonCredentials) accountCredentialsProvider.getCredentials(account); AWSApplicationAutoScaling autoScaling = amazonClientProvider.getAmazonApplicationAutoScaling(account, credentials.getCredentialsProvider(), region); Map<String, Set<String>> resourceMap = new HashMap<>(); for (String resource : resources) { String namespace = StringUtils.substringBefore(resource, "/"); String service = StringUtils.substringAfter(resource, "/"); if (resourceMap.containsKey(namespace)) { resourceMap.get(namespace).add(service); } else {//from w ww . j a va 2 s . co m Set<String> serviceSet = new HashSet<>(); serviceSet.add(service); resourceMap.put(namespace, serviceSet); } } Set<DeregisterScalableTargetRequest> deregisterRequests = new HashSet<>(); for (String namespace : resourceMap.keySet()) { String nextToken = null; do { DescribeScalableTargetsRequest request = new DescribeScalableTargetsRequest() .withServiceNamespace(namespace).withResourceIds(resourceMap.get(namespace)); if (nextToken != null) { request.setNextToken(nextToken); } DescribeScalableTargetsResult result = autoScaling.describeScalableTargets(request); deregisterRequests.addAll(result.getScalableTargets().stream() .map(scalableTarget -> new DeregisterScalableTargetRequest() .withResourceId(scalableTarget.getResourceId()) .withScalableDimension(scalableTarget.getScalableDimension()) .withServiceNamespace(scalableTarget.getServiceNamespace())) .collect(Collectors.toSet())); nextToken = result.getNextToken(); } while (nextToken != null && nextToken.length() != 0); } for (DeregisterScalableTargetRequest request : deregisterRequests) { autoScaling.deregisterScalableTarget(request); } }