aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-tosca-lib
diff options
context:
space:
mode:
authortalio <tali.orenbach@amdocs.com>2018-03-15 14:46:20 +0200
committertalio <tali.orenbach@amdocs.com>2018-03-15 16:54:28 +0200
commit8b6be264a6f4b658632b7e263737eaae92e337aa (patch)
tree6b45776c5c577c77d5da25e4764b854f2a5cfc2c /openecomp-be/lib/openecomp-tosca-lib
parent704247137bdba671e55c0ebde7e226fff422b608 (diff)
Interface definition
Add separate Interface definition for node type and node template Change-Id: I0c4446227dd096959158fd4a4741cb5aa043e495 Issue-ID: SDC-1043 Signed-off-by: talio <tali.orenbach@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-tosca-lib')
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java29
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/java/org/openecomp/sdc/tosca/datatypes/ToscaModelTest.java28
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithInterfaceAndOperation.yaml1
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/test/resources/mock/model/serviceTemplateWithNodeTemplateInterface.yaml11
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: