From 8b6be264a6f4b658632b7e263737eaae92e337aa Mon Sep 17 00:00:00 2001 From: talio Date: Thu, 15 Mar 2018 14:46:20 +0200 Subject: Interface definition Add separate Interface definition for node type and node template Change-Id: I0c4446227dd096959158fd4a4741cb5aa043e495 Issue-ID: SDC-1043 Signed-off-by: talio --- .../sdc/tosca/services/DataModelUtil.java | 29 +++++++++++----------- .../sdc/tosca/datatypes/ToscaModelTest.java | 28 ++++++++++++--------- .../serviceTemplateWithInterfaceAndOperation.yaml | 1 - .../serviceTemplateWithNodeTemplateInterface.yaml | 11 ++++---- 4 files changed, 35 insertions(+), 34 deletions(-) (limited to 'openecomp-be/lib/openecomp-tosca-lib/src') diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java index aef23be03f..6b1046bb45 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java +++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java @@ -40,6 +40,7 @@ import org.openecomp.sdc.tosca.datatypes.model.EntrySchema; import org.openecomp.sdc.tosca.datatypes.model.GroupDefinition; import org.openecomp.sdc.tosca.datatypes.model.Import; import org.openecomp.sdc.tosca.datatypes.model.InterfaceDefinition; +import org.openecomp.sdc.tosca.datatypes.model.InterfaceDefinitionType; import org.openecomp.sdc.tosca.datatypes.model.InterfaceType; import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; import org.openecomp.sdc.tosca.datatypes.model.NodeType; @@ -1212,33 +1213,32 @@ public class DataModelUtil { return convertedInterfaceTypes; } - public static Optional convertObjToInterfaceDefinition( - String interfaceId, Object interfaceObj) - throws CoreException { + public static Optional + convertObjToInterfaceDefinition( + String interfaceId, Object interfaceObj, Class interfaceClass) { try { - Optional interfaceDefinition = - CommonUtil.createObjectUsingSetters(interfaceObj, InterfaceDefinition.class); - interfaceDefinition.ifPresent(interfaceDefinition1 -> updateInterfaceDefinitionOperations( + Optional interfaceDefinition = + CommonUtil.createObjectUsingSetters(interfaceObj, interfaceClass); + interfaceDefinition.ifPresent(interfaceDefinitionType1 -> updateInterfaceDefinitionOperations( CommonUtil.getObjectAsMap(interfaceObj), - interfaceDefinition1)); + interfaceDefinitionType1)); return interfaceDefinition; } catch (Exception ex) { throw new CoreException( - new CreateInterfaceObjectErrorBuilder(InterfaceDefinition.class.getName(), interfaceId, + new CreateInterfaceObjectErrorBuilder(InterfaceDefinitionType.class.getName(), interfaceId, ex.getMessage()).build()); } } public static Optional convertInterfaceDefinitionToObj( - InterfaceDefinition interfaceDefinition) { - return converInetrfaceToToscaInterfaceObj(interfaceDefinition); + InterfaceDefinitionType interfaceDefinitionType) { + return converInetrfaceToToscaInterfaceObj(interfaceDefinitionType); } public static Optional convertObjToInterfaceType(String interfaceId, - Object interfaceObj) - throws CoreException { + Object interfaceObj) { try { Optional interfaceType = CommonUtil.createObjectUsingSetters(interfaceObj, InterfaceType.class); @@ -1289,8 +1289,7 @@ public class DataModelUtil { private static Optional createOperation(String propertyName, Object operationCandidate, - Set fieldNames) - throws CoreException { + Set fieldNames) { if (!fieldNames.contains(propertyName)) { try { return CommonUtil.createObjectUsingSetters(operationCandidate, OperationDefinition.class); @@ -1306,7 +1305,7 @@ public class DataModelUtil { private static void updateInterfaceDefinitionOperations(Map interfaceAsMap, InterfaceDefinition interfaceDefinition) { - Set fieldNames = CommonUtil.getClassFieldNames(InterfaceDefinition.class); + Set fieldNames = CommonUtil.getClassFieldNames(InterfaceDefinitionType.class); for (Map.Entry entry : interfaceAsMap.entrySet()) { Optional operationDefinition = 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 31dc3ab035..ced108380e 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 @@ -30,11 +30,13 @@ import org.openecomp.sdc.tosca.datatypes.model.Constraint; import org.openecomp.sdc.tosca.datatypes.model.Directive; import org.openecomp.sdc.tosca.datatypes.model.Import; import org.openecomp.sdc.tosca.datatypes.model.InterfaceDefinition; +import org.openecomp.sdc.tosca.datatypes.model.InterfaceDefinitionType; import org.openecomp.sdc.tosca.datatypes.model.InterfaceType; import org.openecomp.sdc.tosca.datatypes.model.NodeFilter; import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate; import org.openecomp.sdc.tosca.datatypes.model.NodeType; import org.openecomp.sdc.tosca.datatypes.model.OperationDefinition; +import org.openecomp.sdc.tosca.datatypes.model.OperationDefinitionType; import org.openecomp.sdc.tosca.datatypes.model.ParameterDefinition; import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition; import org.openecomp.sdc.tosca.datatypes.model.PropertyType; @@ -374,8 +376,9 @@ public class ToscaModelTest { NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, NODE_TEMPLATE_ID); - InterfaceDefinition interfaceDefinition = getInterfaceDefinition(); - Optional interfaceObj = DataModelUtil.convertInterfaceDefinitionToObj(interfaceDefinition); + InterfaceDefinitionType interfaceDefinitionType = getInterfaceDefinition(); + Optional interfaceObj = DataModelUtil.convertInterfaceDefinitionToObj( + interfaceDefinitionType); Assert.assertTrue(interfaceObj.isPresent()); Map interfaces = new HashMap<>(); @@ -396,13 +399,15 @@ public class ToscaModelTest { DataModelUtil.getNodeTemplate(serviceTemplateWithInterfaceDef, NODE_TEMPLATE_ID); Map interfaces = nodeTemplateWithInterface.getInterfaces(); Object interfaceObj = interfaces.get(INTERFACE_ID); - Optional actualInterfaceDefinition = - DataModelUtil.convertObjToInterfaceDefinition(INTERFACE_ID, interfaceObj); + + Optional actualInterfaceDefinition = + DataModelUtil.convertObjToInterfaceDefinition(INTERFACE_ID, interfaceObj, + InterfaceDefinitionType.class); Assert.assertTrue(actualInterfaceDefinition.isPresent()); - InterfaceDefinition expectedInterfaceDefinition = getInterfaceDefinition(); - Assert.assertEquals(expectedInterfaceDefinition, actualInterfaceDefinition.get()); + InterfaceDefinitionType expectedInterfaceDefinitionType = getInterfaceDefinition(); + Assert.assertEquals(expectedInterfaceDefinitionType, actualInterfaceDefinition.get()); } @Test @@ -438,16 +443,15 @@ public class ToscaModelTest { private OperationDefinition getOperationDefinition() { OperationDefinition operationDefinition = new OperationDefinition(); operationDefinition.setDescription("start operation"); - operationDefinition.setImplementation("start.sh"); return operationDefinition; } - private InterfaceDefinition getInterfaceDefinition() { + private InterfaceDefinitionType getInterfaceDefinition() { OperationDefinition operationDefinition = getOperationDefinition(); - InterfaceDefinition interfaceDefinition = new InterfaceDefinition(); - interfaceDefinition.setType("test interface"); - interfaceDefinition.addOperation("start", operationDefinition); - return interfaceDefinition; + InterfaceDefinitionType interfaceDefinitionType = new InterfaceDefinitionType(); + interfaceDefinitionType.setType("test interface"); + interfaceDefinitionType.addOperation("start", operationDefinition); + return interfaceDefinitionType; } } diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithInterfaceAndOperation.yaml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithInterfaceAndOperation.yaml index 90376b7205..9da35df8a2 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithInterfaceAndOperation.yaml +++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithInterfaceAndOperation.yaml @@ -20,7 +20,6 @@ interface_types: description: test interface start: description: start operation - implementation: start.sh node_types: compute_node_type: derived_from: tosca.nodes.Root diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithNodeTemplateInterface.yaml b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithNodeTemplateInterface.yaml index 6df071c570..3f63ee9825 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithNodeTemplateInterface.yaml +++ b/openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithNodeTemplateInterface.yaml @@ -73,12 +73,6 @@ topology_template: directives: - selectable - substitutable - interfaces: - inter_1: - type: test interface - start: - description: start operation - implementation: start.sh properties: prop2: '{ get_input: my_mysql_rootpw }' prop1: abcd @@ -104,6 +98,11 @@ topology_template: capability: capA node: nodeA relationship: relationB + interfaces: + inter_1: + type: test interface + start: + description: start operation substitution_mappings: node_type: myNodeType.node capabilities: -- cgit 1.2.3-korg