diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-lib')
4 files changed, 35 insertions, 34 deletions
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<InterfaceDefinition> convertObjToInterfaceDefinition( - String interfaceId, Object interfaceObj) - throws CoreException { + public static <T extends InterfaceDefinition> Optional<T> + convertObjToInterfaceDefinition( + String interfaceId, Object interfaceObj, Class<T> interfaceClass) { try { - Optional<InterfaceDefinition> interfaceDefinition = - CommonUtil.createObjectUsingSetters(interfaceObj, InterfaceDefinition.class); - interfaceDefinition.ifPresent(interfaceDefinition1 -> updateInterfaceDefinitionOperations( + Optional<T> 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<Object> convertInterfaceDefinitionToObj( - InterfaceDefinition interfaceDefinition) { - return converInetrfaceToToscaInterfaceObj(interfaceDefinition); + InterfaceDefinitionType interfaceDefinitionType) { + return converInetrfaceToToscaInterfaceObj(interfaceDefinitionType); } public static Optional<InterfaceType> convertObjToInterfaceType(String interfaceId, - Object interfaceObj) - throws CoreException { + Object interfaceObj) { try { Optional<InterfaceType> interfaceType = CommonUtil.createObjectUsingSetters(interfaceObj, InterfaceType.class); @@ -1289,8 +1289,7 @@ public class DataModelUtil { private static Optional<OperationDefinition> createOperation(String propertyName, Object operationCandidate, - Set<String> fieldNames) - throws CoreException { + Set<String> fieldNames) { if (!fieldNames.contains(propertyName)) { try { return CommonUtil.createObjectUsingSetters(operationCandidate, OperationDefinition.class); @@ -1306,7 +1305,7 @@ public class DataModelUtil { private static void updateInterfaceDefinitionOperations(Map<String, Object> interfaceAsMap, InterfaceDefinition interfaceDefinition) { - Set<String> fieldNames = CommonUtil.getClassFieldNames(InterfaceDefinition.class); + Set<String> fieldNames = CommonUtil.getClassFieldNames(InterfaceDefinitionType.class); for (Map.Entry<String, Object> entry : interfaceAsMap.entrySet()) { Optional<OperationDefinition> 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<Object> interfaceObj = DataModelUtil.convertInterfaceDefinitionToObj(interfaceDefinition); + InterfaceDefinitionType interfaceDefinitionType = getInterfaceDefinition(); + Optional<Object> interfaceObj = DataModelUtil.convertInterfaceDefinitionToObj( + interfaceDefinitionType); Assert.assertTrue(interfaceObj.isPresent()); Map<String, Object> interfaces = new HashMap<>(); @@ -396,13 +399,15 @@ public class ToscaModelTest { DataModelUtil.getNodeTemplate(serviceTemplateWithInterfaceDef, NODE_TEMPLATE_ID); Map<String, Object> interfaces = nodeTemplateWithInterface.getInterfaces(); Object interfaceObj = interfaces.get(INTERFACE_ID); - Optional<InterfaceDefinition> actualInterfaceDefinition = - DataModelUtil.convertObjToInterfaceDefinition(INTERFACE_ID, interfaceObj); + + Optional<? extends InterfaceDefinition> 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: |