/** * Makes a call to the operation specified by the waiter by taking the corresponding request and returns the * corresponding result * * @param describeStacksRequest * Corresponding request for the operation * @return Corresponding result of the operation */ @Override public DescribeStacksResult apply(DescribeStacksRequest describeStacksRequest) { return client.describeStacks(describeStacksRequest); } }
/** * Makes a call to the operation specified by the waiter by taking the corresponding request and returns the * corresponding result * * @param describeStacksRequest * Corresponding request for the operation * @return Corresponding result of the operation */ @Override public DescribeStacksResult apply(DescribeStacksRequest describeStacksRequest) { return client.describeStacks(describeStacksRequest); } }
public static String getStackOutput(String stackName, String key){ DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest(); describeStacksRequest.withStackName(stackName); DescribeStacksResult describeStacksResult = client.describeStacks(describeStacksRequest); List<Output> outputs = describeStacksResult.getStacks().get(0).getOutputs(); Optional<Output> output = outputs.stream() .filter(index -> index.getOutputKey().equals(key)) .findFirst(); return output.map(Output::getOutputValue) .orElseThrow(() -> new RuntimeException("Did not find stack output.")); } }
private void waitForStackCreationToComplete() throws InterruptedException { DescribeStacksRequest check = new DescribeStacksRequest().withStackName(getStackName()); boolean completed = false; while(!completed) { List<Stack> results = client.describeStacks(check).getStacks(); if(results.isEmpty()){ throw new RuntimeException("Stack Does Not Exist."); } else { if(results.stream().anyMatch(this::checkIfStackCreationFailed)) { throw new RuntimeException("Stack Creation or Update Failed"); } else if(results.stream().anyMatch(this::checkIfStackCreationSucceeded)) { System.out.println("Stack Creation Complete"); completed = true; } } if(!completed) Thread.sleep(5000); } }
protected Optional<Stack> getStack() { final List<Stack> stacks; try { stacks = cloudFormation.describeStacks(new DescribeStacksRequest().withStackName(stackName)).getStacks(); } catch (final AmazonCloudFormationException e) { if (e.getStatusCode() == 400) { return Optional.empty(); } throw e; } if (stacks.isEmpty()) { return Optional.empty(); } if (stacks.size() > 1) { throw new DeploymentException("Found more than one stack for name '" + stackName + "'"); } final Stack stack = stacks.get(0); return Optional.of(stack); } }
public Map<String, String> describeOutputs() { DescribeStacksResult result = this.client.describeStacks(new DescribeStacksRequest().withStackName(this.stack)); Stack cfnStack = result.getStacks().get(0); Map<String, String> map = new HashMap<>(); for (Output output : cfnStack.getOutputs()) { map.put(output.getOutputKey(), output.getOutputValue()); } return map; }
private boolean isInReview() { if (this.exists()) { DescribeStacksResult result = this.client.describeStacks(new DescribeStacksRequest().withStackName(this.stack)); return !result.getStacks().isEmpty() && result.getStacks().get(0).getStackStatus().equals("REVIEW_IN_PROGRESS"); } return false; } }
public boolean exists() { try { DescribeStacksResult result = this.client.describeStacks(new DescribeStacksRequest().withStackName(this.stack)); return !result.getStacks().isEmpty(); } catch (AmazonCloudFormationException e) { if ("AccessDenied".equals(e.getErrorCode())) { this.listener.getLogger().format("Got error from describeStacks: %s %n", e.getErrorMessage()); throw e; } else if ("ValidationError".equals(e.getErrorCode()) && e.getErrorMessage().contains("does not exist")) { return false; } else { throw e; } } }
public static List<Stack> describeCloudFormationStack(final String stackName, final AmazonCloudFormation cloudFormationClient) { DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest() .withStackName(stackName); return cloudFormationClient.describeStacks(describeStacksRequest).getStacks(); }
private List<Stack> describeStack(String stackName) { final DescribeStacksResult result = cloudFormation .describeStacks(new DescribeStacksRequest().withStackName(stackName)); return result.getStacks(); }
private Properties getCloudformationOutputs(AmazonCloudFormation cloudFormation, CreateStackResult stack) { DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest(); describeStacksRequest.setStackName(stack.getStackId()); final DescribeStacksResult describeStacksResult = cloudFormation .describeStacks(describeStacksRequest); Properties outputProps = new Properties(); for (Stack st : describeStacksResult.getStacks()) { StringBuilder outputsStr = new StringBuilder("Infrastructure/Deployment outputs {\n"); for (Output output : st.getOutputs()) { outputProps.setProperty(output.getOutputKey(), output.getOutputValue()); outputsStr.append(output.getOutputKey()).append("=").append(output.getOutputValue()).append("\n"); } //Log cfn outputs logger.info(outputsStr.toString() + "\n}"); } return outputProps; }
@Override protected Map<String, String> createInstance() throws Exception { LinkedHashMap<String, String> userTags = new LinkedHashMap<>(); DescribeStacksResult stacksResult = this.amazonCloudFormation.describeStacks(new DescribeStacksRequest().withStackName(this.stackNameProvider.getStackName())); for (Stack stack : stacksResult.getStacks()) { for (Tag tag : stack.getTags()) { userTags.put(tag.getKey(), tag.getValue()); } } return userTags; } }
@Override protected Map<String, String> createInstance() throws Exception { LinkedHashMap<String, String> userTags = new LinkedHashMap<>(); DescribeStacksResult stacksResult = this.amazonCloudFormation.describeStacks(new DescribeStacksRequest().withStackName(this.stackNameProvider.getStackName())); for (Stack stack : stacksResult.getStacks()) { for (Tag tag : stack.getTags()) { userTags.put(tag.getKey(), tag.getValue()); } } return userTags; } }
List<Stack> stacks = cloudformation.describeStacks().getStacks();
@TaskAction public void createChangeSet() throws InterruptedException, IOException { // to enable conventionMappings feature String stackName = getStackName(); List<String> stableStatuses = getStableStatuses(); if (stackName == null) { throw new GradleException("stackName is not specified"); } AmazonCloudFormationPluginExtension ext = getProject().getExtensions().getByType(AmazonCloudFormationPluginExtension.class); AmazonCloudFormation cfn = ext.getClient(); DescribeStacksResult describeStackResult = cfn.describeStacks(new DescribeStacksRequest().withStackName(stackName)); Stack stack = describeStackResult.getStacks().get(0); if (stableStatuses.contains(stack.getStackStatus())) { createChangeSet(cfn); } else { throw new GradleException("invalid status for create change set: " + stack.getStackStatus()); } }
private boolean waitForStackToBeDeleted() { int retries = 1; Stack stack = null; while (true) { try { stack = getStack(amazonClient.describeStacks()); if (stack == null) { return true; } StackStatus stackStatus = getStackStatus(stack.getStackStatus()); if (StackStatus.DELETE_COMPLETE == stackStatus) { return true; } if (StackStatus.DELETE_FAILED == stackStatus) { return false; } logger.println("Stack status " + stackStatus + "."); } catch (AmazonServiceException ase) { if (!RetryUtils.isThrottlingException(ase)) { throw ase; } } sleep(stack, retries); retries++; } }
DescribeStacksResult describeResult ; do{ describeResult = cloudFormClient.describeStacks(new DescribeStacksRequest().withNextToken(nextToken)); stacksTemp.addAll(describeResult.getStacks()); nextToken = describeResult.getNextToken();
cfn.describeStacks(new DescribeStacksRequest().withStackName(stackName)); Stack stack = describeStackResult.getStacks().get(0);
subTime = System.currentTimeMillis(); try { stack = getStack(amazonClient.describeStacks(describeStacksRequest)); status = getStackStatus(stack.getStackStatus()); logger.println("Stack status " + status + ". ( " + (subTime - lastTime) + "ms since previous check)");
cfn.describeStacks(new DescribeStacksRequest().withStackName(stackName)); Stack stack = describeStackResult.getStacks().get(0); if (stack.getStackStatus().equals("DELETE_COMPLETE")) {