List of usage examples for com.amazonaws.services.cloudformation.model DescribeStackEventsResult getStackEvents
public java.util.List<StackEvent> getStackEvents()
A list of StackEvents
structures.
From source file:com.carrotgarden.maven.aws.cfn.CarrotCloudForm.java
License:BSD License
private void printStackEvents() { final DescribeStackEventsRequest request = new DescribeStackEventsRequest(); request.withStackName(name);/*ww w .jav a 2s . c o m*/ final DescribeStackEventsResult describeStackEvents = amazonClient.describeStackEvents(request); final List<StackEvent> stackEvents = describeStackEvents.getStackEvents(); Collections.reverse(stackEvents); logger.info("stack events:"); for (final StackEvent event : stackEvents) { final StringBuilder text = new StringBuilder(128); text.append("\n\t"); text.append("time="); text.append(event.getTimestamp()); text.append("\n\t"); text.append("id="); text.append(event.getEventId()); text.append("\n\t"); text.append("type="); text.append(event.getResourceType()); text.append("\n\t"); text.append("status="); text.append(event.getResourceStatus()); text.append("\n\t"); text.append("reason="); text.append(event.getResourceStatusReason()); logger.info("event {}", text); } }
From source file:com.deploymentio.cfnstacker.CloudFormationClient.java
License:Apache License
/** * Gets all non-progress events for stack that were generated after a * certain time. This method will ignore any "throttling" error from AWS and * return empty results./*from ww w . j a va 2 s . c o m*/ * * @param stackId unique ID for the stack * @param startDate only events after this time are considered * @return a list of stack events */ public List<StackEvent> getStackEvents(String stackId, Date startDate, OperationTracker tracker, int checkIntervalSeconds) { ArrayList<StackEvent> events = new ArrayList<StackEvent>(); DescribeStackEventsResult result = null; String nextToken = null; doLoop: do { try { result = client.describeStackEvents(new DescribeStackEventsRequest().withStackName(stackId)); } catch (AmazonServiceException ase) { if ("Throttling".equals(ase.getErrorCode())) { logger.warn("Got a throttling error from AWS while calling describeStackEvents()"); break; } else { throw ase; } } nextToken = result.getNextToken(); for (StackEvent evt : result.getStackEvents()) { // break out if we start seeing events older than our start date if (!evt.getTimestamp().after(startDate)) { if (logger.isTraceEnabled()) { logger.trace(createStackEventLogMessage(evt, startDate, "Saw event older than startdate")); } break doLoop; } // mark that an event was generated if (tracker != null) { tracker.markEventsGenerated(stackId); } // ignore IN_PROGRESS events if (!evt.getResourceStatus().endsWith("_IN_PROGRESS")) { if (logger.isTraceEnabled()) { logger.trace(createStackEventLogMessage(evt, startDate, "Adding event")); } events.add(evt); } else { if (logger.isTraceEnabled()) { logger.trace(createStackEventLogMessage(evt, startDate, "Ignorning event")); } } // start tracking a sub-stack if we come across one if (tracker != null && evt.getResourceType().equals("AWS::CloudFormation::Stack") && !evt.getPhysicalResourceId().equals(stackId)) { tracker.track(this, evt.getLogicalResourceId(), evt.getPhysicalResourceId(), checkIntervalSeconds); } } } while (!StringUtils.isEmpty(nextToken)); // sort the events Collections.sort(events, new Comparator<StackEvent>() { @Override public int compare(StackEvent e1, StackEvent e2) { return e1.getTimestamp().compareTo(e2.getTimestamp()); } }); return events; }
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 . jav 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.nike.cerberus.service.CloudFormationService.java
License:Apache License
/** * Returns the events for a named stack. * * @param stackId Stack ID.//w w w . jav a 2s.c o m * @return Collection of events */ public List<StackEvent> getStackEvents(final String stackId) { final DescribeStackEventsRequest request = new DescribeStackEventsRequest().withStackName(stackId); try { final DescribeStackEventsResult result = cloudFormationClient.describeStackEvents(request); return result.getStackEvents(); } catch (final AmazonServiceException ase) { // Stack doesn't exist, just return with no status if (ase.getStatusCode() != 400) { throw ase; } } return Collections.emptyList(); }
From source file:de.taimos.pipeline.aws.cloudformation.EventPrinter.java
License:Apache License
private void waitAndPrintEvents(String stack, long pollIntervalMillis, BasicFuture<AmazonWebServiceRequest> waitResult) throws ExecutionException { Date startDate = new Date(); String lastEventId = null;/*from ww w . ja va 2s . c o m*/ this.printLine(); this.printStackName(stack); this.printLine(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); if (pollIntervalMillis > 0) { while (!waitResult.isDone()) { try { DescribeStackEventsResult result = this.client .describeStackEvents(new DescribeStackEventsRequest().withStackName(stack)); List<StackEvent> stackEvents = new ArrayList<>(); for (StackEvent event : result.getStackEvents()) { if (event.getEventId().equals(lastEventId) || event.getTimestamp().before(startDate)) { break; } stackEvents.add(event); } if (!stackEvents.isEmpty()) { Collections.reverse(stackEvents); for (StackEvent event : stackEvents) { this.printEvent(sdf, event); this.printLine(); } lastEventId = stackEvents.get(stackEvents.size() - 1).getEventId(); } } catch (AmazonCloudFormationException e) { // suppress and continue } try { Thread.sleep(pollIntervalMillis); } catch (InterruptedException e) { // suppress and continue } } } try { waitResult.get(); } catch (InterruptedException e) { this.listener.getLogger().format("Failed to wait for CFN action to complete: %s", e.getMessage()); } }
From source file:jetbrains.buildServer.runner.cloudformation.AWSClient.java
License:Apache License
public List<String> describeStackEvents(AmazonCloudFormationClient stackbuilder, String stackName, String ACTION) {// w w w.java 2s . com 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; }
From source file:org.xmlsh.aws.gradle.cloudformation.AmazonCloudFormationPluginExtension.java
License:BSD License
private List<StackEvent> describeStackEvents() { DescribeStackEventsResult result = getClient() .describeStackEvents(new DescribeStackEventsRequest().withStackName(getStackName())); List<StackEvent> ev = result.getStackEvents(); return ev;//from w w w . jav a 2 s .com }