List of usage examples for com.amazonaws.services.cloudformation AmazonCloudFormationClient validateTemplate
@Override
public ValidateTemplateResult validateTemplate(ValidateTemplateRequest request)
Validates a specified template.
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 {//www . j av 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:io.konig.schemagen.aws.AWSCloudFormationUtil.java
License:Apache License
public static void writeCloudFormationTemplate(File cfDir, String template, boolean validate) throws IOException, ParseException { for (File file : cfDir.listFiles()) { if (file.getName().endsWith("_template.yml")) { String contents = new String(Files.readAllBytes(Paths.get(file.getAbsolutePath()))); VelocityContext context = new VelocityContext(); context.put("functions", new VelocityFunctions(cfDir)); StringWriter tempresult = new StringWriter(); Template vmtemplate = new Template(); RuntimeServices runtimeServices = RuntimeSingleton.getRuntimeServices(); StringReader reader = new StringReader(contents); vmtemplate.setRuntimeServices(runtimeServices); vmtemplate.setData(runtimeServices.parse(reader, template)); vmtemplate.initDocument();/* w w w .ja v a 2 s.co m*/ vmtemplate.merge(context, tempresult); contents = tempresult.toString(); YAMLMapper mapper = new YAMLMapper(new YAMLFactory()); JsonNode node = mapper.readTree(contents); JsonNode outputNode = node.get("Outputs"); if (outputNode != null) { String outputs = contents.substring(contents.lastIndexOf("Outputs:")); String resources = contents.substring(0, contents.lastIndexOf("Outputs:")); resources = resources + template; contents = resources + outputs; } AmazonCloudFormationClient client = new AmazonCloudFormationClient(); ValidateTemplateRequest request = new ValidateTemplateRequest(); request.setTemplateBody(contents); if (validate) { ValidateTemplateResult result = client.validateTemplate(request); } try (FileWriter fileWriter = new FileWriter(file)) { fileWriter.write(contents); } } } }