Example usage for com.amazonaws.services.cloudformation AmazonCloudFormationAsyncClient createStackAsync

List of usage examples for com.amazonaws.services.cloudformation AmazonCloudFormationAsyncClient createStackAsync

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudformation AmazonCloudFormationAsyncClient createStackAsync.

Prototype

@Override
    public java.util.concurrent.Future<CreateStackResult> createStackAsync(CreateStackRequest request) 

Source Link

Usage

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

License:Open Source License

public Optional<DescribeStacksResult> createStack(final CreateStackRequest request, final Region awsRegion,
        Logger logger) {//  w  ww . java  2 s .  c  o m
    DefaultAWSCredentialsProviderChain credentialProviderChain = new DefaultAWSCredentialsProviderChain();
    final AmazonCloudFormationAsyncClient awsClient = new AmazonCloudFormationAsyncClient(
            credentialProviderChain.getCredentials());
    awsClient.setRegion(awsRegion);
    logger.info("Creating stack: {}", request.getStackName());
    Optional<DescribeStacksResult> completionResult = Optional.empty();

    try {
        // There are no prior events for a creation request
        Future<CreateStackResult> createStackRequest = awsClient.createStackAsync(request);
        final CreateStackResult stackResult = createStackRequest.get();
        logger.info("Stack ({}) creation in progress.", stackResult.getStackId());
        completionResult = waitForStackComplete(awsClient, stackResult.getStackId(), Collections.emptyList(),
                logger);
    } catch (Exception ex) {
        logger.error(ex);
    }
    return completionResult;
}