List of usage examples for com.amazonaws.services.cloudformation.model CreateStackRequest setStackName
public void setStackName(String stackName)
The name that is associated with the stack.
From source file:CloudFormation.java
License:Open Source License
public static void main(String[] args) throws Exception { /*/* www. j a v a 2 s . co m*/ * 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 { /*/*from w w w .j a v a 2 s . co m*/ * 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.kinesisboard.amazonaws.utils.CloudFormationUtils.java
License:Open Source License
public static void createStackIfNotExists(AmazonCloudFormation client, KinesisConnectorConfiguration config) { String stackName = config.ELASTICSEARCH_CLOUDFORMATION_STACK_NAME; if (stackExists(client, stackName)) { StackStatus status = stackStatus(client, stackName); switch (status) { case CREATE_COMPLETE: case UPDATE_COMPLETE: LOG.info("Stack " + stackName + " already exists."); return; case CREATE_IN_PROGRESS: case UPDATE_IN_PROGRESS: case UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: LOG.info("Stack " + stackName + " exists with status: " + status + ". Waiting for completion."); break; default:/*from w w w .j a v a2 s . c o m*/ throw new IllegalStateException( "Stack " + stackName + " exists but has an invalid status: " + status); } } else { CreateStackRequest createStackRequest = new CreateStackRequest(); createStackRequest.setStackName(stackName); String templateBody = null; try { templateBody = loadTemplate(config.ELASTICSEARCH_CLOUDFORMATION_TEMPLATE_URL); } catch (IOException ioe) { LOG.error("Error reading template", ioe); throw new RuntimeException( "Could not load template at location: " + config.ELASTICSEARCH_CLOUDFORMATION_TEMPLATE_URL); } createStackRequest.setTemplateBody(templateBody); List<Parameter> parameters = new ArrayList<Parameter>(); parameters.add(new Parameter().withParameterKey("KeyName") .withParameterValue(config.ELASTICSEARCH_CLOUDFORMATION_KEY_PAIR_NAME)); parameters.add(new Parameter().withParameterKey("InstanceType") .withParameterValue(config.ELASTICSEARCH_CLOUDFORMATION_CLUSTER_INSTANCE_TYPE)); parameters.add(new Parameter().withParameterKey("SSHLocation") .withParameterValue(config.ELASTICSEARCH_CLOUDFORMATION_SSH_LOCATION)); parameters.add(new Parameter().withParameterKey("ClusterSize") .withParameterValue(config.ELASTICSEARCH_CLOUDFORMATION_CLUSTER_SIZE)); parameters.add(new Parameter().withParameterKey("ElasticsearchVersion") .withParameterValue(config.ELASTICSEARCH_VERSION_NUMBER)); createStackRequest.setParameters(parameters); List<String> capabilities = new ArrayList<String>(); capabilities.add("CAPABILITY_IAM"); createStackRequest.setCapabilities(capabilities); client.createStack(createStackRequest); LOG.info("Stack " + stackName + " is creating"); } // now wait for good status while (true) { try { Thread.sleep(1000 * 10); } catch (Exception e) { } StackStatus status = stackStatus(client, stackName); switch (status) { case CREATE_COMPLETE: case UPDATE_COMPLETE: return; case CREATE_IN_PROGRESS: case UPDATE_IN_PROGRESS: case UPDATE_COMPLETE_CLEANUP_IN_PROGRESS: break; default: throw new IllegalStateException("Stack " + stackName + " failed to create with status: " + status); } } }
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./*w ww . j av a2 s . c o 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.BeforeClass public static void createStack() throws Exception { /*//w w w .ja va 2s. c o m * 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 */ amazonCloudFormationClient = new AmazonCloudFormationClient(new PropertiesCredentials( TerracottaCloudFormationSample.class.getResourceAsStream("/AwsCredentials.properties"))); System.out.println("================================"); System.out.println("Terracotta CloudFormation Sample"); System.out.println("================================\n"); try { // Create a stack CreateStackRequest createRequest = new CreateStackRequest(); createRequest.setStackName(stackName); createRequest.setTemplateBody(convertStreamToString( TerracottaCloudFormationSample.class.getResourceAsStream("/TerracottaServerArray.template"))); Parameter parameter = new Parameter(); parameter.setParameterKey("KeyName"); parameter.setParameterValue(keyChainName); List parameters = new ArrayList(); parameters.add(parameter); createRequest.setParameters(parameters); System.out.println("Creating a stack called " + createRequest.getStackName() + "."); amazonCloudFormationClient.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(amazonCloudFormationClient, stackName)); // Show all the stacks for this account along with the resources for each stack for (Stack stack : amazonCloudFormationClient.describeStacks(new DescribeStacksRequest()).getStacks()) { System.out.println( "Stack : " + stack.getStackName() + " [" + stack.getStackStatus().toString() + "]"); DescribeStackResourcesRequest stackResourceRequest = new DescribeStackResourcesRequest(); stackResourceRequest.setStackName(stack.getStackName()); for (StackResource resource : amazonCloudFormationClient .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 : amazonCloudFormationClient .describeStackResources(logicalNameResourceRequest).getStackResources()) { System.out.format(" %1$-40s %2$-25s %3$s\n", resource.getResourceType(), resource.getLogicalResourceId(), resource.getPhysicalResourceId()); } //deleteStack } 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:org.xmlsh.aws.cfnCreateStack.java
License:BSD License
private int createStack(Options opts) throws IOException, XMLStreamException, SaxonApiException, CoreException { OutputPort stdout = getStdout();/*from w w w .ja v a 2 s . c o m*/ mWriter = new SafeXMLStreamWriter(stdout.asXMLStreamWriter(getSerializeOpts())); startDocument(); startElement(getName()); CreateStackRequest request = new CreateStackRequest(); // "capability:+,disable-rollback,notification-arn:+,name:,template:,timeout:,tag:+"); if (opts.hasOpt("capability")) request.setCapabilities(Util.toStringList(opts.getOptValues("capability"))); String onFail = opts.getOptString("on-failure", null); if (onFail != null) request.setOnFailure(OnFailure.fromValue(onFail)); else request.setDisableRollback(opts.getOptFlag("disable-rollback", false)); if (opts.hasOpt("notification-arn")) request.setNotificationARNs(Util.toStringList(opts.getOptValues("notification-arn"))); request.setStackName(opts.getOptStringRequired("name")); if (opts.hasOpt("template-file")) request.setTemplateBody(Util.readString(mShell.getFile(opts.getOptValue("template-file")), getSerializeOpts().getInput_text_encoding())); else request.setTemplateURL(opts.getOptStringRequired("template-url")); if (opts.hasOpt("timeout")) request.setTimeoutInMinutes((int) opts.getOptLong("timeout", 10)); if (opts.hasOpt("tag")) request.setTags(getTags(opts.getOptValues("tag"))); request.setParameters(getParameters(opts)); traceCall("createStack"); CreateStackResult result = getAWSClient().createStack(request); writeStackResult(result, request.getStackName()); endElement(); endDocument(); closeWriter(); stdout.writeSequenceTerminator(getSerializeOpts()); return 0; }