List of usage examples for com.amazonaws.services.cloudformation AmazonCloudFormationClient setRegion
@Deprecated
void setRegion(Region region);
From source file:com.mweagle.tereus.commands.CreateCommand.java
License:Open Source License
protected void createStack(Optional<String> stackName, TereusInput tereusInput, JsonElement templateData, boolean logTemplate) throws UnsupportedEncodingException { if (tereusInput.dryRun) { tereusInput.logger.info("Dry run requested (-n/--noop). Stack creation bypassed."); if (logTemplate) { final String formattedTemplate = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping() .create().toJson(templateData); tereusInput.logger.info("Stack Template:\n {}", formattedTemplate); }//from w w w . j a v a2s .co m } else { final String bucketName = tereusInput.params.get(CONSTANTS.PARAMETER_NAMES.S3_BUCKET_NAME).toString(); // Upload the template final String templateContent = new GsonBuilder().create().toJson(templateData); final byte[] templateBytes = templateContent.getBytes("UTF-8"); final InputStream is = new ByteArrayInputStream(templateBytes); final String templateDigest = DigestUtils.sha256Hex(templateBytes); final String keyName = String.format("%s-tereus.cf.template", templateDigest); try (S3Resource resource = new S3Resource(bucketName, keyName, is, Optional.of(Long.valueOf(templateBytes.length)))) { resource.upload(); final EstimateTemplateCostRequest costRequest = new EstimateTemplateCostRequest(); costRequest.setParameters(toParameterList(tereusInput.params)); costRequest.setTemplateURL(resource.getResourceURL().get()); final AmazonCloudFormationClient awsClient = new AmazonCloudFormationClient( tereusInput.awsCredentials); awsClient.setRegion(tereusInput.awsRegion); final EstimateTemplateCostResult costResult = awsClient.estimateTemplateCost(costRequest); tereusInput.logger.info("Cost Estimator: {}", costResult.getUrl()); // Go ahead and create the stack. final String defaultTemplateName = String.format("Tereus-%s", System.currentTimeMillis()); final CreateStackRequest request = new CreateStackRequest() .withStackName(stackName.orElse(defaultTemplateName)) .withTemplateURL(resource.getResourceURL().get()) .withParameters(toParameterList(tereusInput.params)).withTags(toTagList(tereusInput.tags)) .withCapabilities("CAPABILITY_IAM"); tereusInput.logger.debug("Creating stack: {}", stackName); tereusInput.logger.debug("Stack params: {}", request.getParameters()); tereusInput.logger.debug("Stack tags: {}", request.getTags()); final Optional<DescribeStacksResult> result = new CloudFormation().createStack(request, tereusInput.awsRegion, tereusInput.logger); if (result.isPresent()) { tereusInput.logger.info("Stack successfully created"); tereusInput.logger.info(result.get().toString()); resource.setReleased(true); } } } }
From source file:com.mweagle.tereus.commands.CreateCommand.java
License:Open Source License
protected void validateTemplate(TereusInput tereusInput, String parameterizedTemplate) throws UnsupportedEncodingException { if (tereusInput.dryRun) { tereusInput.logger.info("Dry run requested (-n/--noop). Stack validation bypassed."); } else {//from ww w .j a v a 2 s . c om tereusInput.logger.info("Validating template with AWS"); final String bucketName = tereusInput.params.get(CONSTANTS.PARAMETER_NAMES.S3_BUCKET_NAME).toString(); final byte[] templateBytes = parameterizedTemplate.getBytes("UTF-8"); final InputStream is = new ByteArrayInputStream(templateBytes); final String templateDigest = DigestUtils.sha256Hex(templateBytes); final String keyName = String.format("%s-tereus-pre.cf.template", templateDigest); try (S3Resource resource = new S3Resource(bucketName, keyName, is, Optional.of(Long.valueOf(templateBytes.length)))) { Optional<String> templateURL = resource.upload(); final ValidateTemplateRequest validationRequest = new ValidateTemplateRequest(); validationRequest.setTemplateURL(templateURL.get()); final AmazonCloudFormationClient awsClient = new AmazonCloudFormationClient( tereusInput.awsCredentials); awsClient.setRegion(tereusInput.awsRegion); final ValidateTemplateResult validationResult = awsClient.validateTemplate(validationRequest); tereusInput.logger.debug("Stack template validation results:"); tereusInput.logger.debug(validationResult.toString()); } } }
From source file:com.mweagle.tereus.commands.DeleteCommand.java
License:Open Source License
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings({ "DM_EXIT", "OBL_UNSATISFIED_OBLIGATION" }) @Override//from w w w. j a v a2s . co m public void run() { // Get the stack, delete the stack... int exitCode = 0; final Logger logger = LogManager.getLogger(); try { final AmazonCloudFormationClient awsClient = new AmazonCloudFormationClient(); awsClient.setRegion(RegionUtils.getRegion(this.region)); final DescribeStacksRequest describeRequest = new DescribeStacksRequest().withStackName(this.stackName); final DescribeStacksResult describeResult = awsClient.describeStacks(describeRequest); logger.info(describeResult); logger.info("Deleting stack: {}", this.stackName); if (this.dryRun) { logger.info("Dry run requested (-n/--noop). Stack deletion bypassed."); } else { final DeleteStackRequest deleteRequest = new DeleteStackRequest().withStackName(this.stackName); awsClient.deleteStack(deleteRequest); } } catch (Exception ex) { logger.error(ex.getMessage()); exitCode = 1; } System.exit(exitCode); }
From source file:org.springframework.cloud.aws.context.config.annotation.ContextStackConfiguration.java
License:Apache License
@Bean @ConditionalOnMissingAmazonClient(AmazonCloudFormation.class) public AmazonCloudFormation amazonCloudFormation() { AmazonCloudFormationClient formationClient; if (this.credentialsProvider != null) { formationClient = new AmazonCloudFormationClient(this.credentialsProvider); } else {/* ww w. j a v a 2 s .c o m*/ formationClient = new AmazonCloudFormationClient(); } if (this.regionProvider != null) { formationClient.setRegion(this.regionProvider.getRegion()); } return formationClient; }
From source file:org.xmlsh.aws.gradle.cloudformation.AmazonCloudFormationPluginExtension.java
License:BSD License
private AmazonCloudFormation initClient() { AwsPluginExtension aws = project.getExtensions().getByType(AwsPluginExtension.class); AmazonCloudFormationClient client = aws.createClient(AmazonCloudFormationClient.class, profileName); client.setRegion(aws.getActiveRegion(region)); return client; }