diff options
author | Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com> | 2018-11-20 12:20:30 -0500 |
---|---|---|
committer | Dan Timoney <dtimoney@att.com> | 2018-11-30 20:22:00 +0000 |
commit | 7af6a923ef993bed14d0fc5f769c3766c94b88b3 (patch) | |
tree | ff56cb783a01b95e1e8d563f74fb8ce0a9ef3079 | |
parent | 421823b343881c6d1690be8b1082a878764635f2 (diff) |
Add Jython Component model and validation logics.
Change-Id: I2bdba0016a41e16198d60be68dff68d1ce7ad13a
Issue-ID: CCSDK-696
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
16 files changed, 186 insertions, 112 deletions
diff --git a/components/core/load/model_type/node_type/component-resource-assignment.json b/components/core/load/model_type/node_type/component-resource-assignment.json index 1389bc328..2a9035619 100644 --- a/components/core/load/model_type/node_type/component-resource-assignment.json +++ b/components/core/load/model_type/node_type/component-resource-assignment.json @@ -7,7 +7,7 @@ }
},
"interfaces": {
- "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {
+ "ResourceAssignmentComponent": {
"operations": {
"process": {
"inputs": {
diff --git a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintConstants.kt b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintConstants.kt index 84d2befc5..a41284187 100644 --- a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintConstants.kt +++ b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintConstants.kt @@ -93,6 +93,7 @@ object BluePrintConstants { const val MODEL_TYPE_NODES_COMPONENT_BUNDLE: String = "tosca.nodes.component.Bundle"
const val MODEL_TYPE_NODES_COMPONENT_SCRIPT: String = "tosca.nodes.component.Script"
const val MODEL_TYPE_NODES_COMPONENT_PYTHON: String = "tosca.nodes.component.Python"
+ const val MODEL_TYPE_NODES_COMPONENT_JYTHON: String = "tosca.nodes.component.Jython"
const val MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT: String = "tosca.nodes.component.JavaScript"
const val MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION = "tosca.artifacts.Implementation"
diff --git a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintTypes.kt b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintTypes.kt index a971898d3..64797ed40 100644 --- a/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintTypes.kt +++ b/components/core/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/BluePrintTypes.kt @@ -37,6 +37,7 @@ object BluePrintTypes { BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_BUNDLE,
BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_SCRIPT,
BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_PYTHON,
+ BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JYTHON,
BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT
)
diff --git a/components/core/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeServiceTest.kt b/components/core/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeServiceTest.kt index 19c6c2f9d..2f519802d 100644 --- a/components/core/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeServiceTest.kt +++ b/components/core/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/core/service/BluePrintRuntimeServiceTest.kt @@ -69,7 +69,7 @@ class BluePrintRuntimeServiceTest { "data/default-context.json", executionContext)
val inContext: MutableMap<String, JsonNode> = bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationInputs("resource-assignment",
- "DefaultComponentNode", "process")
+ "ResourceAssignmentComponent", "process")
assertNotNull(inContext, "Failed to populate interface input property values")
assertEquals(inContext["action-name"], jsonNodeFromObject("sample-action"), "Failed to populate parameter action-name")
@@ -86,14 +86,14 @@ class BluePrintRuntimeServiceTest { bluePrintRuntimeService.setNodeTemplateAttributeValue("resource-assignment", "assignment-params", NullNode.getInstance())
bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationOutputs("resource-assignment",
- "DefaultComponentNode", "process")
+ "ResourceAssignmentComponent", "process")
val outputStatus = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment",
- "DefaultComponentNode", "process", "status")
+ "ResourceAssignmentComponent", "process", "status")
assertEquals("success".asJsonPrimitive(), outputStatus, "Failed to get operation property status")
val outputParams = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment",
- "DefaultComponentNode", "process", "resource-assignment-params")
+ "ResourceAssignmentComponent", "process", "resource-assignment-params")
assertEquals(NullNode.getInstance(), outputParams, "Failed to get operation property resource-assignment-params")
}
diff --git a/components/model-catalog/blueprint-model/service-blueprint/vFW/Definitions/vFW_spinup.json b/components/model-catalog/blueprint-model/service-blueprint/vFW/Definitions/vFW_spinup.json index d5416c0ea..1137c1d58 100644 --- a/components/model-catalog/blueprint-model/service-blueprint/vFW/Definitions/vFW_spinup.json +++ b/components/model-catalog/blueprint-model/service-blueprint/vFW/Definitions/vFW_spinup.json @@ -40,7 +40,7 @@ "resource-assignment-ra-component": { "type": "component-resource-assignment", "interfaces": { - "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": { + "ResourceAssignmentComponent": { "operations": { "process": { "inputs": { @@ -3337,7 +3337,7 @@ } }, "interfaces": { - "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": { + "ResourceAssignmentComponent": { "operations": { "process": { "inputs": { diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json index e067a7dfd..269fd0cf0 100644 --- a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json +++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/activation-blueprint.json @@ -9,7 +9,13 @@ }, "imports": [ { - "file": "Definitions/types.json" + "file": "Definitions/data-types.json" + }, + { + "file": "Definitions/node-types.json" + }, + { + "file": "Definitions/artifact-types.json" } ], "topology_template": { @@ -64,7 +70,7 @@ "request-id": "1234" }, "interfaces": { - "DefaultComponentNode": { + "ResourceAssignmentComponent": { "operations": { "process": { "inputs": { @@ -121,7 +127,7 @@ "request-id": "1234" }, "interfaces": { - "DefaultComponentNode": { + "ResourceAssignmentComponent": { "operations": { "process": { "implementation": { @@ -142,7 +148,31 @@ }, "artifacts": { "component-script": { - "type": "artifact-script-python", + "type": "artifact-script-jython", + "file": "Scripts/SamplePythonComponentNode.py" + } + } + }, + "activate-jython": { + "type": "component-jython-executor", + "interfaces": { + "JythonExecutorComponent": { + "operations": { + "process": { + "implementation": { + "primary": "component-script" + }, + "outputs": { + "response-data": "", + "status": "" + } + } + } + } + }, + "artifacts": { + "component-script": { + "type": "artifact-script-jython", "file": "Scripts/SamplePythonComponentNode.py" } } @@ -174,7 +204,7 @@ "target": "resource-assignment", "activities": [ { - "call_operation": "ResourceAssignmentNode.process" + "call_operation": "ResourceAssignmentComponent.process" } ] } @@ -205,7 +235,7 @@ "target": "resource-assignment", "activities": [ { - "call_operation": "ResourceAssignmentNode.process" + "call_operation": "ResourceAssignmentComponent.process" } ] } diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/artifact-types.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/artifact-types.json new file mode 100644 index 000000000..d741d151e --- /dev/null +++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/artifact-types.json @@ -0,0 +1,45 @@ +{ + "artifact_types": { + "artifact-template-velocity": { + "description": "Velocity Template used for Configuration", + "version": "1.0.0", + "file_ext": [ + "vtl" + ], + "derived_from": "tosca.artifacts.Implementation" + }, + "artifact-mapping-resource": { + "description": "Velocity Template Resource Mapping File used along with Configuration template", + "version": "1.0.0", + "file_ext": [ + "json" + ], + "derived_from": "tosca.artifacts.Implementation" + }, + "artifact-script-jython": { + "description": "Jython Script File", + "version": "1.0.0", + "file_ext": [ + "py" + ], + "derived_from": "tosca.artifacts.Implementation" + }, + "artifact-directed-graph": { + "description": "Directed Graph File", + "version": "1.0.0", + "file_ext": [ + "json", + "xml" + ], + "derived_from": "tosca.artifacts.Implementation" + }, + "artifact-component-jar": { + "description": "Component Jar", + "version": "1.0.0", + "file_ext": [ + "jar" + ], + "derived_from": "tosca.artifacts.Implementation" + } + } +}
\ No newline at end of file diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/data-types.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/data-types.json new file mode 100644 index 000000000..6ca1ffde2 --- /dev/null +++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/data-types.json @@ -0,0 +1,24 @@ +{ + "data_types": { + "sample-property": { + "description": "This is sample data type", + "version": "1.0.0", + "properties": { + "content": { + "required": false, + "type": "string" + }, + "process-name": { + "required": false, + "type": "string" + }, + "version": { + "required": false, + "type": "string", + "default": "LATEST" + } + }, + "derived_from": "tosca.datatypes.Root" + } + } +}
\ No newline at end of file diff --git a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/types.json b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/node-types.json index 056d5f182..139ebb1a3 100644 --- a/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/types.json +++ b/components/model-catalog/blueprint-model/starter-blueprint/baseconfiguration/Definitions/node-types.json @@ -1,55 +1,4 @@ { - "artifact_types": { - "artifact-template-velocity": { - "description": " Velocity Template used for Configuration", - "version": "1.0.0", - "file_ext": [ - "vtl" - ], - "derived_from": "tosca.artifacts.Implementation" - }, - "artifact-mapping-resource": { - "description": " Velocity Template Resource Mapping File used along with Configuration template", - "version": "1.0.0", - "file_ext": [ - "json" - ], - "derived_from": "tosca.artifacts.Implementation" - }, - "artifact-script-kotlin": { - "description": " Kotlin Script Template used for Configuration", - "version": "1.0.0", - "file_ext": [ - "kt" - ], - "derived_from": "tosca.artifacts.Implementation" - }, - "artifact-script-python": { - "description": " Kotlin Script Template used for Configuration", - "version": "1.0.0", - "file_ext": [ - "py" - ], - "derived_from": "tosca.artifacts.Implementation" - }, - "artifact-directed-graph": { - "description": "Directed Graph File", - "version": "1.0.0", - "file_ext": [ - "json", - "xml" - ], - "derived_from": "tosca.artifacts.Implementation" - }, - "artifact-component-jar": { - "description": "Component Jar", - "version": "1.0.0", - "file_ext": [ - "jar" - ], - "derived_from": "tosca.artifacts.Implementation" - } - }, "node_types": { "dg-activate": { "description": "This is BPMN Activate node type", @@ -81,8 +30,8 @@ "version": "1.0.0", "derived_from": "tosca.nodes.Root" }, - "tosca.nodes.component.Python": { - "description": "This is Resource Assignment Python Component API", + "tosca.nodes.component.Jython": { + "description": "This is Resource Assignment Jython Component API", "version": "1.0.0", "derived_from": "tosca.nodes.Root" }, @@ -97,7 +46,7 @@ } }, "interfaces": { - "DefaultComponentNode": { + "ResourceAssignmentComponent": { "operations": { "process": { "inputs": { @@ -147,33 +96,26 @@ }, "derived_from": "tosca.nodes.Component" }, - "component-resource-assignment-python": { - "description": "This is Resource Assignment Component API", + "component-jython-executor": { + "description": "This is Jython Execution Component.", "version": "1.0.0", - "properties": { - "request-id": { - "description": "Request Id used to store the generated configuration, in the database along with the template-name", - "required": true, - "type": "string" + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" } }, "interfaces": { - "DefaultComponentNode": { + "JythonExecutorComponent": { "operations": { "process": { - "inputs": { - "action-name": { - "description": "Recipe Name to get from Database, Either (message & mask-info ) or ( resource-id & resource-type & action-name & template-name ) should be present. Message will be given higest priority", - "required": false, - "type": "string" - } - }, "outputs": { - "resource-assignment-params": { - "required": true, + "response-data": { + "description": "Execution Response Data in JSON format.", + "required": false, "type": "string" }, "status": { + "description": "Status of the Component Execution ( success or failure )", "required": true, "type": "string" } @@ -182,29 +124,7 @@ } } }, - "derived_from": "tosca.nodes.component.Python" - } - }, - "data_types": { - "sample-property": { - "description": "This is sample data type", - "version": "1.0.0", - "properties": { - "content": { - "required": false, - "type": "string" - }, - "process-name": { - "required": false, - "type": "string" - }, - "version": { - "required": false, - "type": "string", - "default": "LATEST" - } - }, - "derived_from": "tosca.datatypes.Root" + "derived_from": "tosca.nodes.component.Jython" } } }
\ No newline at end of file diff --git a/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-jython.json b/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-jython.json new file mode 100644 index 000000000..969662ab7 --- /dev/null +++ b/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-jython.json @@ -0,0 +1,8 @@ +{
+ "description": "Jython Script File",
+ "version": "1.0.0",
+ "file_ext": [
+ "py"
+ ],
+ "derived_from": "tosca.artifacts.Implementation"
+}
\ No newline at end of file diff --git a/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-python.json b/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-python.json index b48d2b628..b42f7156a 100644 --- a/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-python.json +++ b/components/model-catalog/definition-type/starter-type/artifact_type/artifact-script-python.json @@ -1,5 +1,5 @@ {
- "description": " Kotlin Script Template used for Configuration",
+ "description": "Python Script file",
"version": "1.0.0",
"file_ext": [
"py"
diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-config-generator.json b/components/model-catalog/definition-type/starter-type/node_type/component-config-generator.json index 764f9e890..ba142600f 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/component-config-generator.json +++ b/components/model-catalog/definition-type/starter-type/node_type/component-config-generator.json @@ -7,7 +7,7 @@ }
},
"interfaces": {
- "org-openecomp-sdnc-config-generator-service-ConfigGeneratorNode": {
+ "ConfigGeneratorComponent": {
"operations": {
"process": {
"inputs": {
diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-jython-executor.json b/components/model-catalog/definition-type/starter-type/node_type/component-jython-executor.json new file mode 100644 index 000000000..4959a9dd1 --- /dev/null +++ b/components/model-catalog/definition-type/starter-type/node_type/component-jython-executor.json @@ -0,0 +1,40 @@ +{ + "description": "This is Jython Execution Component.", + "version": "1.0.0", + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "JythonExecutorComponent": { + "operations": { + "process": { + "inputs": { + "instance-dependencies": { + "required": true, + "description": "Instance Names to Inject to Jython Script.", + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "outputs": { + "response-data": { + "description": "Execution Response Data in JSON format.", + "required": false, + "type": "string" + }, + "status": { + "description": "Status of the Component Execution ( success or failure )", + "required": true, + "type": "string" + } + } + } + } + } + }, + "derived_from": "tosca.nodes.component.Jython" +}
\ No newline at end of file diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-netconf-executor.json b/components/model-catalog/definition-type/starter-type/node_type/component-netconf-executor.json index 240caf3fc..7e1d81343 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/component-netconf-executor.json +++ b/components/model-catalog/definition-type/starter-type/node_type/component-netconf-executor.json @@ -14,7 +14,7 @@ }
},
"interfaces": {
- "org-openecomp-sdnc-netconf-adaptor-service-NetconfExecutorNode": {
+ "NetconfExecutorComponent": {
"operations": {
"process": {
"inputs": {
@@ -75,5 +75,5 @@ }
}
},
- "derived_from": "tosca.nodes.Component"
+ "derived_from": "tosca.nodes.component.Jython"
}
\ No newline at end of file diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-resource-assignment.json b/components/model-catalog/definition-type/starter-type/node_type/component-resource-assignment.json index d424a8e43..a29a875cb 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/component-resource-assignment.json +++ b/components/model-catalog/definition-type/starter-type/node_type/component-resource-assignment.json @@ -7,7 +7,7 @@ }
},
"interfaces": {
- "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {
+ "ResourceAssignmentComponent": {
"operations": {
"process": {
"inputs": {
diff --git a/components/model-catalog/definition-type/starter-type/node_type/tosca.nodes.component.Jython.json b/components/model-catalog/definition-type/starter-type/node_type/tosca.nodes.component.Jython.json new file mode 100644 index 000000000..8e194f6dd --- /dev/null +++ b/components/model-catalog/definition-type/starter-type/node_type/tosca.nodes.component.Jython.json @@ -0,0 +1,5 @@ +{
+ "description": "This is Jython Component",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
+}
\ No newline at end of file |