List of usage examples for com.amazonaws.services.cloudformation.model Stack getStackId
public String getStackId()
Unique identifier of the stack.
From source file:com.deploymentio.cfnstacker.Stacker.java
License:Apache License
public boolean run(StackerOptions options) throws Exception { // fix the logging level first new LogbackLevelChanger(options); // initializing other helper objects final StackConfig stackConfig = options.getStackConfig(); final CloudFormationClient client = new CloudFormationClient(stackConfig); final JsonNodeHelper jsonNodeHelper = new JsonNodeHelper(stackConfig); final OperationTracker tracker = new OperationTracker(); // see what state the stack is in final Stack stack = client.findStack(stackConfig.getName()); final Status status = Status.valueOf(stack); // perform the operation we want Action action = options.getDesiredAction(); if (action.isAllowed(status)) { logger.debug("About to take action: Action=" + action.name() + " Status=" + status.name()); switch (action) { case CREATE: return new Operation(client, jsonNodeHelper, tracker) { @Override// w w w. jav a2s . c o m protected String execute(JsonNode templateBody) throws Exception { return client.createStack(templateBody, true); } }.validateAndExecuteStack(stackConfig, "create", false); case CREATE_DRY_RUN: return new Operation(client, jsonNodeHelper, tracker) { @Override protected String execute(JsonNode templateBody) throws Exception { return client.createStack(templateBody, true); } }.validateAndExecuteStack(stackConfig, "create", true); case DELETE: return new Operation(client, jsonNodeHelper, tracker) { @Override protected String execute(JsonNode templateBody) throws Exception { client.deleteStack(); return stack.getStackId(); } }.validateAndExecuteStack(stackConfig, "delete", false); case UPDATE: return new Operation(client, jsonNodeHelper, tracker) { @Override protected String execute(JsonNode templateBody) throws Exception { return client.updateStack(templateBody); } }.validateAndExecuteStack(stackConfig, "update", false); case UPDATE_DRY_RUN: return new Operation(client, jsonNodeHelper, tracker) { @Override protected String execute(JsonNode templateBody) throws Exception { return client.updateStack(templateBody); } }.validateAndExecuteStack(stackConfig, "update", true); } } else { logger.error("This action is not allowed: Action=" + action.name() + " Status=" + status.name()); } return false; }
From source file:com.haskins.cloudtrailviewer.dialog.resourcedetail.detailpanels.CfStackDetail.java
License:Open Source License
private void buildUI(DescribeStacksResult detail) { JTabbedPane tabs = new JTabbedPane(); tabs.add("Stack", primaryScrollPane); final JTable outputCheckTable = new JTable(outputTableModel); JScrollPane healthCheckScrollPane = new JScrollPane(outputCheckTable); tabs.add("Output", healthCheckScrollPane); final JTable paramsTable = new JTable(parametersTableModel); JScrollPane listenersScrollPane = new JScrollPane(paramsTable); tabs.add("Parameters", listenersScrollPane); this.add(tabs, BorderLayout.CENTER); if (!detail.getStacks().isEmpty()) { List<Stack> stacks = detail.getStacks(); Stack stack = stacks.get(0); if (stack.getCreationTime() != null) { primaryTableModel.addRow(new Object[] { "Created", getDateString(stack.getCreationTime()) }); }// w w w.ja v a2 s. c o m if (stack.getDescription() != null) { primaryTableModel.addRow(new Object[] { "Description", stack.getDescription() }); } if (stack.getDisableRollback() != null) { primaryTableModel.addRow(new Object[] { "Disable Rollback", stack.getDisableRollback() }); } if (stack.getLastUpdatedTime() != null) { primaryTableModel .addRow(new Object[] { "Last Updated", getDateString(stack.getLastUpdatedTime()) }); } if (stack.getNotificationARNs() != null) { primaryTableModel.addRow(new Object[] { "Notification Arns", stack.getNotificationARNs() }); } if (stack.getStackId() != null) { primaryTableModel.addRow(new Object[] { "Stacks Id", stack.getStackId() }); } if (stack.getStackName() != null) { primaryTableModel.addRow(new Object[] { "Stacks Name", stack.getStackName() }); } if (stack.getStackStatus() != null) { primaryTableModel.addRow(new Object[] { "Stacks Status", stack.getStackStatus() }); } if (stack.getStackStatusReason() != null) { primaryTableModel.addRow(new Object[] { "Stacks Status Reason", stack.getStackStatusReason() }); } if (stack.getTimeoutInMinutes() != null) { primaryTableModel.addRow(new Object[] { "Timeout (minutes)", stack.getTimeoutInMinutes() }); } /** * Tags */ List<Tag> tags = stack.getTags(); for (Tag tag : tags) { tagsTableModel.addRow(new Object[] { tag.getKey(), tag.getValue() }); } /** * Output */ outputTableModel.addColumn("Description"); outputTableModel.addColumn("Key"); outputTableModel.addColumn("Value"); List<Output> outputs = stack.getOutputs(); for (Output output : outputs) { tagsTableModel.addRow( new Object[] { output.getDescription(), output.getOutputKey(), output.getOutputValue() }); } /** * Parameters */ parametersTableModel.addColumn("Key"); parametersTableModel.addColumn("Value"); parametersTableModel.addColumn("User Previous Value"); List<Parameter> parameters = stack.getParameters(); for (Parameter parameter : parameters) { tagsTableModel.addRow(new Object[] { parameter.getParameterKey(), parameter.getParameterValue(), parameter.getUsePreviousValue() }); } } }
From source file:com.netflix.spinnaker.clouddriver.aws.provider.agent.AmazonCloudFormationCachingAgent.java
License:Apache License
@Override public CacheResult loadData(ProviderCache providerCache) { log.info("Describing items in {}", getAgentType()); AmazonCloudFormation cloudformation = amazonClientProvider.getAmazonCloudFormation(account, region); Collection<CacheData> stackCacheData = new ArrayList<>(); try {/*from w w w.j ava 2 s . com*/ List<Stack> stacks = cloudformation.describeStacks().getStacks(); for (Stack stack : stacks) { Map<String, Object> stackAttributes = new HashMap<>(); stackAttributes.put("stackId", stack.getStackId()); stackAttributes.put("tags", stack.getTags().stream().collect(Collectors.toMap(Tag::getKey, Tag::getValue))); stackAttributes.put("outputs", stack.getOutputs().stream() .collect(Collectors.toMap(Output::getOutputKey, Output::getOutputValue))); stackAttributes.put("stackName", stack.getStackName()); stackAttributes.put("region", region); stackAttributes.put("accountName", account.getName()); stackAttributes.put("accountId", account.getAccountId()); stackAttributes.put("stackStatus", stack.getStackStatus()); stackAttributes.put("creationTime", stack.getCreationTime()); if (stack.getStackStatus().equals("ROLLBACK_COMPLETE")) { DescribeStackEventsRequest request = new DescribeStackEventsRequest() .withStackName(stack.getStackName()); cloudformation.describeStackEvents(request).getStackEvents().stream() .filter(e -> e.getResourceStatus().equals("CREATE_FAILED")).findFirst() .map(StackEvent::getResourceStatusReason) .map(statusReason -> stackAttributes.put("stackStatusReason", statusReason)); } String stackCacheKey = Keys.getCloudFormationKey(stack.getStackId(), region, account.getName()); Map<String, Collection<String>> relationships = new HashMap<>(); relationships.put(STACKS.getNs(), Collections.singletonList(stackCacheKey)); stackCacheData.add(new DefaultCacheData(stackCacheKey, stackAttributes, relationships)); } } catch (AmazonCloudFormationException e) { log.error("Error retrieving stacks", e); } log.info("Caching {} items in {}", stackCacheData.size(), getAgentType()); HashMap<String, Collection<CacheData>> result = new HashMap<>(); result.put(STACKS.getNs(), stackCacheData); return new DefaultCacheResult(result); }
From source file:jetbrains.buildServer.runner.cloudformation.AWSClient.java
License:Apache License
public void waitForCompletion(AmazonCloudFormationClient stackbuilder, String stackName) throws InterruptedException { DescribeStacksRequest wait = new DescribeStacksRequest(); wait.setStackName(stackName);//from ww w.j a v a 2s. c om Boolean completed = false; String action = "CREATE"; String stackStatus = "Waiting"; String stackReason = ""; String stackId = ""; List<String> events; int len, first, last; first = 0; myListener.waitForStack(stackStatus); while (!completed) { List<Stack> stacks = stackbuilder.describeStacks(wait).getStacks(); if (stacks.isEmpty()) { completed = true; stackStatus = "NO_SUCH_STACK"; stackReason = "Stack has been deleted"; } else { for (Stack stack : stacks) { if (stack.getStackStatus().equals(StackStatus.CREATE_COMPLETE.toString()) || stack.getStackStatus().equals(StackStatus.CREATE_FAILED.toString()) || stack.getStackStatus().equals(StackStatus.ROLLBACK_FAILED.toString()) || stack.getStackStatus().equals(StackStatus.DELETE_FAILED.toString())) { completed = true; stackStatus = stack.getStackStatus(); if (stack.getStackStatus().equals(StackStatus.CREATE_COMPLETE.toString())) { stackReason = "Success"; } else { stackReason = "Failure"; } stackId = stack.getStackId(); } } } //sleep for 10 seconds Thread.sleep(10000); } if (completed) { events = describeStackEvents(stackbuilder, stackName, action); for (String event : events) { myListener.waitForStack(event.toString()); } events.clear(); } myListener.waitForStack(stackStatus); if (stackReason.contains("Failure")) { myListener.createStackFailed(stackName, stackStatus, stackReason); } else { myListener.createStackFinished(stackName, stackStatus); } }
From source file:org.xmlsh.aws.cfnDescribeStacks.java
License:BSD License
private void writeStack(Stack stack) throws XMLStreamException { startElement("stack"); attribute("creation-time", stack.getCreationTime()); attribute("description", stack.getDescription()); attribute("disable-rollback", stack.getDisableRollback()); attribute("last-update-time", stack.getLastUpdatedTime()); attribute("stack-id", stack.getStackId()); attribute("stack-name", stack.getStackName()); attribute("stack-status", stack.getStackStatus()); attribute("stack-status-reason", stack.getStackStatusReason()); attribute("timeout", stack.getTimeoutInMinutes()); writeParameters(stack.getParameters()); writeOutputs(stack.getOutputs());//from w ww. j av a 2 s.co m writeCapibilities(stack.getCapabilities()); writeNotifications(stack.getNotificationARNs()); writeTags(stack.getTags()); }