import java.util.LinkedHashMap;
import java.util.Map;
-import org.openecomp.sdc.toscaparser.api.SubstitutionMappings;
-import org.openecomp.sdc.toscaparser.api.ToscaGraph;
import org.openecomp.sdc.toscaparser.api.common.ExceptionCollector;
import org.openecomp.sdc.toscaparser.api.elements.InterfacesDef;
-import org.openecomp.sdc.toscaparser.api.elements.Metadata;
import org.openecomp.sdc.toscaparser.api.elements.NodeType;
import org.openecomp.sdc.toscaparser.api.elements.RelationshipType;
import org.openecomp.sdc.toscaparser.api.functions.Function;
import org.openecomp.sdc.toscaparser.api.functions.GetInput;
import org.openecomp.sdc.toscaparser.api.parameters.Input;
import org.openecomp.sdc.toscaparser.api.parameters.Output;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class TopologyTemplate {
- private static Logger log = LoggerFactory.getLogger(TopologyTemplate.class.getName());
private static final String DESCRIPTION = "description";
private static final String INPUTS = "inputs";
private static final String NODE_TEMPLATES = "node_templates";
};
private LinkedHashMap<String,Object> tpl;
- Metadata metaData;
+ LinkedHashMap<String,Object> metaData;
private ArrayList<Input> inputs;
private ArrayList<Output> outputs;
private ArrayList<RelationshipTemplate> relationshipTemplates;
@SuppressWarnings("unchecked")
private ArrayList<Input> _inputs() {
+ //DumpUtils.dumpYaml(customDefs,0);
ArrayList<Input> alInputs = new ArrayList<>();
for(String name: _tplInputs().keySet()) {
Object attrs = _tplInputs().get(name);
- Input input = new Input(name,(LinkedHashMap<String,Object>)attrs);
+ Input input = new Input(name,(LinkedHashMap<String,Object>)attrs,customDefs);//ATT-CDT
if(parsedParams != null && parsedParams.get(name) != null) {
input.validate(parsedParams.get(name));
}
}
if((parsedParams != null && parsedParams.get(input.getName()) == null || parsedParams == null)
&& input.isRequired() && input.getDefault() == null) {
- log.error("Log warning: TopologyTemplate - _inputs - The required parameter {} is not provided", input.getName());
+ System.out.format("Log warning: The required parameter \"%s\" is not provided\n",input.getName());
}
alInputs.add(input);
}
}
- private Metadata _metaData() {
+ private LinkedHashMap<String,Object> _metaData() {
if(tpl.get(METADATA) != null) {
- return (Metadata)tpl.get(METADATA);
+ return (LinkedHashMap<String,Object>)tpl.get(METADATA);
}
else {
- return new Metadata(new LinkedHashMap<>());
+ return new LinkedHashMap<String,Object>();
}
}
nodeTemplates,
inputs,
outputs,
- groups,
+ groups, //ATT addition
subMappedNodeTemplate,
customDefs);
}
return tpl;
}
- public Metadata getMetadata() {
+ public LinkedHashMap<String,Object> getMetadata() {
return metaData;
}
public LinkedHashMap<String,Object> getParsedParams() {
return parsedParams;
}
-
- @Override
- public String toString() {
- return "TopologyTemplate{" +
- "tpl=" + tpl +
- ", metaData=" + metaData +
- ", inputs=" + inputs +
- ", outputs=" + outputs +
- ", relationshipTemplates=" + relationshipTemplates +
- ", nodeTemplates=" + nodeTemplates +
- ", customDefs=" + customDefs +
- ", relTypes=" + relTypes +
- ", subMappedNodeTemplate=" + subMappedNodeTemplate +
- ", groups=" + groups +
- ", policies=" + policies +
- ", parsedParams=" + parsedParams +
- ", description='" + description + '\'' +
- ", graph=" + graph +
- ", substitutionMappings=" + substitutionMappings +
- '}';
- }
}
/*python
private String name;
private Schema schema;
+ private LinkedHashMap<String,Object> customDefs;//ATT-CDT
-
- public Input(String _name,LinkedHashMap<String,Object> _schemaDict) {
+ public Input(String _name,LinkedHashMap<String,Object> _schemaDict,LinkedHashMap<String,Object> _customDefs) {//ATT-CDT
name = _name;
schema = new Schema(_name,_schemaDict);
+ customDefs = _customDefs;//ATT-CDT
}
public String getName() {
break;
}
}
+ //ATT-CDT
+ if(!bFound) {
+ if(customDefs.get(inputType) != null) {
+ bFound = true;
+ }
+ }
+ //ATT-CDT
if(!bFound) {
ExceptionCollector.appendException(String.format(
"ValueError: Invalid type \"%s\"",inputType));
private void _validateValue(Object value) {
Object datatype = null;
- if (EntityType.TOSCA_DEF != null && EntityType.TOSCA_DEF.size() > 0) {
- if(EntityType.TOSCA_DEF.get(getType()) != null) {
- datatype = EntityType.TOSCA_DEF.get(getType());
- }
- else if(EntityType.TOSCA_DEF.get(EntityType.DATATYPE_NETWORK_PREFIX + getType()) != null) {
- datatype = EntityType.TOSCA_DEF.get(EntityType.DATATYPE_NETWORK_PREFIX + getType());
- }
+ if(EntityType.TOSCA_DEF.get(getType()) != null) {
+ datatype = EntityType.TOSCA_DEF.get(getType());
+ }
+ else if(EntityType.TOSCA_DEF.get(EntityType.DATATYPE_NETWORK_PREFIX + getType()) != null) {
+ datatype = EntityType.TOSCA_DEF.get(EntityType.DATATYPE_NETWORK_PREFIX + getType());
+ }
+ //ATT-CDT
+ else if(customDefs.get(getType()) != null) {
+ datatype = customDefs.get(getType());
+ DataEntity.validateDatatype(getType(),value,(LinkedHashMap<String,Object>)datatype,customDefs,null);
+ return;
}
+ //ATT-CDT
DataEntity.validateDatatype(getType(),value,null,(LinkedHashMap<String,Object>)datatype,null);
}
}
public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
List<NodeTemplate> serviceVlList = ToscaParserTestSuite.fdntCsarHelper.getServiceVlList();
NodeTemplate nodeTemplate = serviceVlList.get(0);
- System.out.println("node template " + nodeTemplate.toString());
+ //System.out.println("node template " + nodeTemplate.toString());
assertEquals("24", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
assertEquals("7a6520b-9982354-ee82992c-105720", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
}
+
+ @Test
+ public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
+ List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
+ NodeTemplate nodeTemplate = serviceVfList.get(0);
+ //System.out.println("node template " + nodeTemplate.toString());
+ assertEquals("true", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
+ assertEquals("FDNT_instance_VF_2", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
+ }
@Test
public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {