List of usage examples for com.amazonaws.services.cloudformation.model GetTemplateSummaryResult setParameters
public void setParameters(java.util.Collection<ParameterDeclaration> parameters)
A list of parameter declarations that describe various properties for each parameter.
From source file:com.eucalyptus.cloudformation.template.TemplateParser.java
License:Open Source License
public GetTemplateSummaryResult getTemplateSummary(String templateBody, List<Parameter> userParameters, PseudoParameterValues pseudoParameterValues, String effectiveUserId) throws CloudFormationException { Template template = new Template(); template.setResourceInfoMap(Maps.<String, ResourceInfo>newLinkedHashMap()); JsonNode templateJsonNode = null;/* w ww . ja v a 2s. com*/ try { templateJsonNode = objectMapper.readTree(templateBody); } catch (IOException ex) { throw new ValidationErrorException(ex.getMessage()); } if (!templateJsonNode.isObject()) { throw new ValidationErrorException("Template body is not a JSON object"); } template.setTemplateBody(templateBody); addPseudoParameters(template, pseudoParameterValues); buildResourceMap(template, templateJsonNode); parseValidTopLevelKeys(templateJsonNode); parseVersion(template, templateJsonNode); parseDescription(template, templateJsonNode); parseMetadata(template, templateJsonNode); parseMappings(template, templateJsonNode); ParameterParser.parseParameters(template, templateJsonNode, userParameters, true); parseConditions(template, templateJsonNode, true, effectiveUserId); parseResources(template, templateJsonNode, true); parseOutputs(template, templateJsonNode); Set<String> capabilitiesResourceTypes = Sets.newLinkedHashSet(); Set<String> requiredCapabilities = Sets.newLinkedHashSet(); Set<String> resourceTypes = Sets.newLinkedHashSet(); for (ResourceInfo resourceInfo : template.getResourceInfoMap().values()) { String resourceType = resourceInfo.getType(); resourceTypes.add(resourceType); if (resourceInfo.getRequiredCapabilities() != null && !resourceInfo.getRequiredCapabilities().isEmpty()) { requiredCapabilities.addAll(resourceInfo.getRequiredCapabilities()); capabilitiesResourceTypes.add(resourceType); } } GetTemplateSummaryResult getTemplateSummaryResult = new GetTemplateSummaryResult(); getTemplateSummaryResult.setDescription(template.getDescription()); getTemplateSummaryResult.setCapabilities(new ResourceList()); getTemplateSummaryResult.getCapabilities().setMember(Lists.newArrayList(requiredCapabilities)); if (!requiredCapabilities.isEmpty()) { getTemplateSummaryResult.setCapabilitiesReason( "The following resource(s) require capabilities: " + capabilitiesResourceTypes); } getTemplateSummaryResult.setParameters(new ParameterDeclarations()); getTemplateSummaryResult.getParameters().setMember(template.getParameterDeclarations()); getTemplateSummaryResult.setMetadata(template.getMetadataJSON()); getTemplateSummaryResult.setResourceTypes(new ResourceList()); getTemplateSummaryResult.getResourceTypes().setMember(Lists.newArrayList(resourceTypes)); return getTemplateSummaryResult; }