Example usage for com.amazonaws.services.cloudformation AmazonCloudFormationClient setRegion

List of usage examples for com.amazonaws.services.cloudformation AmazonCloudFormationClient setRegion

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudformation AmazonCloudFormationClient setRegion.

Prototype

@Deprecated
void setRegion(Region region);

Source Link

Document

An alternative to AmazonCloudFormation#setEndpoint(String) , sets the regional endpoint for this client's service calls.

Usage

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;
}