com.amazonaws.services.autoscaling.waiters.GroupInService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-autoscaling Show documentation
Show all versions of aws-java-sdk-autoscaling Show documentation
The AWS Java SDK for Auto Scaling module holds the client classes that are used for communicating with Auto Scaling Service
/*
* Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not
* use this file except in compliance with the License. A copy of the License is
* located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.autoscaling.waiters;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.waiters.WaiterAcceptor;
import com.amazonaws.waiters.WaiterState;
import com.amazonaws.waiters.AcceptorPathMatcher;
import com.amazonaws.services.autoscaling.model.*;
import com.fasterxml.jackson.databind.JsonNode;
import com.amazonaws.jmespath.*;
import java.io.IOException;
@SdkInternalApi
class GroupInService {
static class IsFalseMatcher extends
WaiterAcceptor {
private static final JsonNode expectedResult;
static {
try {
expectedResult = ObjectMapperSingleton.getObjectMapper()
.readTree("false");
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
private static final JmesPathExpression ast = new JmesPathContainsFunction(
new JmesPathProjection(
new JmesPathFlatten(
new JmesPathProjection(
new JmesPathFlatten(new JmesPathField(
"AutoScalingGroups")),
new JmesPathMultiSelectList(
new OpGreaterThanOrEqualTo(
new JmesPathLengthFunction(
new JmesPathFilter(
new JmesPathField(
"Instances"),
new JmesPathIdentity(),
new OpEquals(
new JmesPathField(
"LifecycleState"),
new JmesPathLiteral(
"\"InService\"")))),
new JmesPathField(
"MinSize"))))),
new JmesPathIdentity()), new JmesPathLiteral("false"));
/**
* Takes the result and determines whether the state of the resource
* matches the expected state. To determine the current state of the
* resource, JmesPath expression is evaluated and compared against the
* expected result.
*
* @param result
* Corresponding result of the operation
* @return True if current state of the resource matches the expected
* state, False otherwise
*/
@Override
public boolean matches(DescribeAutoScalingGroupsResult result) {
JsonNode queryNode = ObjectMapperSingleton.getObjectMapper()
.valueToTree(result);
JsonNode finalResult = ast.accept(new JmesPathEvaluationVisitor(),
queryNode);
return AcceptorPathMatcher.path(expectedResult, finalResult);
}
/**
* Represents the current waiter state in the case where resource state
* matches the expected state
*
* @return Corresponding state of the waiter
*/
@Override
public WaiterState getState() {
return WaiterState.SUCCESS;
}
}
static class IsTrueMatcher extends
WaiterAcceptor {
private static final JsonNode expectedResult;
static {
try {
expectedResult = ObjectMapperSingleton.getObjectMapper()
.readTree("true");
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
private static final JmesPathExpression ast = new JmesPathContainsFunction(
new JmesPathProjection(
new JmesPathFlatten(
new JmesPathProjection(
new JmesPathFlatten(new JmesPathField(
"AutoScalingGroups")),
new JmesPathMultiSelectList(
new OpGreaterThanOrEqualTo(
new JmesPathLengthFunction(
new JmesPathFilter(
new JmesPathField(
"Instances"),
new JmesPathIdentity(),
new OpEquals(
new JmesPathField(
"LifecycleState"),
new JmesPathLiteral(
"\"InService\"")))),
new JmesPathField(
"MinSize"))))),
new JmesPathIdentity()), new JmesPathLiteral("false"));
/**
* Takes the result and determines whether the state of the resource
* matches the expected state. To determine the current state of the
* resource, JmesPath expression is evaluated and compared against the
* expected result.
*
* @param result
* Corresponding result of the operation
* @return True if current state of the resource matches the expected
* state, False otherwise
*/
@Override
public boolean matches(DescribeAutoScalingGroupsResult result) {
JsonNode queryNode = ObjectMapperSingleton.getObjectMapper()
.valueToTree(result);
JsonNode finalResult = ast.accept(new JmesPathEvaluationVisitor(),
queryNode);
return AcceptorPathMatcher.path(expectedResult, finalResult);
}
/**
* Represents the current waiter state in the case where resource state
* matches the expected state
*
* @return Corresponding state of the waiter
*/
@Override
public WaiterState getState() {
return WaiterState.RETRY;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy