From a69b9f500b4f15f78e468cce8561af193a7eb83b Mon Sep 17 00:00:00 2001 From: Alexis de Talhouët Date: Mon, 18 Feb 2019 08:08:24 -0500 Subject: Simplify NetconfRpcService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I6daac25c272ab6b437c07602167a76a2d61816db Issue-ID: CCSDK-790 Signed-off-by: Alexis de Talhouët --- .../Definitions/activation-blueprint.json | 8 +- .../Definitions/hostname-mapping.json | 13 + .../baseconfiguration/Definitions/node_types.json | 287 ++++++++++++++------- .../Definitions/resources_definition_types.json | 34 ++- .../Scripts/python/NetconfRpcExample.py | 16 +- .../Templates/hostname-mapping.json | 13 - .../node_type/component-netconf-executor.json | 30 ++- .../node_type/component-resource-resolution.json | 24 +- .../starter-type/node_type/source-capability.json | 16 -- .../starter-type/node_type/vnf-netconf-device.json | 2 +- .../starter-dictionary/hostname.json | 14 + 11 files changed, 275 insertions(+), 182 deletions(-) create mode 100644 components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json create mode 100755 components/model-catalog/resource-dictionary/starter-dictionary/hostname.json (limited to 'components/model-catalog') diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/activation-blueprint.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/activation-blueprint.json index 162411f8d..c21f4c9d0 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/activation-blueprint.json +++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/activation-blueprint.json @@ -218,11 +218,9 @@ "primary": "component-script" }, "inputs": { + "script-type": "jython", + "script-class-reference": "Scripts/python/NetconfRpcExample.py", "instance-dependencies": [ - - ], - "artifact-prefix-names": [ - "hostname" ] }, "outputs": { @@ -247,7 +245,7 @@ }, "hostname-mapping": { "type": "artifact-mapping-resource", - "file": "Templates/hostname-mapping.json" + "file": "Definitions/hostname-mapping.json" }, "component-script": { "type": "artifact-script-jython", diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json new file mode 100644 index 000000000..1e02d6900 --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json @@ -0,0 +1,13 @@ +[ + { + "name": "hostname", + "input-param": true, + "property": { + "type": "string" + }, + "dictionary-name": "hostname", + "dictionary-source": "input", + "dependencies": [ + ] + } +] diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/node_types.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/node_types.json index d3093d9c3..3912a472d 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/node_types.json +++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/node_types.json @@ -1,48 +1,44 @@ { "node_types": { - "dg-generic": { - "description": "This is Generic Directed Graph Type", + "component-jython-executor": { + "description": "This is Jython Execution Component.", "version": "1.0.0", - "properties": { - "content": { - "required": true, - "type": "string" - }, - "dependency-node-templates": { - "required": true, - "description": "Dependent Step Components", - "type": "list", - "entry_schema": { - "type": "string" + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, + "interfaces": { + "ComponentJythonExecutor": { + "operations": { + "process": { + "inputs": { + "instance-dependencies": { + "description": "Instance Names to Inject to Jython Script.", + "required": true, + "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.DG" - }, - "tosca.nodes.Component": { - "description": "This is Resource Assignment Component API", - "version": "1.0.0", - "derived_from": "tosca.nodes.Root" - }, - "tosca.nodes.DG": { - "description": "This is Directed Graph Node Type", - "version": "1.0.0", - "derived_from": "tosca.nodes.Root" - }, - "tosca.nodes.ResourceSource" : { - "description" : "TOSCA base type for Resource Sources", - "version" : "1.0.0", - "derived_from" : "tosca.nodes.Root" - }, - "tosca.nodes.Vnf" : { - "description" : "This is VNF Node Type", - "version" : "1.0.0", - "derived_from" : "tosca.nodes.Root" - }, - "tosca.nodes.component.Jython": { - "description": "This is Resource Assignment Jython Component API", - "version": "1.0.0", - "derived_from": "tosca.nodes.Root" + "derived_from": "tosca.nodes.component.Jython" }, "component-netconf-executor": { "description": "This is Netconf Transaction Configuration Component API", @@ -64,17 +60,29 @@ "operations": { "process": { "inputs": { - "instance-dependencies": { - "description": "Instance Names to Inject to Jython Script.", + "script-type": { + "description": "Script type, kotlin type is supported", "required": true, - "type": "list", - "entry_schema": { - "type": "string" - } + "type": "string", + "constraints": [ + { + "valid_values": [ + "kotlin", + "jython", + "internal" + ] + } + ], + "default": "internal" }, - "artifact-prefix-names": { - "required": false, - "description": "Template , Resource Assignment Artifact Prefix names", + "script-class-reference": { + "description": "Kotlin Script class name or jython script name.", + "required": true, + "type": "string" + }, + "instance-dependencies": { + "description": "Instance names to inject to Jython or Kotlin Script.", + "required": true, "type": "list", "entry_schema": { "type": "string" @@ -108,37 +116,43 @@ "type": "string" } }, + "capabilities": { + "component-node": { + "type": "tosca.capabilities.Node" + } + }, "interfaces": { "ResourceResolutionComponent": { "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" - }, "resource-type": { + "description": "Request type.", "required": false, "type": "string" }, + "artifact-prefix-names": { + "description": "Template , Resource Assignment Artifact Prefix names", + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + }, "request-id": { - "description": "Request Id used to store the generated configuration, in the database along with the template-name", + "description": "Request Id, Unique Id for the request.", "required": true, "type": "string" }, "resource-id": { - "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present", - "required": true, + "description": "Resource Id.", + "required": false, "type": "string" }, - "artifact-prefix-names": { + "action-name": { + "description": "Action Name of the process", "required": false, - "description": "Template , Resource Assignment Artifact Prefix names", - "type": "list", - "entry_schema": { - "type": "string" - } + "type": "string" } }, "outputs": { @@ -157,45 +171,128 @@ }, "derived_from": "tosca.nodes.Component" }, - "component-jython-executor": { - "description": "This is Jython Execution Component.", + "dg-generic": { + "description": "This is Generic Directed Graph Type", "version": "1.0.0", - "capabilities": { - "component-node": { - "type": "tosca.capabilities.Node" + "properties": { + "content": { + "required": true, + "type": "string" + }, + "dependency-node-templates": { + "description": "Dependent Step Components NodeTemplate name.", + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } } }, - "interfaces": { - "ComponentJythonExecutor": { - "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.DG" + }, + "source-input": { + "description": "This is Input Resource Source Node Type", + "version": "1.0.0", + "properties": { + "key": { + "required": false, + "type": "string" + }, + "key-dependencies": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" + } + } + }, + "derived_from": "tosca.nodes.ResourceSource" + }, + "source-rest": { + "description": "This is Rest Resource Source Node Type", + "version": "1.0.0", + "properties": { + "type": { + "required": false, + "type": "string", + "constraints": [ + { + "valid_values": [ + "JSON" + ] + } + ], + "default": "JSON" + }, + "url-path": { + "required": true, + "type": "string" + }, + "path": { + "required": true, + "type": "string" + }, + "expression-type": { + "required": false, + "type": "string", + "constraints": [ + { + "valid_values": [ + "JSON_PATH", + "JSON_POINTER" + ] } + ], + "default": "JSON_PATH" + }, + "input-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "output-key-mapping": { + "required": false, + "type": "map", + "entry_schema": { + "type": "string" + } + }, + "key-dependencies": { + "required": true, + "type": "list", + "entry_schema": { + "type": "string" } } }, - "derived_from": "tosca.nodes.component.Jython" + "derived_from": "tosca.nodes.ResourceSource" + }, + "tosca.nodes.Component": { + "description": "This is default Component Node", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "tosca.nodes.DG": { + "description": "This is Directed Graph Node Type", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "tosca.nodes.ResourceSource": { + "description": "TOSCA base type for Resource Sources", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "tosca.nodes.Vnf": { + "description": "This is VNF Node Type", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" + }, + "tosca.nodes.component.Jython": { + "description": "This is Jython Component", + "version": "1.0.0", + "derived_from": "tosca.nodes.Root" }, "vnf-netconf-device": { "description": "This is VNF Device with Netconf Capability", @@ -215,7 +312,7 @@ "default": "sdnc-tacacs" }, "source": { - "required": true, + "required": false, "type": "string", "default": "npm" }, diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/resources_definition_types.json index d2d32e81e..ace1a9425 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/resources_definition_types.json +++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/resources_definition_types.json @@ -1,35 +1,41 @@ { + "hostname": { + "tags": "hostname", + "name": "hostname", + "property": { + "description": "hostname", + "type": "string" + }, + "updated-by": "Singal, Kapil ", + "sources": { + "input": { + "type": "source-input" + } + } + }, "service-instance-id": { - "name": "service-instance-id", "tags": "service-instance-id, tosca.datatypes.Root, data_type", - "updated-by": "Singal, Kapil ", + "name": "service-instance-id", "property": { "description": "To be provided", "type": "string" }, + "updated-by": "Singal, Kapil ", "sources": { "input": { "type": "source-input", "properties": {} - }, - "capability": { - "type": "source-capability", - "properties": { - "type": "JYTHON-COMPONENT", - "instance-name": "SampleRAProcessor", - "instance-dependencies": [] - } } } }, "vnf-id": { - "name": "vnf-id", "tags": "vnf-id", - "updated-by": "Singal, Kapil ", + "name": "vnf-id", "property": { "description": "vnf-id", "type": "string" }, + "updated-by": "Singal, Kapil ", "sources": { "input": { "type": "source-input", @@ -38,13 +44,13 @@ } }, "vnf_name": { - "name": "vnf_name", "tags": "vnf_name", - "updated-by": "Singal, Kapil ", + "name": "vnf_name", "property": { "description": "vnf_name", "type": "string" }, + "updated-by": "Singal, Kapil ", "sources": { "primary-config-data": { "type": "source-rest", diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Scripts/python/NetconfRpcExample.py b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Scripts/python/NetconfRpcExample.py index 26c66b667..94cd72a48 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Scripts/python/NetconfRpcExample.py +++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Scripts/python/NetconfRpcExample.py @@ -15,6 +15,7 @@ import netconf_constant from common import ResolutionHelper from java.lang import Exception as JavaException +from netconfclient import NetconfClient from org.onap.ccsdk.apps.blueprintsprocessor.functions.netconf.executor import \ NetconfComponentFunction @@ -31,17 +32,16 @@ class NetconfRpcExample(NetconfComponentFunction): payload = rr.resolve_and_generate_message_from_template_prefix("hostname") nc.connect() - response = nc.lock(message_id="lock-123") + response = nc.lock() if not response.isSuccess(): log.error(response.errorMessage) - nc.edit_config(message_id="edit-config-1", message_content=payload, - edit_default_peration="none") - # nc.validate(message_id="validate-123") - # nc.discard_change(message_id="discard-123") - nc.validate(message_id="validate-123") - nc.commit(message_id="commit-123") - nc.unlock(message_id="unlock-123") + nc.edit_config(message_content=payload, edit_default_peration="none") + nc.validate() + nc.discard_change() + nc.validate() + nc.commit() + nc.unlock() nc.disconnect() except JavaException, err: diff --git a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json deleted file mode 100644 index 1e02d6900..000000000 --- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "name": "hostname", - "input-param": true, - "property": { - "type": "string" - }, - "dictionary-name": "hostname", - "dictionary-source": "input", - "dependencies": [ - ] - } -] 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 b59a7384b..85b69b09d 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 @@ -18,17 +18,29 @@ "operations": { "process": { "inputs": { - "instance-dependencies": { + "script-type": { + "description": "Script type, kotlin type is supported", "required": true, - "description": "Instance Names to Inject to Jython Script.", - "type": "list", - "entry_schema": { - "type": "string" - } + "type": "string", + "default": "internal", + "constraints": [ + { + "valid_values": [ + "kotlin", + "jython", + "internal" + ] + } + ] }, - "artifact-prefix-names": { - "required": false, - "description": "Template , Resource Assignment Artifact Prefix names", + "script-class-reference": { + "description": "Kotlin Script class name or jython script name.", + "required": true, + "type": "string" + }, + "instance-dependencies": { + "required": true, + "description": "Instance names to inject to Jython or Kotlin Script.", "type": "list", "entry_schema": { "type": "string" diff --git a/components/model-catalog/definition-type/starter-type/node_type/component-resource-resolution.json b/components/model-catalog/definition-type/starter-type/node_type/component-resource-resolution.json index d01660efc..7e3065ae2 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/component-resource-resolution.json +++ b/components/model-catalog/definition-type/starter-type/node_type/component-resource-resolution.json @@ -17,31 +17,13 @@ "operations": { "process": { "inputs": { - "template-name": { - "description": "Service Template Name.", - "required": true, - "type": "string" - }, - "template-version": { - "description": "Service Template Version.", - "required": true, - "type": "string" - }, "resource-type": { "description": "Request type.", - "required": true, + "required": false, "type": "string" }, - "template-names": { - "description": "Name of the artifact Node Templates, to get the template Content.", - "required": true, - "type": "list", - "entry_schema": { - "type": "string" - } - }, "artifact-prefix-names": { - "required": false, + "required": true, "description": "Template , Resource Assignment Artifact Prefix names", "type": "list", "entry_schema": { @@ -50,7 +32,7 @@ }, "request-id": { "description": "Request Id, Unique Id for the request.", - "required": false, + "required": true, "type": "string" }, "resource-id": { diff --git a/components/model-catalog/definition-type/starter-type/node_type/source-capability.json b/components/model-catalog/definition-type/starter-type/node_type/source-capability.json index 2bdd7d574..4d9488cbc 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/source-capability.json +++ b/components/model-catalog/definition-type/starter-type/node_type/source-capability.json @@ -29,22 +29,6 @@ "type": "string" } }, - "input-key-mapping": { - "description": "Context name to input parameters name mapping.", - "required": false, - "type": "map", - "entry_schema": { - "type": "string" - } - }, - "output-key-mapping": { - "description": "Context name to output parameters name mapping.", - "required": false, - "type": "map", - "entry_schema": { - "type": "string" - } - }, "key-dependencies": { "description": "Resource Resolution dependency dictionary names.", "required": true, diff --git a/components/model-catalog/definition-type/starter-type/node_type/vnf-netconf-device.json b/components/model-catalog/definition-type/starter-type/node_type/vnf-netconf-device.json index c6f512dfb..dcc47b362 100644 --- a/components/model-catalog/definition-type/starter-type/node_type/vnf-netconf-device.json +++ b/components/model-catalog/definition-type/starter-type/node_type/vnf-netconf-device.json @@ -16,7 +16,7 @@ "default": "sdnc-tacacs" }, "source": { - "required": true, + "required": false, "type": "string", "default": "npm" }, diff --git a/components/model-catalog/resource-dictionary/starter-dictionary/hostname.json b/components/model-catalog/resource-dictionary/starter-dictionary/hostname.json new file mode 100755 index 000000000..f60751edc --- /dev/null +++ b/components/model-catalog/resource-dictionary/starter-dictionary/hostname.json @@ -0,0 +1,14 @@ +{ + "name": "hostname", + "tags": "hostname", + "updated-by" : "Singal, Kapil ", + "property": { + "description" : "hostname", + "type": "string" + }, + "sources": { + "input": { + "type": "source-input" + } + } +} -- cgit 1.2.3-korg