Example usage for com.amazonaws.services.cloudformation.model DescribeStackEventsRequest setStackName

List of usage examples for com.amazonaws.services.cloudformation.model DescribeStackEventsRequest setStackName

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudformation.model DescribeStackEventsRequest setStackName.

Prototype


public void setStackName(String stackName) 

Source Link

Document

The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

  • Running stacks: You can specify either the stack's name or its unique stack ID.

    Usage

    From source file:com.mweagle.tereus.aws.CloudFormation.java

    License:Open Source License

    protected List<StackEvent> getStackEvents(final AmazonCloudFormationAsyncClient awsClient,
            final String stackName, Logger logger) throws Exception {
        List<StackEvent> events = new ArrayList<StackEvent>();
        Optional<String> token = Optional.empty();
    
        final DescribeStackEventsRequest describeRequest = new DescribeStackEventsRequest();
        describeRequest.setStackName(stackName);
        do {/*w  w w  .  j av  a  2  s. c o m*/
            if (token.isPresent()) {
                describeRequest.setNextToken(token.get());
            }
            final Future<DescribeStackEventsResult> stackEvents = awsClient
                    .describeStackEventsAsync(describeRequest);
            DescribeStackEventsResult eventResult = stackEvents.get();
            events.addAll(eventResult.getStackEvents());
            token = Optional.ofNullable(eventResult.getNextToken());
        } while (token.isPresent());
        return events;
    }
    

    From source file:com.mweagle.tereus.aws.CloudFormation.java

    License:Open Source License

    protected Optional<DescribeStacksResult> waitForStackComplete(final AmazonCloudFormationAsyncClient awsClient,
            final String stackName, List<StackEvent> priorEvents, Logger logger) throws Exception {
        Map<String, StackEvent> eventHistory = new HashMap<>();
        for (StackEvent eachEvent : priorEvents) {
            eventHistory.put(eachEvent.getEventId(), eachEvent);
        }//from  w w w  .ja  v  a 2  s  .  c  o m
        Optional<StackEvent> terminationEvent = Optional.empty();
    
        final Predicate<StackEvent> isNewEvent = event -> {
            return !eventHistory.containsKey(event.getEventId());
        };
    
        final Predicate<StackEvent> isTerminalEvent = stackEvent -> {
            return (CloudFormation.TERMINAL_EVENTS.contains(stackEvent.getResourceStatus())
                    && stackEvent.getResourceType().equals("AWS::CloudFormation::Stack"));
        };
    
        // Query for events
        final DescribeStackEventsRequest describeRequest = new DescribeStackEventsRequest();
        describeRequest.setStackName(stackName);
        while (!terminationEvent.isPresent()) {
            logger.debug("Waiting for StackEvents");
            Thread.sleep(20 * 1000);
    
            final List<StackEvent> events = getStackEvents(awsClient, stackName, logger);
    
            // Get all the events we haven't seen, log and mark them
            events.stream().filter(isNewEvent).forEach(item -> {
                logger.info(item.toString());
                eventHistory.put(item.getEventId(), item);
            });
    
            // Find the first terminal event
            terminationEvent = events.stream().filter(isTerminalEvent).findFirst();
        }
    
        // Don't ever delete anything, unless the initial event set length was empty, implying
        // a creation event
        if (priorEvents.size() <= 0 && terminationEvent.get().getResourceStatus().contains("_FAILED")) {
            logger.warn("Stack creation . Deleting stack.");
            final DeleteStackRequest deleteStackRequest = new DeleteStackRequest();
            deleteStackRequest.setStackName(stackName);
            awsClient.deleteStack(deleteStackRequest);
            return Optional.empty();
        } else {
            // Looks good, let's get the final output for the stack...
            return describeStack(awsClient, stackName, logger);
        }
    }
    

    From source file:jetbrains.buildServer.runner.cloudformation.AWSClient.java

    License:Apache License

    public List<String> describeStackEvents(AmazonCloudFormationClient stackbuilder, String stackName,
            String ACTION) {/*from  w ww .j a v a  2s.  c o m*/
        List<String> output = new ArrayList<String>();
        DescribeStackEventsRequest request = new DescribeStackEventsRequest();
        request.setStackName(stackName);
        DescribeStackEventsResult results = stackbuilder.describeStackEvents(request);
        for (StackEvent event : results.getStackEvents()) {
            if (event.getEventId().contains(ACTION)) {
    
                output.add(event.getEventId());
                // myListener.debugLog(event.toString());
            }
        }
        return output;
    }