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

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

Introduction

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

Prototype


public java.util.List<String> getCapabilities() 

Source Link

Document

The capabilities found within the template.

Usage

From source file:com.eucalyptus.cloudformation.template.TemplateParser.java

License:Open Source License

public ValidateTemplateResult validateTemplate(String templateBody, List<Parameter> userParameters,
        PseudoParameterValues pseudoParameterValues, String effectiveUserId) throws CloudFormationException {
    GetTemplateSummaryResult getTemplateSummaryResult = getTemplateSummary(templateBody, userParameters,
            pseudoParameterValues, effectiveUserId);
    ValidateTemplateResult validateTemplateResult = new ValidateTemplateResult();
    validateTemplateResult.setDescription(getTemplateSummaryResult.getDescription());
    validateTemplateResult.setCapabilities(getTemplateSummaryResult.getCapabilities());
    validateTemplateResult.setCapabilitiesReason(getTemplateSummaryResult.getCapabilitiesReason());

    TemplateParameters templateParameters = new TemplateParameters();
    if (getTemplateSummaryResult.getParameters() != null
            && getTemplateSummaryResult.getParameters().getMember() != null) {
        templateParameters.setMember(Lists.<TemplateParameter>newArrayList());
        for (ParameterDeclaration parameterDeclaration : getTemplateSummaryResult.getParameters().getMember()) {
            TemplateParameter templateParameter = new TemplateParameter();
            templateParameter.setDefaultValue(parameterDeclaration.getDefaultValue());
            templateParameter.setDescription(parameterDeclaration.getDescription());
            templateParameter.setNoEcho(parameterDeclaration.getNoEcho());
            templateParameter.setParameterKey(parameterDeclaration.getParameterKey());
            templateParameters.getMember().add(templateParameter);
        }/*ww  w.j av  a  2s.c o  m*/
    }
    validateTemplateResult.setParameters(templateParameters);
    return validateTemplateResult;
}

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