aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-lib/src
diff options
context:
space:
mode:
authorkaty.rotman <katy.rotman@amdocs.com>2018-05-23 15:50:38 +0300
committerAvi Gaffa <avi.gaffa@amdocs.com>2018-05-23 14:08:04 +0000
commitf0c3f38fc7d23b7d6fcda939aafe57d429b8f41a (patch)
treee6f51efdd34948d0b2045a4e84c80ee67c7b1f38 /openecomp-be/lib/openecomp-tosca-lib/src
parent44c763981f2e368184d6461dd18529545c3b29aa (diff)
new node filter implementation
Issue-ID: SDC-1363 Change-Id: I0bd8b482e8e55f92ac3bccf8725d64f1b4929a43 Signed-off-by: katy.rotman <katy.rotman@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-lib/src')
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java823
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilterTest.java144
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplate.yaml6
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateHeatExtend.yaml18
4 files changed, 560 insertions, 431 deletions
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
index 7405f50829..6fb10ac1e0 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java
@@ -1,25 +1,28 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ============LICENSE_END=========================================================
*/
package org.openecomp.sdc.tosca.datatypes;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import org.junit.Assert;
import org.junit.Test;
import org.onap.sdc.tosca.datatypes.model.ArtifactType;
@@ -49,260 +52,254 @@ import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.onap.sdc.tosca.datatypes.model.SubstitutionMapping;
import org.onap.sdc.tosca.datatypes.model.TopologyTemplate;
import org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt;
-import org.openecomp.sdc.tosca.services.DataModelUtil;
-import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
import org.onap.sdc.tosca.services.YamlUtil;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaConstants;
public class ToscaModelTest {
- private YamlUtil yamlUtil = new YamlUtil();
- private static final String INTERFACE_ID = "inter_1";
- private static final String NODE_TEMPLATE_ID = "firstNodeTemplate";
- private static final String NODE_TYPE_ID = "compute_node_type";
- private static final String BASE_DIR = "/mock/model";
- private static final String ST = "/serviceTemplate.yaml";
- private static final String ST_WITH_INTERFACE = "/serviceTemplateWithInterface.yaml";
- private static final String ST_WITH_OPERATIONS = "/serviceTemplateWithInterfaceAndOperation.yaml";
- private static final String ST_WITH_INTERFACE_DEF =
- "/serviceTemplateWithNodeTemplateInterface.yaml";
- private static final String ST_WITH_NODE_INTERFACE_DEF =
- "/serviceTemplateWithNodeTypeInterface.yaml";
- private static final String INTERFACE_TYPE_VALUE = "tosca.interfaces.node.lifecycle.Standard";
- private static final String OPERATION_START = "start";
- private static final String OPERATION_DESC = "start operation";
- private static final String IMPLEMENTATION_NAME = "startWorkFlow.json";
- private static final String PRIMARY_IMPL = "myImpl.yaml";
- private static final String DEPENDENCY_NAME = "script1.sh";
- private static final String STRING_TYPE = "string";
- @Test
- public void testServiceTemplateJavaToYaml() {
- ServiceTemplate serviceTemplate = new ServiceTemplate();
- Map<String, String> metadata = new HashMap<>();
- metadata.put("Template_author", "OPENECOMP");
- metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, "Test");
- metadata.put("Template_version", "1.0.0");
- serviceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
- serviceTemplate.setDescription("testing desc tosca service template");
-
- Import fileImport1 = new Import();
- fileImport1.setFile("path1/path2/file1.yaml");
- Import fileImport2 = new Import();
- fileImport2.setFile("path1/path2/file2.yaml");
- List<Map<String, Import>> imports = new ArrayList<>();
- Map<String, Import> importsMap = new HashMap<>();
- importsMap.put("myfile1", fileImport1);
- imports.add(importsMap);
- importsMap = new HashMap<>();
- importsMap.put("myfile2", fileImport2);
- imports.add(importsMap);
- serviceTemplate.setImports(imports);
-
- OperationDefinition operationDefinition = new OperationDefinition();
- operationDefinition.setDescription("test operation");
- InterfaceType interfaceType = new InterfaceType();
- interfaceType.setDerived_from("derived_from");
- interfaceType.setDescription("desc");
- interfaceType.addOperation("test", operationDefinition);
- serviceTemplate.addInterfaceType("test_interface", interfaceType);
-
- ArtifactType artifact = new ArtifactType();
- artifact.setMime_type("application/java-archive");
- ArrayList<String> ext = new ArrayList<>();
- ext.add("yaml");
- ext.add("xml");
- artifact.setFile_ext(ext);
- Map<String, ArtifactType> artifactTypes = new HashMap<>();
- artifactTypes.put("one_artifact", artifact);
- serviceTemplate.setArtifact_types(artifactTypes);
-
- NodeType nodeType = new NodeType();
- nodeType.setDerived_from("tosca.nodes.Root");
- nodeType.setVersion("1.0.0");
- nodeType.setDescription("tosca compute test");
-
- PropertyDefinition propDef1 = new PropertyDefinition();
- propDef1.setType("integer");
- propDef1.setDescription("Number of CPUs requested for a software node instance");
- propDef1.setRequired(true);
- propDef1.set_default(1);
-
- Constraint graterOrEqual = new Constraint();
- graterOrEqual.setGreater_or_equal((float) 5.0);
- Constraint constraintEqual = new Constraint();
- constraintEqual.setEqual(5);
- Constraint greater_than = new Constraint();
- greater_than.setGreater_than(6.02);
- Constraint inRange = new Constraint();
- inRange.setIn_range(new Object[2]);
- inRange.getIn_range()[0] = 0;
- inRange.getIn_range()[1] = ToscaConstants.UNBOUNDED;
-
- List<Constraint> constraints = new ArrayList<>();
- constraints.add(graterOrEqual);
- constraints.add(constraintEqual);
- constraints.add(greater_than);
- constraints.add(inRange);
- propDef1.setConstraints(constraints);
-
- Map<String, PropertyDefinition> properties = new HashMap<>();
- properties.put("cpu_num", propDef1);
- nodeType.setProperties(properties);
-
- Map<String, AttributeDefinition> attributesDef = new HashMap<>();
- AttributeDefinition attDef = new AttributeDefinition();
- attDef.setType(PropertyType.STRING.getDisplayName());
- attDef.set_default("hi");
- attributesDef.put("attDef1", attDef);
- nodeType.setAttributes(attributesDef);
-
- Map<String, RequirementDefinition> reqsDef = new HashMap<>();
- RequirementDefinition reqDef = new RequirementDefinition();
- reqDef.setCapability("tosca.cap1");
- reqDef.getOccurrences()[0] = 5;
- reqsDef.put("re1", reqDef);
- List<Map<String, RequirementDefinition>> reqList = new ArrayList<>();
- reqList.add(reqsDef);
- nodeType.setRequirements(reqList);
-
-
- Map<String, CapabilityDefinition> capsDef = new HashMap<>();
- CapabilityDefinition capdef = new CapabilityDefinition();
- capdef.setType("tosca.cap");
- List<String> vvSource = new ArrayList<>();
- vvSource.add("node1");
- vvSource.add("node2");
- capdef.setValid_source_types(vvSource);
- capsDef.put("cap1", capdef);
- nodeType.setCapabilities(capsDef);
-
- Map<String, NodeType> nodeTypes = new HashMap<>();
- nodeTypes.put("compute_node_type", nodeType);
- serviceTemplate.setNode_types(nodeTypes);
-
- TopologyTemplate topologyTemplate = new TopologyTemplate();
- topologyTemplate.setDescription("topologi template descroption");
- Map<String, ParameterDefinition> inputs = new HashMap<>();
- ParameterDefinition paramDef = new ParameterDefinition();
- paramDef.setType(PropertyType.STRING.getDisplayName());
- paramDef.setDescription("desc");
- paramDef.set_default("my default val");
- paramDef.setRequired(false);
- paramDef.setEntry_schema(DataModelUtil.createEntrySchema("tosca.myType", null, null));
- List<Constraint> paramConstraint = new ArrayList<>();
- Constraint paramConst1 = new Constraint();
- paramConst1.setGreater_than(6);
- Constraint paramConst2 = new Constraint();
- paramConst2.setGreater_or_equal(9);
- paramConstraint.add(paramConst1);
- paramConstraint.add(paramConst2);
- paramDef.setConstraints(paramConstraint);
- inputs.put("inParam1", paramDef);
- topologyTemplate.setInputs(inputs);
-
- Map<String, NodeTemplate> nodeTemplates = new HashMap<>();
- NodeTemplate nodeTemplate = new NodeTemplate();
- nodeTemplate.setType("nodeTypeRef");
- List<String> directives = new ArrayList<>();
- directives.add(Directive.SELECTABLE.getDisplayName());
- directives.add(Directive.SUBSTITUTABLE.getDisplayName());
- nodeTemplate.setDirectives(directives);
- Map<String, Object> nodeTemplateProperties = new HashMap<>();
- nodeTemplateProperties.put("prop1", "abcd");
- nodeTemplateProperties.put("prop2", "{ get_input: my_mysql_rootpw }");
- nodeTemplate.setProperties(nodeTemplateProperties);
- Map<String, Object> nodeTemplateAtts = new HashMap<>();
- nodeTemplateAtts.put("att1", "att1Val");
- nodeTemplateAtts.put("att2", "{ get_input: my_mysql_rootpw }");
- nodeTemplate.setAttributes(nodeTemplateAtts);
-
-
- RequirementAssignment reqAssignment1 = new RequirementAssignment();
- reqAssignment1.setNode("nodeA");
- reqAssignment1.setCapability("capA");
- reqAssignment1.setRelationship("relationB");
- Object[] reqAssOccurrences = new Object[2];
- reqAssOccurrences[0] = 1;
- reqAssOccurrences[1] = 2;
- reqAssignment1.setOccurrences(reqAssOccurrences);
- NodeFilter reqNodeFilter = new NodeFilter();
- List<Constraint> propConstrain1 = new ArrayList<>();
- Constraint propConst1 = new Constraint();
- propConst1.setGreater_or_equal(9);
- propConstrain1.add(propConst1);
- List<Constraint> propConstrain2 = new ArrayList<>();
- Constraint propConst2 = new Constraint();
- propConst2.setMin_length(1);
- propConstrain2.add(propConst2);
- Constraint propConst3 = new Constraint();
- propConst3.setMax_length(2);
- propConstrain2.add(propConst3);
- Map<String, List<Constraint>> nodeFilterProp = new HashMap<>();
- nodeFilterProp.put("propName1", propConstrain1);
- nodeFilterProp.put("propName2", propConstrain2);
- reqNodeFilter.setProperties(nodeFilterProp);
- reqAssignment1.setNode_filter(reqNodeFilter);
-
- RequirementAssignment reqAssignment2 = new RequirementAssignment();
- reqAssignment2.setNode("nodeA");
- reqAssignment2.setCapability("capA");
- reqAssignment2.setRelationship("relationB");
- Map<String, RequirementAssignment> nodeTemplateRequirement1 = new HashMap<>();
- Map<String, RequirementAssignment> nodeTemplateRequirement2 = new HashMap<>();
- nodeTemplateRequirement1.put("req1", reqAssignment1);
- nodeTemplateRequirement2.put("req2", reqAssignment2);
- nodeTemplate.setRequirements(new ArrayList<>());
- nodeTemplate.getRequirements().add(nodeTemplateRequirement1);
- nodeTemplate.getRequirements().add(nodeTemplateRequirement2);
-
- Map<String, CapabilityAssignment> nodeTemplateCapability = new HashMap<>();
- CapabilityAssignment capAss = new CapabilityAssignment();
- Map<String, Object> capProps = new HashMap<>();
- capProps.put("num_cpus", "{ get_input: cpus }");
- capAss.setProperties(capProps);
- Map<String, Object> capAtts = new HashMap<>();
- capAtts.put("num_cpus", "66");
- capAss.setAttributes(capAtts);
- nodeTemplateCapability.put("cap1", capAss);
- nodeTemplate.setCapabilities(nodeTemplateCapability);
-
- NodeFilter nodeTemplateNodeFilter = new NodeFilter();
- Map<String, List<Constraint>> ntProp = new HashMap<>();
- Constraint c1 = new Constraint();
- c1.setEqual("1 MB");
- List<Constraint> consList = new ArrayList<>();
- consList.add(c1);
- ntProp.put("test1", consList);
- nodeTemplateNodeFilter.setProperties(ntProp);
- nodeTemplate.setNode_filter(nodeTemplateNodeFilter);
- nodeTemplates.put("firatNodeTemplate", nodeTemplate);
- topologyTemplate.setNode_templates(nodeTemplates);
-
- SubstitutionMapping subMap = new SubstitutionMapping();
- subMap.setNode_type("myNodeType.node");
- Map<String, List<String>> mapCapabilities = new HashMap<>();
- List<String> NodeCap = new ArrayList<>();
- NodeCap.add("database");
- NodeCap.add("database_endpoint");
- mapCapabilities.put("database_endpoint", NodeCap);
- subMap.setCapabilities(mapCapabilities);
- topologyTemplate.setSubstitution_mappings(subMap);
- serviceTemplate.setTopology_template(topologyTemplate);
-
- String yaml = new YamlUtil().objectToYaml(serviceTemplate);
- ServiceTemplate serviceTemplateFromYaml =
- new YamlUtil().yamlToObject(yaml, ServiceTemplate.class);
- Assert.assertNotNull(serviceTemplateFromYaml);
- }
+ private YamlUtil yamlUtil = new YamlUtil();
+ private static final String INTERFACE_ID = "inter_1";
+ private static final String NODE_TEMPLATE_ID = "firstNodeTemplate";
+ private static final String NODE_TYPE_ID = "compute_node_type";
+ private static final String BASE_DIR = "/mock/model";
+ private static final String ST = "/serviceTemplate.yaml";
+ private static final String ST_WITH_INTERFACE = "/serviceTemplateWithInterface.yaml";
+ private static final String ST_WITH_OPERATIONS = "/serviceTemplateWithInterfaceAndOperation.yaml";
+ private static final String ST_WITH_INTERFACE_DEF = "/serviceTemplateWithNodeTemplateInterface.yaml";
+ private static final String ST_WITH_NODE_INTERFACE_DEF = "/serviceTemplateWithNodeTypeInterface.yaml";
+ private static final String INTERFACE_TYPE_VALUE = "tosca.interfaces.node.lifecycle.Standard";
+ private static final String OPERATION_START = "start";
+ private static final String OPERATION_DESC = "start operation";
+ private static final String IMPLEMENTATION_NAME = "startWorkFlow.json";
+ private static final String PRIMARY_IMPL = "myImpl.yaml";
+ private static final String DEPENDENCY_NAME = "script1.sh";
+ private static final String STRING_TYPE = "string";
+
+ @Test
+ public void testServiceTemplateJavaToYaml() {
+ ServiceTemplate serviceTemplate = new ServiceTemplate();
+ Map<String, String> metadata = new HashMap<>();
+ metadata.put("Template_author", "OPENECOMP");
+ metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, "Test");
+ metadata.put("Template_version", "1.0.0");
+ serviceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
+ serviceTemplate.setDescription("testing desc tosca service template");
+
+ Import fileImport1 = new Import();
+ fileImport1.setFile("path1/path2/file1.yaml");
+ Import fileImport2 = new Import();
+ fileImport2.setFile("path1/path2/file2.yaml");
+ List<Map<String, Import>> imports = new ArrayList<>();
+ Map<String, Import> importsMap = new HashMap<>();
+ importsMap.put("myfile1", fileImport1);
+ imports.add(importsMap);
+ importsMap = new HashMap<>();
+ importsMap.put("myfile2", fileImport2);
+ imports.add(importsMap);
+ serviceTemplate.setImports(imports);
+
+ OperationDefinition operationDefinition = new OperationDefinition();
+ operationDefinition.setDescription("test operation");
+ InterfaceType interfaceType = new InterfaceType();
+ interfaceType.setDerived_from("derived_from");
+ interfaceType.setDescription("desc");
+ interfaceType.addOperation("test", operationDefinition);
+ serviceTemplate.addInterfaceType("test_interface", interfaceType);
+
+ ArtifactType artifact = new ArtifactType();
+ artifact.setMime_type("application/java-archive");
+ ArrayList<String> ext = new ArrayList<>();
+ ext.add("yaml");
+ ext.add("xml");
+ artifact.setFile_ext(ext);
+ Map<String, ArtifactType> artifactTypes = new HashMap<>();
+ artifactTypes.put("one_artifact", artifact);
+ serviceTemplate.setArtifact_types(artifactTypes);
+
+ NodeType nodeType = new NodeType();
+ nodeType.setDerived_from("tosca.nodes.Root");
+ nodeType.setVersion("1.0.0");
+ nodeType.setDescription("tosca compute test");
+
+ PropertyDefinition propDef1 = new PropertyDefinition();
+ propDef1.setType("integer");
+ propDef1.setDescription("Number of CPUs requested for a software node instance");
+ propDef1.setRequired(true);
+ propDef1.set_default(1);
+
+ Constraint graterOrEqual = new Constraint();
+ graterOrEqual.setGreater_or_equal((float) 5.0);
+ Constraint constraintEqual = new Constraint();
+ constraintEqual.setEqual(5);
+ Constraint greater_than = new Constraint();
+ greater_than.setGreater_than(6.02);
+ Constraint inRange = new Constraint();
+ inRange.setIn_range(new Object[2]);
+ inRange.getIn_range()[0] = 0;
+ inRange.getIn_range()[1] = ToscaConstants.UNBOUNDED;
+
+ List<Constraint> constraints = new ArrayList<>();
+ constraints.add(graterOrEqual);
+ constraints.add(constraintEqual);
+ constraints.add(greater_than);
+ constraints.add(inRange);
+ propDef1.setConstraints(constraints);
+
+ Map<String, PropertyDefinition> properties = new HashMap<>();
+ properties.put("cpu_num", propDef1);
+ nodeType.setProperties(properties);
+
+ Map<String, AttributeDefinition> attributesDef = new HashMap<>();
+ AttributeDefinition attDef = new AttributeDefinition();
+ attDef.setType(PropertyType.STRING.getDisplayName());
+ attDef.set_default("hi");
+ attributesDef.put("attDef1", attDef);
+ nodeType.setAttributes(attributesDef);
+
+ Map<String, RequirementDefinition> reqsDef = new HashMap<>();
+ RequirementDefinition reqDef = new RequirementDefinition();
+ reqDef.setCapability("tosca.cap1");
+ reqDef.getOccurrences()[0] = 5;
+ reqsDef.put("re1", reqDef);
+ List<Map<String, RequirementDefinition>> reqList = new ArrayList<>();
+ reqList.add(reqsDef);
+ nodeType.setRequirements(reqList);
+
+
+ Map<String, CapabilityDefinition> capsDef = new HashMap<>();
+ CapabilityDefinition capdef = new CapabilityDefinition();
+ capdef.setType("tosca.cap");
+ List<String> vvSource = new ArrayList<>();
+ vvSource.add("node1");
+ vvSource.add("node2");
+ capdef.setValid_source_types(vvSource);
+ capsDef.put("cap1", capdef);
+ nodeType.setCapabilities(capsDef);
+
+ Map<String, NodeType> nodeTypes = new HashMap<>();
+ nodeTypes.put("compute_node_type", nodeType);
+ serviceTemplate.setNode_types(nodeTypes);
+
+ TopologyTemplate topologyTemplate = new TopologyTemplate();
+ topologyTemplate.setDescription("topologi template descroption");
+ Map<String, ParameterDefinition> inputs = new HashMap<>();
+ ParameterDefinition paramDef = new ParameterDefinition();
+ paramDef.setType(PropertyType.STRING.getDisplayName());
+ paramDef.setDescription("desc");
+ paramDef.set_default("my default val");
+ paramDef.setRequired(false);
+ paramDef.setEntry_schema(DataModelUtil.createEntrySchema("tosca.myType", null, null));
+ List<Constraint> paramConstraint = new ArrayList<>();
+ Constraint paramConst1 = new Constraint();
+ paramConst1.setGreater_than(6);
+ Constraint paramConst2 = new Constraint();
+ paramConst2.setGreater_or_equal(9);
+ paramConstraint.add(paramConst1);
+ paramConstraint.add(paramConst2);
+ paramDef.setConstraints(paramConstraint);
+ inputs.put("inParam1", paramDef);
+ topologyTemplate.setInputs(inputs);
+
+ Map<String, NodeTemplate> nodeTemplates = new HashMap<>();
+ NodeTemplate nodeTemplate = new NodeTemplate();
+ nodeTemplate.setType("nodeTypeRef");
+ List<String> directives = new ArrayList<>();
+ directives.add(Directive.SELECTABLE.getDisplayName());
+ directives.add(Directive.SUBSTITUTABLE.getDisplayName());
+ nodeTemplate.setDirectives(directives);
+ Map<String, Object> nodeTemplateProperties = new HashMap<>();
+ nodeTemplateProperties.put("prop1", "abcd");
+ nodeTemplateProperties.put("prop2", "{ get_input: my_mysql_rootpw }");
+ nodeTemplate.setProperties(nodeTemplateProperties);
+ Map<String, Object> nodeTemplateAtts = new HashMap<>();
+ nodeTemplateAtts.put("att1", "att1Val");
+ nodeTemplateAtts.put("att2", "{ get_input: my_mysql_rootpw }");
+ nodeTemplate.setAttributes(nodeTemplateAtts);
+
+
+ RequirementAssignment reqAssignment1 = new RequirementAssignment();
+ reqAssignment1.setNode("nodeA");
+ reqAssignment1.setCapability("capA");
+ reqAssignment1.setRelationship("relationB");
+ Object[] reqAssOccurrences = new Object[2];
+ reqAssOccurrences[0] = 1;
+ reqAssOccurrences[1] = 2;
+ reqAssignment1.setOccurrences(reqAssOccurrences);
+ NodeFilter reqNodeFilter = new NodeFilter();
+ List<Constraint> propConstraint1 = new ArrayList<>();
+ Constraint propConst1 = new Constraint();
+ propConst1.setGreater_or_equal(9);
+ propConstraint1.add(propConst1);
+ List<Constraint> propConstraint2 = new ArrayList<>();
+ Constraint propConst2 = new Constraint();
+ propConst2.setMin_length(1);
+ propConstraint2.add(propConst2);
+ Constraint propConst3 = new Constraint();
+ propConst3.setMax_length(2);
+ propConstraint2.add(propConst3);
+ List<Map<String, List<Constraint>>> nodeFilterProp = new ArrayList<>();
+ Map<String, List<Constraint>> propsMap = new HashMap<>();
+ propsMap.put("propName1", propConstraint1);
+ propsMap.put("propName2", propConstraint2);
+ nodeFilterProp.add(propsMap);
+ reqNodeFilter.setProperties(nodeFilterProp);
+ reqAssignment1.setNode_filter(reqNodeFilter);
+
+ RequirementAssignment reqAssignment2 = new RequirementAssignment();
+ reqAssignment2.setNode("nodeA");
+ reqAssignment2.setCapability("capA");
+ reqAssignment2.setRelationship("relationB");
+ Map<String, RequirementAssignment> nodeTemplateRequirement1 = new HashMap<>();
+ Map<String, RequirementAssignment> nodeTemplateRequirement2 = new HashMap<>();
+ nodeTemplateRequirement1.put("req1", reqAssignment1);
+ nodeTemplateRequirement2.put("req2", reqAssignment2);
+ nodeTemplate.setRequirements(new ArrayList<>());
+ nodeTemplate.getRequirements().add(nodeTemplateRequirement1);
+ nodeTemplate.getRequirements().add(nodeTemplateRequirement2);
+
+ Map<String, CapabilityAssignment> nodeTemplateCapability = new HashMap<>();
+ CapabilityAssignment capAss = new CapabilityAssignment();
+ Map<String, Object> capProps = new HashMap<>();
+ capProps.put("num_cpus", "{ get_input: cpus }");
+ capAss.setProperties(capProps);
+ Map<String, Object> capAtts = new HashMap<>();
+ capAtts.put("num_cpus", "66");
+ capAss.setAttributes(capAtts);
+ nodeTemplateCapability.put("cap1", capAss);
+ nodeTemplate.setCapabilities(nodeTemplateCapability);
+
+ NodeFilter nodeTemplateNodeFilter = new NodeFilter();
+ List<Map<String, List<Constraint>>> nodeFilterProp2 = new ArrayList<>();
+ Map<String, List<Constraint>> propsMap2 = new HashMap<>();
+ Constraint c1 = new Constraint();
+ c1.setEqual("1 MB");
+ List<Constraint> consList = new ArrayList<>();
+ consList.add(c1);
+ propsMap2.put("test1", consList);
+ nodeFilterProp2.add(propsMap2);
+ nodeTemplateNodeFilter.setProperties(nodeFilterProp2);
+ nodeTemplate.setNode_filter(nodeTemplateNodeFilter);
+ nodeTemplates.put("firatNodeTemplate", nodeTemplate);
+ topologyTemplate.setNode_templates(nodeTemplates);
+
+ SubstitutionMapping subMap = new SubstitutionMapping();
+ subMap.setNode_type("myNodeType.node");
+ Map<String, List<String>> mapCapabilities = new HashMap<>();
+ List<String> NodeCap = new ArrayList<>();
+ NodeCap.add("database");
+ NodeCap.add("database_endpoint");
+ mapCapabilities.put("database_endpoint", NodeCap);
+ subMap.setCapabilities(mapCapabilities);
+ topologyTemplate.setSubstitution_mappings(subMap);
+ serviceTemplate.setTopology_template(topologyTemplate);
+
+ String yaml = new YamlUtil().objectToYaml(serviceTemplate);
+ ServiceTemplate serviceTemplateFromYaml = new YamlUtil().yamlToObject(yaml, ServiceTemplate.class);
+ Assert.assertNotNull(serviceTemplateFromYaml);
+ }
@Test
@@ -312,183 +309,171 @@ public class ToscaModelTest {
Assert.assertNotNull(serviceTemplateFromYaml);
}
- @Test
- public void testYamlWithInterfaceToServiceTemplateObj() throws IOException {
- ServiceTemplate serviceTemplateWithOperation =
- getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
- Assert.assertNotNull(serviceTemplateWithOperation);
-
- InterfaceType expectedInterfaceType = createInterfaceType();
-
- Map<String, InterfaceType> interfaceTypes =
- DataModelUtil.getInterfaceTypes(serviceTemplateWithOperation);
- Assert.assertEquals(1, interfaceTypes.size());
- InterfaceType actualInterfaceType = interfaceTypes.get(INTERFACE_ID);
- Assert.assertEquals(expectedInterfaceType, actualInterfaceType);
- }
+ @Test
+ public void testYamlWithInterfaceToServiceTemplateObj() throws IOException {
+ ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
+ Assert.assertNotNull(serviceTemplateWithOperation);
- @Test
- public void testAddOperationToInterface() throws IOException {
- YamlUtil yamlUtil = new YamlUtil();
- ServiceTemplate serviceTemplateWithInterface =
- getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
- ServiceTemplate serviceTemplateWithOperation =
- getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
-
- OperationDefinition operationDefinition = createOperationDefinition();
-
- DataModelUtil
- .addInterfaceOperation(serviceTemplateWithInterface, INTERFACE_ID, OPERATION_START,
- operationDefinition);
- String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
- String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
- Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
- }
+ InterfaceType expectedInterfaceType = createInterfaceType();
- @Test
- public void testInterfaceTypeToObjConversion() throws IOException {
- ServiceTemplate serviceTemplateWithInterface =
- getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
- ServiceTemplate serviceTemplateWithOperation =
- getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
- InterfaceType interfaceType = createInterfaceType();
-
- Optional<Object> interfaceAsObj = DataModelUtil.convertInterfaceTypeToObj(interfaceType);
- Assert.assertTrue(interfaceAsObj.isPresent());
-
- Map<String, Object> interfaceTypes = new HashMap<>();
- interfaceTypes.put(INTERFACE_ID, interfaceAsObj.get());
- serviceTemplateWithInterface.setInterface_types(interfaceTypes);
-
- String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
- String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
- Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
- }
+ Map<String, InterfaceType> interfaceTypes = DataModelUtil.getInterfaceTypes(serviceTemplateWithOperation);
+ Assert.assertEquals(1, interfaceTypes.size());
+ InterfaceType actualInterfaceType = interfaceTypes.get(INTERFACE_ID);
+ Assert.assertEquals(expectedInterfaceType, actualInterfaceType);
+ }
- @Test
- public void testObjToInterfaceTypeConversion() throws IOException, ReflectiveOperationException {
- ServiceTemplate serviceTemplateWithOperation =
- getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
- Map<String, Object> interfaceTypes = serviceTemplateWithOperation.getInterface_types();
- Object interfaceObj = interfaceTypes.get(INTERFACE_ID);
- Optional<InterfaceType> actualInterfaceType =
- DataModelUtil.convertObjToInterfaceType(INTERFACE_ID, interfaceObj);
-
- Assert.assertTrue(actualInterfaceType.isPresent());
- InterfaceType expectedInterfaceType = createInterfaceType();
- Assert.assertEquals(expectedInterfaceType, actualInterfaceType.get());
- }
+ @Test
+ public void testAddOperationToInterface() throws IOException {
+ YamlUtil yamlUtil = new YamlUtil();
+ ServiceTemplate serviceTemplateWithInterface = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
+ ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
- @Test
- public void testObjToInterfaceDefinitionTypeConversion()
- throws IOException, ReflectiveOperationException {
- ServiceTemplate serviceTemplateWithInterfaceDef =
- getServiceTemplate(BASE_DIR + ST_WITH_NODE_INTERFACE_DEF);
- NodeType nodeTypeWithInterface =
- DataModelUtil.getNodeType(serviceTemplateWithInterfaceDef, NODE_TYPE_ID);
- Map<String, Object> interfaces = nodeTypeWithInterface.getInterfaces();
- Object interfaceObj = interfaces.get(INTERFACE_ID);
-
- Optional<? extends InterfaceDefinition> actualInterfaceDefinition =
- DataModelUtil.convertObjToInterfaceDefinition(INTERFACE_ID, interfaceObj,
- InterfaceDefinitionType.class);
-
- Assert.assertTrue(actualInterfaceDefinition.isPresent());
-
- InterfaceDefinitionType expectedInterfaceDefinitionType = createInterfaceDefinitionType();
- Assert.assertEquals(expectedInterfaceDefinitionType, actualInterfaceDefinition.get());
- }
+ OperationDefinition operationDefinition = createOperationDefinition();
- @Test
- public void testObjToInterfaceDefinitionTemplateConversion()
- throws IOException, ReflectiveOperationException {
- ServiceTemplate serviceTemplateWithInterfaceDef =
- getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE_DEF);
- NodeTemplate nodeTemplateWithInterface =
- DataModelUtil.getNodeTemplate(serviceTemplateWithInterfaceDef, NODE_TEMPLATE_ID);
- Map<String, Object> interfaces = nodeTemplateWithInterface.getInterfaces();
- Object interfaceObj = interfaces.get(INTERFACE_ID);
-
- Optional<? extends InterfaceDefinition> actualInterfaceDefinition =
- DataModelUtil.convertObjToInterfaceDefinition(INTERFACE_ID, interfaceObj,
- InterfaceDefinitionTemplate.class);
-
- Assert.assertTrue(actualInterfaceDefinition.isPresent());
- InterfaceDefinitionTemplate expectedInterfaceDefinitionTemplate = createInterfaceDefinitionTemplate();
- Assert.assertEquals(expectedInterfaceDefinitionTemplate, actualInterfaceDefinition.get());
- }
+ DataModelUtil.addInterfaceOperation(serviceTemplateWithInterface, INTERFACE_ID, OPERATION_START,
+ operationDefinition);
+ String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
+ String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
+ Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
+ }
- @Test
- public void testYamlToServiceTemplateIncludingHeatExtend() throws IOException {
- ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
- try (InputStream yamlFile =
- toscaExtensionYamlUtil.loadYamlFileIs(BASE_DIR + "/serviceTemplateHeatExtend.yaml")) {
- ServiceTemplate serviceTemplateFromYaml =
- toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
- ParameterDefinitionExt parameterDefinitionExt =
- (ParameterDefinitionExt) serviceTemplateFromYaml.getTopology_template().getInputs()
- .get("inParam1");
- Assert.assertNotNull(parameterDefinitionExt.getLabel());
- String backToYamlString = toscaExtensionYamlUtil.objectToYaml(serviceTemplateFromYaml);
- Assert.assertNotNull(backToYamlString);
+ @Test
+ public void testInterfaceTypeToObjConversion() throws IOException {
+ ServiceTemplate serviceTemplateWithInterface = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
+ ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
+ InterfaceType interfaceType = createInterfaceType();
+
+ Optional<Object> interfaceAsObj = DataModelUtil.convertInterfaceTypeToObj(interfaceType);
+ Assert.assertTrue(interfaceAsObj.isPresent());
+
+ Map<String, Object> interfaceTypes = new HashMap<>();
+ interfaceTypes.put(INTERFACE_ID, interfaceAsObj.get());
+ serviceTemplateWithInterface.setInterface_types(interfaceTypes);
+
+ String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
+ String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
+ Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
}
- }
- private ServiceTemplate getServiceTemplate(String inputPath) throws IOException {
- try (InputStream yamlFile = yamlUtil.loadYamlFileIs(inputPath)) {
- return yamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ @Test
+ public void testObjToInterfaceTypeConversion() throws IOException, ReflectiveOperationException {
+ ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
+ Map<String, Object> interfaceTypes = serviceTemplateWithOperation.getInterface_types();
+ Object interfaceObj = interfaceTypes.get(INTERFACE_ID);
+ Optional<InterfaceType> actualInterfaceType =
+ DataModelUtil.convertObjToInterfaceType(INTERFACE_ID, interfaceObj);
+
+ Assert.assertTrue(actualInterfaceType.isPresent());
+ InterfaceType expectedInterfaceType = createInterfaceType();
+ Assert.assertEquals(expectedInterfaceType, actualInterfaceType.get());
}
- }
- private InterfaceType createInterfaceType() {
- OperationDefinition operationDefinition = createOperationDefinition();
- InterfaceType interfaceType = new InterfaceType();
- interfaceType.setDescription("test interface");
- interfaceType.addOperation(OPERATION_START, operationDefinition);
- return interfaceType;
- }
+ @Test
+ public void testObjToInterfaceDefinitionTypeConversion() throws IOException, ReflectiveOperationException {
+ ServiceTemplate serviceTemplateWithInterfaceDef = getServiceTemplate(BASE_DIR + ST_WITH_NODE_INTERFACE_DEF);
+ NodeType nodeTypeWithInterface = DataModelUtil.getNodeType(serviceTemplateWithInterfaceDef, NODE_TYPE_ID);
+ Map<String, Object> interfaces = nodeTypeWithInterface.getInterfaces();
+ Object interfaceObj = interfaces.get(INTERFACE_ID);
- private OperationDefinition createOperationDefinition() {
- OperationDefinition operationDefinition = new OperationDefinition();
- operationDefinition.setDescription(OPERATION_DESC);
- return operationDefinition;
- }
+ Optional<? extends InterfaceDefinition> actualInterfaceDefinition = DataModelUtil
+ .convertObjToInterfaceDefinition(
+ INTERFACE_ID, interfaceObj,
+ InterfaceDefinitionType.class);
- private InterfaceDefinitionType createInterfaceDefinitionType() {
- OperationDefinitionType operationDefinitionType = createOperationDefinitionType();
- InterfaceDefinitionType interfaceDefinitionType = new InterfaceDefinitionType();
- interfaceDefinitionType.setType(INTERFACE_TYPE_VALUE);
- interfaceDefinitionType.addOperation(OPERATION_START, operationDefinitionType);
- return interfaceDefinitionType;
- }
+ Assert.assertTrue(actualInterfaceDefinition.isPresent());
- private InterfaceDefinitionTemplate createInterfaceDefinitionTemplate() {
- OperationDefinitionTemplate operationDefinitionTemplate = createOperationDefinitionTemplate();
- InterfaceDefinitionTemplate interfaceDefinitionTemplate = new InterfaceDefinitionTemplate();
- interfaceDefinitionTemplate.addOperation(OPERATION_START, operationDefinitionTemplate);
- return interfaceDefinitionTemplate;
- }
+ InterfaceDefinitionType expectedInterfaceDefinitionType = createInterfaceDefinitionType();
+ Assert.assertEquals(expectedInterfaceDefinitionType, actualInterfaceDefinition.get());
+ }
- private OperationDefinitionTemplate createOperationDefinitionTemplate() {
- OperationDefinitionTemplate operationDefinitionTemplate = new OperationDefinitionTemplate();
- operationDefinitionTemplate.setDescription(OPERATION_DESC);
- Implementation implementation = new Implementation();
- implementation.setPrimary(PRIMARY_IMPL);
- List<String> dependencies = new ArrayList<>();
- dependencies.add(DEPENDENCY_NAME);
- implementation.setDependencies(dependencies);
- operationDefinitionTemplate.setImplementation(implementation);
- return operationDefinitionTemplate;
- }
+ @Test
+ public void testObjToInterfaceDefinitionTemplateConversion() throws IOException, ReflectiveOperationException {
+ ServiceTemplate serviceTemplateWithInterfaceDef = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE_DEF);
+ NodeTemplate nodeTemplateWithInterface =
+ DataModelUtil.getNodeTemplate(serviceTemplateWithInterfaceDef, NODE_TEMPLATE_ID);
+ Map<String, Object> interfaces = nodeTemplateWithInterface.getInterfaces();
+ Object interfaceObj = interfaces.get(INTERFACE_ID);
+
+ Optional<? extends InterfaceDefinition> actualInterfaceDefinition = DataModelUtil
+ .convertObjToInterfaceDefinition(
+ INTERFACE_ID, interfaceObj,
+ InterfaceDefinitionTemplate.class);
+
+ Assert.assertTrue(actualInterfaceDefinition.isPresent());
+ InterfaceDefinitionTemplate expectedInterfaceDefinitionTemplate = createInterfaceDefinitionTemplate();
+ Assert.assertEquals(expectedInterfaceDefinitionTemplate, actualInterfaceDefinition.get());
+ }
- private OperationDefinitionType createOperationDefinitionType() {
- OperationDefinitionType operationDefinitionType = new OperationDefinitionType();
- operationDefinitionType.setDescription(OPERATION_DESC);
- operationDefinitionType.setImplementation(IMPLEMENTATION_NAME);
- PropertyDefinition propertyDefinition = new PropertyDefinition();
- propertyDefinition.setType(STRING_TYPE);
- return operationDefinitionType;
- }
+ @Test
+ public void testYamlToServiceTemplateIncludingHeatExtend() throws IOException {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ try (InputStream yamlFile = toscaExtensionYamlUtil
+ .loadYamlFileIs(BASE_DIR + "/serviceTemplateHeatExtend.yaml")) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ ParameterDefinitionExt parameterDefinitionExt =
+ (ParameterDefinitionExt) serviceTemplateFromYaml.getTopology_template().getInputs().get("inParam1");
+ Assert.assertNotNull(parameterDefinitionExt.getLabel());
+ String backToYamlString = toscaExtensionYamlUtil.objectToYaml(serviceTemplateFromYaml);
+ Assert.assertNotNull(backToYamlString);
+ }
+ }
+
+ private ServiceTemplate getServiceTemplate(String inputPath) throws IOException {
+ try (InputStream yamlFile = yamlUtil.loadYamlFileIs(inputPath)) {
+ return yamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ }
+ }
+
+ private InterfaceType createInterfaceType() {
+ OperationDefinition operationDefinition = createOperationDefinition();
+ InterfaceType interfaceType = new InterfaceType();
+ interfaceType.setDescription("test interface");
+ interfaceType.addOperation(OPERATION_START, operationDefinition);
+ return interfaceType;
+ }
+
+ private OperationDefinition createOperationDefinition() {
+ OperationDefinition operationDefinition = new OperationDefinition();
+ operationDefinition.setDescription(OPERATION_DESC);
+ return operationDefinition;
+ }
+
+ private InterfaceDefinitionType createInterfaceDefinitionType() {
+ OperationDefinitionType operationDefinitionType = createOperationDefinitionType();
+ InterfaceDefinitionType interfaceDefinitionType = new InterfaceDefinitionType();
+ interfaceDefinitionType.setType(INTERFACE_TYPE_VALUE);
+ interfaceDefinitionType.addOperation(OPERATION_START, operationDefinitionType);
+ return interfaceDefinitionType;
+ }
+
+ private InterfaceDefinitionTemplate createInterfaceDefinitionTemplate() {
+ OperationDefinitionTemplate operationDefinitionTemplate = createOperationDefinitionTemplate();
+ InterfaceDefinitionTemplate interfaceDefinitionTemplate = new InterfaceDefinitionTemplate();
+ interfaceDefinitionTemplate.addOperation(OPERATION_START, operationDefinitionTemplate);
+ return interfaceDefinitionTemplate;
+ }
+
+ private OperationDefinitionTemplate createOperationDefinitionTemplate() {
+ OperationDefinitionTemplate operationDefinitionTemplate = new OperationDefinitionTemplate();
+ operationDefinitionTemplate.setDescription(OPERATION_DESC);
+ Implementation implementation = new Implementation();
+ implementation.setPrimary(PRIMARY_IMPL);
+ List<String> dependencies = new ArrayList<>();
+ dependencies.add(DEPENDENCY_NAME);
+ implementation.setDependencies(dependencies);
+ operationDefinitionTemplate.setImplementation(implementation);
+ return operationDefinitionTemplate;
+ }
+
+ private OperationDefinitionType createOperationDefinitionType() {
+ OperationDefinitionType operationDefinitionType = new OperationDefinitionType();
+ operationDefinitionType.setDescription(OPERATION_DESC);
+ operationDefinitionType.setImplementation(IMPLEMENTATION_NAME);
+ PropertyDefinition propertyDefinition = new PropertyDefinition();
+ propertyDefinition.setType(STRING_TYPE);
+ return operationDefinitionType;
+ }
}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilterTest.java b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilterTest.java
new file mode 100644
index 0000000000..a3fd56f3c6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/model/NodeFilterTest.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openecomp.sdc.tosca.datatypes.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.sdc.tosca.datatypes.model.CapabilityFilter;
+import org.onap.sdc.tosca.datatypes.model.Constraint;
+import org.onap.sdc.tosca.datatypes.model.NodeFilter;
+import org.onap.sdc.tosca.services.YamlUtil;
+
+/**
+ * @author KATYR
+ * @since May 10, 2018
+ */
+
+public class NodeFilterTest {
+
+ private static final String GET_INPUT = "get_input";
+
+ @Test
+ public void nodeFilterToYamlAndBack() {
+ NodeFilter nodeFilter = new NodeFilter();
+ nodeFilter.setProperties(createTestProperties());
+ nodeFilter.setCapabilities(createTestCapabilities());
+
+ String yamlString = new YamlUtil().objectToYaml(nodeFilter);
+
+ NodeFilter nodeFilterFromYaml =
+ new YamlUtil().yamlToObject(yamlString, NodeFilter.class);
+ Assert.assertNotNull(nodeFilterFromYaml);
+ }
+
+
+ private List<Map<String, List<Constraint>>> createTestProperties() {
+ List<Map<String, List<Constraint>>> propertyFilterDefinitions = new ArrayList<>();
+ Map<String, List<Constraint>> pfd1 = new HashMap<>();
+ List<Constraint> constraints = new ArrayList<>();
+ constraints.add(createConstraint("siteName", true));
+ constraints.add(createConstraint("siteName1", false));
+ pfd1.put("name1", constraints);
+
+
+ Map<String, List<Constraint>> pfd2 = new HashMap<>();
+ List<Constraint> constraints2 = new ArrayList<>();
+ constraints2.add(createConstraint("input", true));
+ constraints2.add(createConstraint("output", false));
+ pfd2.put("name", constraints2);
+
+
+ propertyFilterDefinitions.add(pfd1);
+ propertyFilterDefinitions.add(pfd2);
+
+ return propertyFilterDefinitions;
+
+ }
+
+ private Constraint createConstraint(String constraintParam, boolean createEqualityConstraint) {
+ Constraint constraint = new Constraint();
+
+ if (createEqualityConstraint) {
+ constraint.setEqual(createValue(constraintParam));
+ } else {
+ constraint.setGreater_than(createValue(constraintParam));
+
+ }
+ return constraint;
+ }
+
+ private static Map<String, String> createValue(String propertyName) {
+ Map<String, String> getPropertyMap = new HashMap<>();
+ getPropertyMap.put(GET_INPUT, propertyName);
+
+ return getPropertyMap;
+ }
+
+
+
+ private List<Map<String, CapabilityFilter>> createTestCapabilities() {
+ List<Map<String, CapabilityFilter>> capabilities = new ArrayList<>();
+ Map<String, CapabilityFilter> outerMap1 = new HashMap<>();
+ Map<String, List<Constraint>> innerMap1 = new HashMap<>();
+
+ CapabilityFilter filterProperties1 = new CapabilityFilter();
+ innerMap1.put("queue_model", createConstraints(3));
+ List<Map<String, List<Constraint>>> innerList1 = new ArrayList<>();
+ innerList1.add(innerMap1);
+ filterProperties1.setProperties(innerList1);
+ outerMap1.put("diffserv1", filterProperties1);
+
+ Map<String, CapabilityFilter> outerMap2 = new HashMap<>();
+ CapabilityFilter filterProperties2 = new CapabilityFilter();
+ Map<String, List<Constraint>> innerMap2 = new HashMap<>();
+ Map<String, List<Constraint>> innerMap3 = new HashMap<>();
+ innerMap2.put("queue_model", createConstraints(2));
+ innerMap3.put("queue_model2", createConstraints(2));
+ List<Map<String, List<Constraint>>> innerList2 = new ArrayList<>();
+ innerList2.add(innerMap2);
+ innerList2.add(innerMap3);
+ filterProperties2.setProperties(innerList2);
+ outerMap2.put("diffserv2", filterProperties2);
+
+ capabilities.add(outerMap1);
+ capabilities.add(outerMap2);
+
+
+ return capabilities;
+ }
+
+ private List<Constraint> createConstraints(int length) {
+ List<Constraint> constraints = new ArrayList<>();
+ for (int i = 0; i < length; i++) {
+ if (i / 2 == 0) {
+ constraints.add(createConstraint("siteName" + UUID.randomUUID().getMostSignificantBits(), true));
+ } else {
+ constraints.add(createConstraint("siteName" + UUID.randomUUID().getLeastSignificantBits(), false));
+ }
+
+ }
+
+ return constraints;
+
+ }
+
+}
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplate.yaml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplate.yaml
index a2bc15ea19..c93061996b 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplate.yaml
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplate.yaml
@@ -85,10 +85,10 @@ topology_template:
node: nodeA
relationship: relationB
node_filter:
- properties:
- propName1:
+ properties:
+ - propName1:
- greater_or_equal: 9
- propName2:
+ - propName2:
- min_length: 1
- max_length: 2
occurrences:
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateHeatExtend.yaml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateHeatExtend.yaml
index ac349313c2..d027a4aa5a 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateHeatExtend.yaml
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateHeatExtend.yaml
@@ -91,11 +91,11 @@ topology_template:
relationship: relationB
node_filter:
properties:
- propName1:
- - greater_or_equal: 9
- propName2:
- - min_length: 1
- - max_length: 2
+ - propName1:
+ - greater_or_equal: 9
+ - propName2:
+ - min_length: 1
+ - max_length: 2
occurrences:
- 1
- 2
@@ -109,10 +109,10 @@ topology_template:
num_cpus: '{ get_input: cpus }'
attributes:
num_cpus: '66'
- node_filter:
- properties:
- test1:
- - equal: 1 MB
+ node_filter:
+ properties:
+ -test1:
+ - equal: 1 MB
substitution_mappings:
node_type: myNodeType.node
capabilities: