From 1b5d34c4a9c62de7aee833529e9df160315c5f8f Mon Sep 17 00:00:00 2001 From: ottero Date: Sun, 17 Mar 2019 19:38:32 +0000 Subject: Adding custom headers capability to REST client For YANG PATCH requests to ODL to work, they need to have a Content- type header of application/yang.patch+json and should not have Accept as application/json Current REST client inserts a default header to the requests with this content: Content-Type: application/json Accept: application/json The solution was to add the possibility of sending custom headers alon- gside the other parameters. Change-Id: I2cf0cd2ef7b87f4f5a246d427dffafe266cb33f7 Issue-ID: CCSDK-926 Signed-off-by: ottero --- .../Definitions/activation-blueprint.json | 115 +++++++++++---------- .../Definitions/config-assign-pnf-mapping.json | 13 +++ .../Definitions/config-deploy-pnf-mapping.json | 13 +++ .../Definitions/data_types.json | 16 ++- .../Definitions/node_types.json | 107 +++++++++++++++++++ .../Definitions/resources_definition_types.json | 18 +++- .../Plans/CONFIG_configDeploy.xml | 15 +++ .../capability_restconf/Plans/CONFIG_configure.xml | 15 --- .../Scripts/python/RestconfAssignConfig.py | 38 ------- .../Scripts/python/RestconfConfigDeploy.py | 112 ++++++++++++++++++++ .../Scripts/python/RestconfConfigure.py | 38 ------- .../Templates/config-assign-pnf-mapping.json | 3 - .../config-assign-restconf-configlet-template.vtl | 56 ++++++---- .../config-deploy-restconf-mount-template.vtl | 14 +++ .../Templates/configure-pnf-mapping.json | 3 - .../configure-restconf-mount-template.vtl | 14 --- .../configure-restconf-unmount-template.vtl | 1 - 17 files changed, 403 insertions(+), 188 deletions(-) create mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-assign-pnf-mapping.json create mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-deploy-pnf-mapping.json create mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configDeploy.xml delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configure.xml delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfAssignConfig.py create mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigDeploy.py delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigure.py delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-pnf-mapping.json create mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-deploy-restconf-mount-template.vtl delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-pnf-mapping.json delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-mount-template.vtl delete mode 100644 components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-unmount-template.vtl (limited to 'components/model-catalog/blueprint-model') diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/activation-blueprint.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/activation-blueprint.json index 90b2e3ab..628a7d04 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/activation-blueprint.json +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/activation-blueprint.json @@ -19,17 +19,20 @@ }, { "file" : "Definitions/policy_types.json" } ], - "topology_template" : { - "inputs" : { - "serviceInstanceId" : { - "required" : true, - "type" : "string" - }, - "identifier" : { - "required" : true, - "type" : "string" + "dsl_definitions" : { + "config-assign-properties" : { + "resolution-key" : { + "get_input" : "resolution-key" } }, + "config-deploy-properties" : { + "resolution-key" : { + "get_input" : "resolution-key" + } + } + + }, + "topology_template" : { "workflows" : { "config-assign" : { "steps" : { @@ -42,6 +45,21 @@ } }, "inputs" : { + "resolution-key" : { + "required" : true, + "type" : "string" + }, + "artifact-name" : { + "required" : true, + "type" : "list", + "entry_schema" : { + "type" : "string" + } + }, + "store-result" : { + "required" : true, + "type" : "boolean" + }, "config-assign-properties" : { "description" : "Dynamic PropertyDefinition for workflow(config-assign).", "required" : true, @@ -49,21 +67,25 @@ } } }, - "configure" : { + "config-deploy" : { "steps" : { "activate-process" : { "description" : "Send a configlet to the pnf", - "target" : "configure-process", + "target" : "config-deploy-process", "activities" : [ { "call_operation" : "" } ] } }, "inputs" : { - "configure-properties" : { - "description" : "Dynamic PropertyDefinition for workflow(configure).", + "resolution-key" : { + "required" : true, + "type" : "string" + }, + "config-deploy-properties" : { + "description" : "Dynamic PropertyDefinition for workflow(config-deploy).", "required" : true, - "type" : "dt-configure-properties" + "type" : "dt-config-deploy-properties" } } } @@ -84,25 +106,24 @@ } } }, - - "config-assign" : { - "type" : "component-restconf-executor", + "type" : "component-resource-resolution", "interfaces" : { - "ComponentRestconfExecutor" : { + "ResourceResolutionComponent" : { "operations" : { "process" : { - "implementation" : { - "primary" : "component-script" - }, "inputs" : { - "script-type" : "jython", - "script-class-reference" : "Scripts/python/RestconfAssignConfig.py", - "instance-dependencies" : [ ] + "resolution-key" : { + "get_input" : "resolution-key" + }, + "store-result" : true, + "artifact-prefix-names" : ["config-assign"] }, "outputs" : { - "response-data" : "", - "status" : "" + "resource-assignment-params" : { + "get_attribute" : [ "SELF", "assignment-params" ] + }, + "status" : "success" } } } @@ -115,33 +136,26 @@ }, "config-assign-mapping" : { "type" : "artifact-mapping-resource", - "file" : "Templates/config-assign-pnf-mapping.json" - }, - "component-script" : { - "type" : "artifact-script-jython", - "file" : "Scripts/python/RestconfAssignConfig.py" + "file" : "Definitions/config-assign-pnf-mapping.json" } } }, - - - - "configure-process" : { + "config-deploy-process" : { "type" : "dg-generic", "properties" : { "content" : { - "get_artifact" : [ "SELF", "dg-configure-process" ] + "get_artifact" : [ "SELF", "dg-config-deploy-process" ] }, - "dependency-node-templates" : [ "configure" ] + "dependency-node-templates" : [ "config-deploy" ] }, "artifacts" : { "dg-config-assign-process" : { "type" : "artifact-directed-graph", - "file" : "Plans/CONFIG_configure.xml" + "file" : "Plans/CONFIG_configDeploy.xml" } } }, - "configure" : { + "config-deploy" : { "type" : "component-restconf-executor", "interfaces" : { "ComponentRestconfExecutor" : { @@ -152,36 +166,33 @@ }, "inputs" : { "script-type" : "jython", - "script-class-reference" : "Scripts/python/RestconfConfigure.py", - "instance-dependencies" : [ ] + "script-class-reference" : "Scripts/python/RestconfConfigDeploy.py", + "instance-dependencies" : [ ], + "dynamic-properties" : "*config-deploy-properties" }, "outputs" : { "response-data" : "", - "status" : "" + "status" : "success" } } } } }, "artifacts" : { - "configure-mount-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/configure-restconf-mount-template.vtl" - }, - "configure-unmount-template" : { + "config-deploy-template" : { "type" : "artifact-template-velocity", - "file" : "Templates/configure-restconf-unmount-template.vtl" + "file" : "Templates/config-deploy-restconf-mount-template.vtl" }, - "configure-mapping" : { + "config-deploy-mapping" : { "type" : "artifact-mapping-resource", - "file" : "Templates/configure-pnf-mapping.json" + "file" : "Definitions/config-deploy-pnf-mapping.json" }, "component-script" : { "type" : "artifact-script-jython", - "file" : "Scripts/python/RestconfConfigure.py" + "file" : "Scripts/python/RestconfConfigDeploy.py" } } } } } -} +} \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-assign-pnf-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-assign-pnf-mapping.json new file mode 100644 index 00000000..fc8e1bf6 --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-assign-pnf-mapping.json @@ -0,0 +1,13 @@ +[ + { + "name": "entity", + "input-param": true, + "property": { + "type": "json" + }, + "dictionary-name": "entity", + "dictionary-source": "input", + "dependencies": [ + ] + } +] diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-deploy-pnf-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-deploy-pnf-mapping.json new file mode 100644 index 00000000..fc8e1bf6 --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/config-deploy-pnf-mapping.json @@ -0,0 +1,13 @@ +[ + { + "name": "entity", + "input-param": true, + "property": { + "type": "json" + }, + "dictionary-name": "entity", + "dictionary-source": "input", + "dependencies": [ + ] + } +] diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/data_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/data_types.json index 9f35eef8..e5aa763b 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/data_types.json +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/data_types.json @@ -3,13 +3,21 @@ "dt-config-assign-properties" : { "description" : "Dynamic DataType definition for workflow(config-assign).", "version" : "1.0.0", - "properties" : { }, + "properties" : { + "entity" : { + "type" : "json" + } + }, "derived_from" : "tosca.datatypes.Dynamic" }, - "dt-configure-properties" : { - "description" : "Dynamic DataType definition for workflow(configure).", + "dt-config-deploy-properties" : { + "description" : "Dynamic DataType definition for workflow(config-deploy).", "version" : "1.0.0", - "properties" : { }, + "properties" : { + "entity" : { + "type" : "json" + } + }, "derived_from" : "tosca.datatypes.Dynamic" } } diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/node_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/node_types.json index be3bd319..ed7c580b 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/node_types.json +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/node_types.json @@ -1,5 +1,84 @@ { "node_types" : { + "component-resource-resolution" : { + "description" : "This is Resource Assignment Component API", + "version" : "1.0.0", + "attributes" : { + "assignment-params" : { + "required" : true, + "type" : "string" + } + }, + "capabilities" : { + "component-node" : { + "type" : "tosca.capabilities.Node" + } + }, + "interfaces" : { + "ResourceResolutionComponent" : { + "operations" : { + "process" : { + "inputs" : { + "resolution-key" : { + "description" : "Key for service instance related correlation.", + "required" : false, + "type" : "string" + }, + "store-result" : { + "description" : "Whether or not to store the output.", + "required" : false, + "type" : "boolean" + }, + "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, Unique Id for the request.", + "required" : true, + "type" : "string" + }, + "resource-id" : { + "description" : "Resource Id.", + "required" : false, + "type" : "string" + }, + "action-name" : { + "description" : "Action Name of the process", + "required" : false, + "type" : "string" + }, + "dynamic-properties" : { + "description" : "Dynamic Json Content or DSL Json reference.", + "required" : false, + "type" : "json" + } + }, + "outputs" : { + "resource-assignment-params" : { + "required" : true, + "type" : "string" + }, + "status" : { + "required" : true, + "type" : "string" + } + } + } + } + } + }, + "derived_from" : "tosca.nodes.Component" + }, "component-restconf-executor" : { "description" : "This is Restconf Transaction Configuration Component API", "version" : "1.0.0", @@ -34,6 +113,11 @@ "entry_schema" : { "type" : "string" } + }, + "dynamic-properties" : { + "description" : "Dynamic Json Content or DSL Json reference.", + "required" : false, + "type" : "json" } }, "outputs" : { @@ -73,6 +157,24 @@ }, "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" + }, "tosca.nodes.Component" : { "description" : "This is default Component Node", "version" : "1.0.0", @@ -82,6 +184,11 @@ "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" } } } \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/resources_definition_types.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/resources_definition_types.json index 6f31cf5a..98a73b10 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/resources_definition_types.json +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Definitions/resources_definition_types.json @@ -1 +1,17 @@ -{ } \ No newline at end of file +{ + "entity" : { + "tags" : "entity", + "name" : "entity", + "property" : { + "description" : "entity", + "type" : "json" + }, + "updated-by" : "Rodrigo Ottero ", + "sources" : { + "input" : { + "type" : "source-input", + "properties" : { } + } + } + } +} \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configDeploy.xml b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configDeploy.xml new file mode 100644 index 00000000..fbed3d57 --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configDeploy.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configure.xml b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configure.xml deleted file mode 100644 index c48ffbed..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Plans/CONFIG_configure.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfAssignConfig.py b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfAssignConfig.py deleted file mode 100644 index 36dd32ff..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfAssignConfig.py +++ /dev/null @@ -1,38 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - - -from org.onap.ccsdk.apps.blueprintsprocessor.functions.restconf.executor import \ - RestconfComponentFunction - - -class RestconfAssignConfig(RestconfComponentFunction): - - - def process(self, execution_request): - # create instances of the needed objects - # retrieve any needed information not present on the request, like pnf ip - # create the configlet - # persist the configlet - # end - print("process", execution_request) - - - def recover(self, runtime_exception, execution_request): - print("recover") - return None \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigDeploy.py b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigDeploy.py new file mode 100644 index 00000000..33f9400e --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigDeploy.py @@ -0,0 +1,112 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +from time import sleep + +from org.onap.ccsdk.apps.blueprintsprocessor.functions.restconf.executor import \ + RestconfComponentFunction +from java.lang import Exception as JavaException + + +class RestconfConfigDeploy(RestconfComponentFunction): + + log = globals()["log"] + seconds_to_sleep = 5 + base_mount_url = "restconf/config/network-topology:network-topology/topology/topology-netconf/node/" + server_identifier = "sdncodl" + configlet_template_name = "config-assign" + + def process(self, execution_request): + + self.log.info("Started execution of process method") + try: + self.log.info("getting resolution-key") + resolution_key = self.getDynamicProperties("resolution-key").asText() + self.log.info("resolution_key: {}", resolution_key) + + self.log.info("getting pnf-id") + pnf_id = execution_request.payload.get("config-deploy-request").get("config-deploy-properties").get("entity").get("pnf-id") + pnf_id = str(pnf_id).strip('\"') + self.log.info("pnf-id: {}", pnf_id) + + self.log.info("mounting device {}", pnf_id) + self.mount(pnf_id) + + self.log.info("sleeping for {} seconds", self.seconds_to_sleep) + sleep(self.seconds_to_sleep) + + try: + self.log.info("configuring device {}", pnf_id) + self.apply_configuration(pnf_id, resolution_key, self.configlet_template_name) + except Exception, err: + self.log.error("an error occurred while configuring device {}", err) + raise err + finally: + self.log.info("unmounting device {}", pnf_id) + self.unmount(pnf_id) + + self.log.info("Ended execution of process method") + + except JavaException, err: + self.log.error("Java Exception in the script", err) + raise err + except Exception, err: + self.log.error("Python Exception in the script", err) + raise err + + def mount(self, pnf_id): + self.log.info("meshing mount payload") + mount_payload = self.resolveAndGenerateMessage("config-deploy-mapping", "config-deploy-template") + self.log.info("mount payload: \n {}", mount_payload) + + # defining custom header + headers = { + "Content-Type": "application/xml" + } + + url = self.base_mount_url + str(pnf_id) + self.log.info("sending mount request, url: {}", url) + web_client_service = self.restClientService(self.server_identifier) + web_client_service.exchangeResource("PUT", url, mount_payload, headers) + + def unmount(self, pnf_id): + url = self.base_mount_url + str(pnf_id) + self.log.info("sending unmount request, url: {}", url) + web_client_service = self.restClientService(self.server_identifier) + web_client_service.exchangeResource("DELETE", url, "") + + def apply_configuration(self, pnf_id, resolution_key, template_name): + self.log.info("Retrieving configlet from database (resolution-key: {}, template_name: {}", + resolution_key, template_name) + configlet = self.resolveFromDatabase(resolution_key, template_name) + self.log.info("Configlet: {}", configlet) + + # defining custom header + headers = { + "Content-Type": "application/yang.patch+json" + } + + url = "restconf/config/network-topology:network-topology/topology/topology-netconf/node/" + pnf_id \ + + "/yang-ext:mount/mynetconf:netconflist" + self.log.info("sending patch request, url: {}", url) + web_client_service = self.restClientService(self.server_identifier) + result = web_client_service.exchangeResource("PATCH", url, configlet, headers) + self.log.info("Configuration application result: {}", result) + + def recover(self, runtime_exception, execution_request): + self.log.info("Recover method, no code to execute") + return None diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigure.py b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigure.py deleted file mode 100644 index c584baa9..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Scripts/python/RestconfConfigure.py +++ /dev/null @@ -1,38 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - - -from org.onap.ccsdk.apps.blueprintsprocessor.functions.restconf.executor import \ - RestconfComponentFunction - - -class RestconfConfigure(RestconfComponentFunction): - - - def process(self, execution_request): - # create instances of the needed objects - # retrieve any needed information not present on the request, like pnf ip - # retrieve the configlet - # send the configlet - # end - print("process", execution_request) - - - def recover(self, runtime_exception, execution_request): - print("recover") - return None diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-pnf-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-pnf-mapping.json deleted file mode 100644 index 41b42e67..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-pnf-mapping.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - -] diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-restconf-configlet-template.vtl b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-restconf-configlet-template.vtl index e3d7a671..3812380e 100644 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-restconf-configlet-template.vtl +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-assign-restconf-configlet-template.vtl @@ -1,19 +1,37 @@ - -example-patch -Example patch - - edit1 - create - /car-entry - - - 0 - - - - - edit2 - delete - /car-entry/0 - - +{ + "ietf-restconf:yang-patch":{ + "patch-id":"patch-1", + "edit":[ + { + "edit-id":"edit1", + "operation":"merge", + "target":"/", + "value":{ + "netconflist":{ + "netconf":[ + { + "netconf-id":"40", + "netconf-param":"4040" + } + ] + } + } + }, + { + "edit-id":"edit2", + "operation":"merge", + "target":"/", + "value":{ + "netconflist":{ + "netconf":[ + { + "netconf-id":"50", + "netconf-param":"98765" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-deploy-restconf-mount-template.vtl b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-deploy-restconf-mount-template.vtl new file mode 100644 index 00000000..93517765 --- /dev/null +++ b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/config-deploy-restconf-mount-template.vtl @@ -0,0 +1,14 @@ + + $entity.pnf-id + + ODL-private-key + netconf + + $entity.pnf-name + 6513 + false + + TLS + + 5 + diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-pnf-mapping.json b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-pnf-mapping.json deleted file mode 100644 index 41b42e67..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-pnf-mapping.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - -] diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-mount-template.vtl b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-mount-template.vtl deleted file mode 100644 index a899aa45..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-mount-template.vtl +++ /dev/null @@ -1,14 +0,0 @@ - - $pnf-id - - ODL-private-key - netconf - - $pnf-ip - 6513 - false - - TLS - - 5 - diff --git a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-unmount-template.vtl b/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-unmount-template.vtl deleted file mode 100644 index a0990367..00000000 --- a/components/model-catalog/blueprint-model/test-blueprint/capability_restconf/Templates/configure-restconf-unmount-template.vtl +++ /dev/null @@ -1 +0,0 @@ -TBD -- cgit 1.2.3-korg