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

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

Introduction

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

Prototype


public void setStackName(String stackName) 

Source Link

Document

The name or the unique stack ID that is associated with the stack.

Usage

From source file:CloudFormation.java

License:Open Source License

public static void main(String[] args) throws Exception {
    /*/* w w  w .  j a v a 2 s.com*/
     * This credentials provider implementation loads your AWS credentials
     * from a properties file at the root of your classpath.
     * Important: Be sure to fill in your AWS access credentials in the
     *            AwsCredentials.properties file before you try to run this
     *            sample.
     * http://aws.amazon.com/security-credentials
     */
    AmazonCloudFormation stackbuilder = new AmazonCloudFormationClient(
            new ClasspathPropertiesFileCredentialsProvider());
    Region usWest2 = Region.getRegion(Regions.US_EAST_1);
    stackbuilder.setRegion(usWest2);

    System.out.println("===========================================");
    System.out.println("Getting Started with AWS CloudFormation");
    System.out.println("===========================================\n");

    String stackName = "CloudFormationSampleStack";
    String logicalResourceName = "SampleNotificationTopic";

    try {
        // Create a stack
        CreateStackRequest createRequest = new CreateStackRequest();
        createRequest.setStackName(stackName);
        createRequest.setTemplateBody(
                convertStreamToString(CloudFormation.class.getResourceAsStream("CloudFormation.template")));
        System.out.println("Creating a stack called " + createRequest.getStackName() + ".");
        stackbuilder.createStack(createRequest);

        // Wait for stack to be created
        // Note that you could use SNS notifications on the CreateStack call to track the progress of the stack creation
        System.out.println("Stack creation completed, the stack " + stackName + " completed with "
                + waitForCompletion(stackbuilder, stackName));

        // Show all the stacks for this account along with the resources for each stack
        for (Stack stack : stackbuilder.describeStacks(new DescribeStacksRequest()).getStacks()) {
            System.out.println(
                    "Stack : " + stack.getStackName() + " [" + stack.getStackStatus().toString() + "]");

            DescribeStackResourcesRequest stackResourceRequest = new DescribeStackResourcesRequest();
            stackResourceRequest.setStackName(stack.getStackName());
            for (StackResource resource : stackbuilder.describeStackResources(stackResourceRequest)
                    .getStackResources()) {
                System.out.format("    %1$-40s %2$-25s %3$s\n", resource.getResourceType(),
                        resource.getLogicalResourceId(), resource.getPhysicalResourceId());
            }
        }

        // Lookup a resource by its logical name
        DescribeStackResourcesRequest logicalNameResourceRequest = new DescribeStackResourcesRequest();
        logicalNameResourceRequest.setStackName(stackName);
        logicalNameResourceRequest.setLogicalResourceId(logicalResourceName);
        System.out.format("Looking up resource name %1$s from stack %2$s\n",
                logicalNameResourceRequest.getLogicalResourceId(), logicalNameResourceRequest.getStackName());
        for (StackResource resource : stackbuilder.describeStackResources(logicalNameResourceRequest)
                .getStackResources()) {
            System.out.format("    %1$-40s %2$-25s %3$s\n", resource.getResourceType(),
                    resource.getLogicalResourceId(), resource.getPhysicalResourceId());
        }

        // Delete the stack
        DeleteStackRequest deleteRequest = new DeleteStackRequest();
        deleteRequest.setStackName(stackName);
        System.out.println("Deleting the stack called " + deleteRequest.getStackName() + ".");
        stackbuilder.deleteStack(deleteRequest);

        // Wait for stack to be deleted
        // Note that you could used SNS notifications on the original CreateStack call to track the progress of the stack deletion
        System.out.println("Stack creation completed, the stack " + stackName + " completed with "
                + waitForCompletion(stackbuilder, stackName));

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS CloudFormation, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS CloudFormation, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

From source file:CloudFormationSample.java

License:Open Source License

public static void main(String[] args) throws Exception {
    /*/* w w w  .j a v a2s  .c  om*/
    * Important: Be sure to fill in your AWS access credentials in the
    *            AwsCredentials.properties file before you try to run this
    *            sample.
    * http://aws.amazon.com/security-credentials
    */
    AmazonCloudFormation stackbuilder = new AmazonCloudFormationClient(new PropertiesCredentials(
            CloudFormationSample.class.getResourceAsStream("AwsCredentials.properties")));

    System.out.println("===========================================");
    System.out.println("Getting Started with AWS CloudFormation");
    System.out.println("===========================================\n");

    String stackName = "CloudFormationSampleStack";
    String logicalResourceName = "SampleNotificationTopic";

    try {
        // Create a stack
        CreateStackRequest createRequest = new CreateStackRequest();
        createRequest.setStackName(stackName);
        createRequest.setTemplateBody(convertStreamToString(
                CloudFormationSample.class.getResourceAsStream("CloudFormationSample.template")));
        System.out.println("Creating a stack called " + createRequest.getStackName() + ".");
        stackbuilder.createStack(createRequest);

        // Wait for stack to be created
        // Note that you could use SNS notifications on the CreateStack call to track the progress of the stack creation
        System.out.println("Stack creation completed, the stack " + stackName + " completed with "
                + waitForCompletion(stackbuilder, stackName));

        // Show all the stacks for this account along with the resources for each stack
        for (Stack stack : stackbuilder.describeStacks(new DescribeStacksRequest()).getStacks()) {
            System.out.println(
                    "Stack : " + stack.getStackName() + " [" + stack.getStackStatus().toString() + "]");

            DescribeStackResourcesRequest stackResourceRequest = new DescribeStackResourcesRequest();
            stackResourceRequest.setStackName(stack.getStackName());
            for (StackResource resource : stackbuilder.describeStackResources(stackResourceRequest)
                    .getStackResources()) {
                System.out.format("    %1$-40s %2$-25s %3$s\n", resource.getResourceType(),
                        resource.getLogicalResourceId(), resource.getPhysicalResourceId());
            }
        }

        // Lookup a resource by its logical name
        DescribeStackResourcesRequest logicalNameResourceRequest = new DescribeStackResourcesRequest();
        logicalNameResourceRequest.setStackName(stackName);
        logicalNameResourceRequest.setLogicalResourceId(logicalResourceName);
        System.out.format("Looking up resource name %1$s from stack %2$s\n",
                logicalNameResourceRequest.getLogicalResourceId(), logicalNameResourceRequest.getStackName());
        for (StackResource resource : stackbuilder.describeStackResources(logicalNameResourceRequest)
                .getStackResources()) {
            System.out.format("    %1$-40s %2$-25s %3$s\n", resource.getResourceType(),
                    resource.getLogicalResourceId(), resource.getPhysicalResourceId());
        }

        // Delete the stack
        DeleteStackRequest deleteRequest = new DeleteStackRequest();
        deleteRequest.setStackName(stackName);
        System.out.println("Deleting the stack called " + deleteRequest.getStackName() + ".");
        stackbuilder.deleteStack(deleteRequest);

        // Wait for stack to be deleted
        // Note that you could used SNS notifications on the original CreateStack call to track the progress of the stack deletion
        System.out.println("Stack creation completed, the stack " + stackName + " completed with "
                + waitForCompletion(stackbuilder, stackName));

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS CloudFormation, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS CloudFormation, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

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 ww. j a  v a  2s.  c om*/
    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

/**
 * Uploads application revision archive to S3 bucket named s3BucketName with
 * the provided key and bundle type./*from w w  w .  j  a  va 2 s  .co m*/
 * <p>
 * For performing this operation target AWSClient must have corresponding S3
 * permissions.
 *
 * @param s3BucketName
 *            valid S3 bucket name
 * @param s3ObjectKey
 *            valid S3 object key
 */
public void initiateCFN(@NotNull String stackName, @NotNull String region, @NotNull String s3BucketName,
        @NotNull String s3ObjectKey, @NotNull String cfnAction, @NotNull String onFailure) {
    try {
        String templateURL;
        Region reg = Region.getRegion(Regions.fromName(region));
        myCloudFormationClient.setRegion(reg);
        templateURL = getTemplateUrl(reg, s3BucketName, s3ObjectKey);
        System.out.println("The template url is " + templateURL);

        if (cfnAction.equalsIgnoreCase("Create")) {
            System.out.println("The CFN action is " + cfnAction);
            myListener.createStackStarted(stackName, region, s3BucketName, s3ObjectKey, cfnAction);
            CreateStackRequest createRequest = new CreateStackRequest();
            createRequest.setStackName(stackName);
            if (!onFailure.equalsIgnoreCase("null"))
                createRequest.setOnFailure(onFailure);
            createRequest.setTemplateURL(templateURL);
            myCloudFormationClient.createStack(createRequest);
            waitForCompletion(myCloudFormationClient, stackName);

        } else if (cfnAction.equalsIgnoreCase("Delete")) {
            myListener.deleteStarted(stackName, region);
            DeleteStackRequest deleteStackRequest = new DeleteStackRequest();
            deleteStackRequest.setStackName(stackName);
            myCloudFormationClient.deleteStack(deleteStackRequest);
            waitForDelete(myCloudFormationClient, stackName);

        } else if (cfnAction.equalsIgnoreCase("Validate")) {
            myListener.validateStarted(stackName);
            ValidateTemplateRequest validatetempRequest = new ValidateTemplateRequest();
            validatetempRequest.setTemplateURL(templateURL);
            myListener.validateFinished(
                    myCloudFormationClient.validateTemplate(validatetempRequest).getParameters().toString());

        } else if (cfnAction.equalsIgnoreCase("Update")) {
            myListener.updateInProgress(stackName);
            UpdateStackRequest updateStackRequest = new UpdateStackRequest();
            updateStackRequest.setStackName(stackName);
            updateStackRequest.setTemplateURL(templateURL);
            myCloudFormationClient.updateStack(updateStackRequest);
            waitForCompletion(myCloudFormationClient, stackName);
        }
    } catch (Throwable t) {
        processFailure(t);
    }
}

From source file:org.terracotta.TerracottaCloudFormationSample.java

License:Open Source License

@org.junit.AfterClass
public static void deleteStack() throws Exception {
    // Delete the stack
    DeleteStackRequest deleteRequest = new DeleteStackRequest();
    deleteRequest.setStackName(stackName);
    System.out.println("Deleting the stack called " + deleteRequest.getStackName() + ".");
    amazonCloudFormationClient.deleteStack(deleteRequest);

    // Wait for stack to be deleted
    // Note that you could used SNS notifications on the original CreateStack call to track the progress of the stack deletion
    System.out.println("Stack creation completed, the stack " + stackName + " completed with "
            + waitForCompletion(amazonCloudFormationClient, stackName));
}