summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/activation-blueprint.json8
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json (renamed from components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json)0
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/node_types.json287
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/resources_definition_types.json34
-rw-r--r--components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Scripts/python/NetconfRpcExample.py16
-rw-r--r--components/model-catalog/definition-type/starter-type/node_type/component-netconf-executor.json30
-rw-r--r--components/model-catalog/definition-type/starter-type/node_type/component-resource-resolution.json24
-rw-r--r--components/model-catalog/definition-type/starter-type/node_type/source-capability.json16
-rw-r--r--components/model-catalog/definition-type/starter-type/node_type/vnf-netconf-device.json2
-rwxr-xr-xcomponents/model-catalog/resource-dictionary/starter-dictionary/hostname.json14
-rw-r--r--components/scripts/python/ccsdk_netconf/netconfclient.py54
11 files changed, 279 insertions, 206 deletions
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 162411f8..c21f4c9d 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/Templates/hostname-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json
index 1e02d690..1e02d690 100644
--- a/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Templates/hostname-mapping.json
+++ b/components/model-catalog/blueprint-model/test-blueprint/baseconfiguration/Definitions/hostname-mapping.json
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 d3093d9c..3912a472 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 d2d32e81..ace1a942 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 <ks220y@att.com>",
+ "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 <ks220y@att.com>",
+ "name": "service-instance-id",
"property": {
"description": "To be provided",
"type": "string"
},
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
"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 <ks220y@att.com>",
+ "name": "vnf-id",
"property": {
"description": "vnf-id",
"type": "string"
},
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
"sources": {
"input": {
"type": "source-input",
@@ -38,13 +44,13 @@
}
},
"vnf_name": {
- "name": "vnf_name",
"tags": "vnf_name",
- "updated-by": "Singal, Kapil <ks220y@att.com>",
+ "name": "vnf_name",
"property": {
"description": "vnf_name",
"type": "string"
},
+ "updated-by": "Singal, Kapil <ks220y@att.com>",
"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 26c66b66..94cd72a4 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/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 b59a7384..85b69b09 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 d01660ef..7e3065ae 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 2bdd7d57..4d9488cb 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 c6f512df..dcc47b36 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 00000000..f60751ed
--- /dev/null
+++ b/components/model-catalog/resource-dictionary/starter-dictionary/hostname.json
@@ -0,0 +1,14 @@
+{
+ "name": "hostname",
+ "tags": "hostname",
+ "updated-by" : "Singal, Kapil <ks220y@att.com>",
+ "property": {
+ "description" : "hostname",
+ "type": "string"
+ },
+ "sources": {
+ "input": {
+ "type": "source-input"
+ }
+ }
+}
diff --git a/components/scripts/python/ccsdk_netconf/netconfclient.py b/components/scripts/python/ccsdk_netconf/netconfclient.py
index 341aae73..dd7d2dc2 100644
--- a/components/scripts/python/ccsdk_netconf/netconfclient.py
+++ b/components/scripts/python/ccsdk_netconf/netconfclient.py
@@ -1,6 +1,7 @@
from netconf_constant import CONFIG_TARGET_RUNNING, CONFIG_TARGET_CANDIDATE, \
CONFIG_DEFAULT_OPERATION_REPLACE
+
class NetconfClient:
def __init__(self, log, component_function, requirement_name):
@@ -19,54 +20,33 @@ class NetconfClient:
self.netconf_session.connect()
return
- def lock(self, message_id, config_target=CONFIG_TARGET_CANDIDATE,
- message_timeout=30):
- device_response = self.netconf_rpc_client.lock(message_id, config_target,
- message_timeout)
+ def lock(self, config_target=CONFIG_TARGET_CANDIDATE):
+ device_response = self.netconf_rpc_client.lock(config_target)
return device_response
- def get_config(self, message_id, filter="",
- config_target=CONFIG_TARGET_RUNNING, message_timeout=30):
- device_response = self.netconf_rpc_client.getConfig(message_id, filter,
- config_target,
- message_timeout)
+ def get_config(self, filter="", config_target=CONFIG_TARGET_RUNNING):
+ device_response = self.netconf_rpc_client.getConfig(filter, config_target)
return device_response
- def edit_config(self, message_id, message_content, lock=False,
- config_target=CONFIG_TARGET_CANDIDATE,
- edit_default_peration=CONFIG_DEFAULT_OPERATION_REPLACE,
- deleteConfig=False, validate=False, commit=False, discard_change=False,
- unlock=False, message_timeout=30):
- device_response = self.netconf_rpc_client.editConfig(message_id,
- message_content, lock,
+ def edit_config(self, message_content, config_target=CONFIG_TARGET_CANDIDATE,
+ edit_default_peration=CONFIG_DEFAULT_OPERATION_REPLACE):
+ device_response = self.netconf_rpc_client.editConfig(message_content,
config_target,
- edit_default_peration,
- deleteConfig, validate,
- commit, discard_change,
- unlock,
- message_timeout)
+ edit_default_peration)
return device_response
- def commit(self, message_id, discard_change=True,
- message_timeout=30):
- device_response = self.netconf_rpc_client.commit(message_id, discard_change,
- message_timeout)
+ def commit(self):
+ device_response = self.netconf_rpc_client.commit()
return device_response
- def unlock(self, message_id, config_target=CONFIG_TARGET_CANDIDATE,
- message_timeout=30):
- device_response = self.netconf_rpc_client.unLock(message_id, config_target,
- message_timeout)
+ def unlock(self, config_target=CONFIG_TARGET_CANDIDATE):
+ device_response = self.netconf_rpc_client.unLock(config_target)
return device_response
- def validate(self, message_id, config_target=CONFIG_TARGET_CANDIDATE,
- message_timeout=30):
- device_response = self.netconf_rpc_client.validate(message_id,
- config_target,
- message_timeout)
+ def validate(self, config_target=CONFIG_TARGET_CANDIDATE):
+ device_response = self.netconf_rpc_client.validate(config_target)
return device_response
- def discard_change(self, message_id, message_timeout=30):
- device_response = self.netconf_rpc_client.discardConfig(message_id,
- message_timeout)
+ def discard_change(self):
+ device_response = self.netconf_rpc_client.discardConfig()
return device_response