Example usage for com.amazonaws.services.cloudformation.model GetTemplateSummaryResult setMetadata

List of usage examples for com.amazonaws.services.cloudformation.model GetTemplateSummaryResult setMetadata

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudformation.model GetTemplateSummaryResult setMetadata.

Prototype


public void setMetadata(String metadata) 

Source Link

Document

The value that is defined for the Metadata property of the template.

Usage

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;//from ww  w . j av  a2 s.co m
    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;
}