- Created by gaurav.agrawal, last modified on Nov 26, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 3 Current »
Restconf protocol overview
RESTCONF is a REST like protocol based on HTTP [RFC7230] for configuring data defined in YANG version 1 [RFC6020] or YANG version 1.1 [RFC7950], using the datastore concepts defined in the Network Configuration Protocol (NETCONF) [RFC6241].
NETCONF defines configuration datastores and a set of Create, Read, Update, Delete (CRUD) operations that can be used to access these datastores.
NETCONF also defines a protocol for invoking these operations. The YANG language defines the syntax and semantics of datastore content, configuration, state data, RPC operations, and event notifications.
RESTCONF uses HTTP methods to provide CRUD operations on a conceptual datastore containing YANG-defined data. Request and response data can be in XML or JSON format. XML has structure according to yang by XML-YANG and JSON by JSON-YANG.
RESTCONF Client overview
RESTCONF client based on RESTCONF protocol enables following:
CRUD operation (via RestconfApiCallNode)
Notification handling (via RestconfDiscoveryNode)
Restconf Client Components
RestconfApiCallNode Overview:
RestconfApiCallNode combines the simplicity of HTTP with the predictability and automation potential of a schema-driven API. It uses YANG guided serializers/deserializers which uses YANG to determine schema and automates the serialization/deserialization to/from external formats like JSON/XML, thereby avoiding the need to write handcrafted templates for JSON/XML.
RestconfApiCallNode comparison with RestApiCallNode:
RestconfApiCallNode is meant to be used only for scenarios wherein the Server (3rd party Controllers or Devices) exposes RESTCONF based API’s for REST based API’s still RestApiCallNode is supposed to be used.
Advantages of using RestconfApiCallNode for RESTCONF API’s
Avoid the efforts required to write and maintain JSON/XML templates as required in case of RestApiCallNode.
With RESTCONF it’s possible to perform CRUD operation on whole data tree, on a subtree or even on a single leaf. With RestconfApiCallNode it’s possible to do all this without need to write multiple templates as required in case of RestApiCallNode currently.
RestconfDiscoveryNode:
The RESTCONF protocol supports YANG-defined event notifications. The solution preserves aspects of NETCONF event notifications [RFC5277] while utilizing the Server-Sent Events [W3C.REC-eventsource-20150203] transport strategy. It’s based on pub-sub mechanism as defined below:
RestconfDiscoveryNode enables the supports YANG-defined event notifications based on following standards:
Mechanisms to support event subscription and push are defined in [I-D.draft-ietf-netconf-subscribed-notifications].
Enhancements to [I-D.draft-ietf-netconf-subscribed-notifications] which enable YANG datastore subscription and push are defined in [I-D.ietf-netconf-yang-push].
[I-D.ietf-netconf-restconf-notif] provides a transport specification for these protocols over RESTCONF [RFC8040] and HTTP
(Kindly Note: Basic support is available as part of Casablanca)
Usage:
RestconfApiCallNode:
It is implemented as a plugin in CCSDK (org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode), below mentioned are details about the usage of execute node and preparation of context memory for JSON/XML payload auto generation.
Execute node for RestconfApiCallNode
Following are the list of Mandatory parameters for execute node.
restapiUrl: URL to send request to server also this is used for resource identification in a YANG schema.
httpMethod: HTTP method to use while sending the request.
dirPath: Directory path which contains YANG files (main and dependent)
Sample Execute Node:
JSON/XML Payload Formation:
Data in the context memory is matched against the YANG schema to auto-generate JSON/XML payload for RESTCONF. Parameters which needs to be encoded to JSON/XML needs to follow the XPATH notation with "/" being replaced by "."
Example illustrating the mechanism:
YANG schema corresponding to device
Highlighted leafs are the ones which needs to be present in final payload. In order to accomplish the same following two parameters should be available in DG context memory.
- ietf-eth-tran-service:etht-svc.globals.etht-svc-bandwidth-profiles[0].bandwidth-profile-type
- ietf-eth-tran-service:etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-port-id
Generated Payload will look like below
CCVPN Example DG for reference
[ { "id": "ac367f83.6a6e9", "type": "dgstart", "name": "DGSTART", "outputs": 1, "x": 288.4998779296875, "y": 64, "z": "a630608e.55155", "wires": [ [ "cafc31f.7b6f5d" ] ] }, { "id": "cafc31f.7b6f5d", "type": "service-logic", "name": "GENERIC-RESOURCE-API ${project.version}", "module": "GENERIC-RESOURCE-API", "version": "${project.version}", "comments": "", "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>", "outputs": 1, "x": 182.49988174438477, "y": 136.0000171661377, "z": "a630608e.55155", "wires": [ [ "1d4e148a.1f403b" ] ] }, { "id": "1d4e148a.1f403b", "type": "method", "name": "sotn-attachment-topology-operation-activate", "xml": "<method rpc='sotn-attachment-topology-operation-activate' mode='sync'>\n", "comments": "", "outputs": 1, "x": 170.5, "y": 224, "z": "a630608e.55155", "wires": [ [ "6d2a45c5.97476c" ] ] }, { "id": "6d2a45c5.97476c", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">\n", "atomic": "false", "comments": "", "outputs": 1, "x": 186.5, "y": 779.0002446174622, "z": "a630608e.55155", "wires": [ [ "88bd1a4e.0483c8", "e9ede6ec.eb9618", "f58b3cd2.0a337", "985db758.4d2dc8", "4577185b.575d28", "ca1f4c8a.000c3", "acef449e.390468", "d5cae55f.1bceb8", "8f59d2e8.986c8", "1627bf22.2c9d81", "b717f7e4.e0f2b8", "a9150c85.b2b24", "efe34b33.5d0ee8", "9b79c2c4.ec3e1", "2d63fb91.84b774", "268f39f4.638ca6", "10b1de1c.d8e392", "61537c3b.fab714", "31e22c6e.dde384", "7eb0d271.4548bc" ] ] }, { "id": "88bd1a4e.0483c8", "type": "set", "name": "set tmp.ar.allotted-resource-id,etc", "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n", "comments": "", "x": 583.4934387207031, "y": 177.9934868812561, "z": "a630608e.55155", "wires": [] }, { "id": "b91214bd.d38ec8", "type": "comment", "name": "set tmp ar-id to fetch resource from MDSAL", "info": "", "comments": "", "x": 597.9536285400391, "y": 131.02528285980225, "z": "a630608e.55155", "wires": [] }, { "id": "e9ede6ec.eb9618", "type": "set", "name": "set tmp.ar.self-link", "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/connection-attachment-topology/'` \" />\n\n", "comments": "", "x": 537.4933776855469, "y": 270.99349212646484, "z": "a630608e.55155", "wires": [] }, { "id": "4577185b.575d28", "type": "execute", "name": "execute Properties", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n", "comments": "", "outputs": 1, "x": 543.7552680969238, "y": 358.6602210998535, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "f58b3cd2.0a337", "type": "execute", "name": "generate allotted-resource tmp.ar-url", "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.connection-attachment-allottedresource`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n", "comments": "", "outputs": 1, "x": 590.7553253173828, "y": 446.6602249145508, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "2e98ed0b.feaf42", "type": "comment", "name": "GET connection-attachment-allotted-resource from mdsal", "info": "", "comments": "", "x": 622.8081359863281, "y": 566.5386590957642, "z": "a630608e.55155", "wires": [] }, { "id": "945d555d.85ef08", "type": "comment", "name": "Used for setting output to API Handler", "info": "", "comments": "", "x": 576.9932861328125, "y": 226.993501663208, "z": "a630608e.55155", "wires": [] }, { "id": "7d915e6f.251c9", "type": "comment", "name": "Obtain different URL, template location etc", "info": "For saving resource information to MDSAL & for AAI", "comments": "", "x": 594.9932518005371, "y": 312.8823823928833, "z": "a630608e.55155", "wires": [] }, { "id": "55e66514.7175ec", "type": "comment", "name": "Used to Get AR by id to MDSAL, same as self-link", "info": "", "comments": "", "x": 620.9932708740234, "y": 399.8823413848877, "z": "a630608e.55155", "wires": [] }, { "id": "6a9a3716.ceb668", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1097.166669845581, "y": 594.9999847412109, "z": "a630608e.55155", "wires": [ [ "1f974c54.c29194" ] ] }, { "id": "1f974c54.c29194", "type": "block", "name": "block: atomic", "xml": "<block atomic=\"true\">\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1241.166748046875, "y": 552.4999027252197, "z": "a630608e.55155", "wires": [ [ "51c7093c.18c8d8" ] ] }, { "id": "51c7093c.18c8d8", "type": "switchNode", "name": "switch cr length", "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n", "comments": "", "outputs": 1, "x": 1410.0241718292236, "y": 550.1190738677979, "z": "a630608e.55155", "wires": [ [ "7a129891.701088", "61cb2736.e771d8" ] ] }, { "id": "7a129891.701088", "type": "other", "name": "outcome 1", "xml": "<outcome value='1'>\n", "comments": "", "outputs": 1, "x": 1565.357307434082, "y": 522.1189889907837, "z": "a630608e.55155", "wires": [ [ "8f216532.5de158" ] ] }, { "id": "8f216532.5de158", "type": "block", "name": "block: atomic", "xml": "<block atomic='true'>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1723.8811111450195, "y": 520.0238361358643, "z": "a630608e.55155", "wires": [ [ "8f0ea970.5dd1b8", "5a758b18.c97544", "7c1d24a2.e4561c" ] ] }, { "id": "5b2978b7.4a1128", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"Error: Connection attachment resource not exist\" />\n \n", "comments": "", "x": 1664.01904296875, "y": 627.0660705566406, "z": "a630608e.55155", "wires": [] }, { "id": "9a8df3ea.b81a6", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1089.0184726715088, "y": 630.0660696029663, "z": "a630608e.55155", "wires": [ [ "da6c5730.f43ff8" ] ] }, { "id": "da6c5730.f43ff8", "type": "block", "name": "block: atomic", "xml": "<block atomic=\"true\">\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1269.0184230804443, "y": 630.7326202392578, "z": "a630608e.55155", "wires": [ [ "5b2978b7.4a1128" ] ] }, { "id": "61cb2736.e771d8", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1556.6853103637695, "y": 581.3993635177612, "z": "a630608e.55155", "wires": [ [ "5b2978b7.4a1128" ] ] }, { "id": "8f0ea970.5dd1b8", "type": "set", "name": "set connection-attachment-ar from get", "xml": "<set>\n<parameter name='connection-attachment-ar.' value='$mdsal-ar.connection-attachment-allotted-resource[0].' />\n", "comments": "", "x": 1970.944564819336, "y": 493.00008821487427, "z": "a630608e.55155", "wires": [] }, { "id": "7c1d24a2.e4561c", "type": "set", "name": "set oper-status", "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-ar.allotted-resource-status.rpc-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n", "comments": "", "x": 1904.944595336914, "y": 566.4285907745361, "z": "a630608e.55155", "wires": [] }, { "id": "5a758b18.c97544", "type": "switchNode", "name": "switch order-status", "xml": "<switch test='`$connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n", "comments": "", "outputs": 1, "x": 1914.9443740844727, "y": 532.0000247955322, "z": "a630608e.55155", "wires": [ [ "5cbea0f2.5e38b", "faaf6124.70329", "ac51751d.ff6238" ] ] }, { "id": "5cbea0f2.5e38b", "type": "outcome", "name": "outcome Created", "xml": "<outcome value='Created'>\n", "comments": "", "outputs": 1, "x": 2150.5444564819336, "y": 526.0000557899475, "z": "a630608e.55155", "wires": [ [ "9f2005ac.1158f8" ] ] }, { "id": "ac51751d.ff6238", "type": "outcome", "name": "outcome Other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 2144.2589569091797, "y": 606.4286904335022, "z": "a630608e.55155", "wires": [ [ "3247cf89.953e1" ] ] }, { "id": "9f2005ac.1158f8", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 2309.0151290893555, "y": 526.37571144104, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "3247cf89.953e1", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" \n value=\"`'Existing connection-attachment-allotted-resource with order status of ' + $connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n", "comments": "", "x": 2320.1667709350586, "y": 605.0000896453857, "z": "a630608e.55155", "wires": [] }, { "id": "b4781bee.b24958", "type": "call", "name": "call GENERIC-RESOURCE-API:sotn-get-saved-ar-param", "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-saved-ar-param' mode='sync' >\n", "comments": "", "outputs": 1, "x": 807.8029289245605, "y": 677.4936046600342, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "ca1f4c8a.000c3", "type": "block", "name": "block: atomic", "xml": "<block atomic=\"true\">\n", "atomic": "false", "comments": "", "outputs": 1, "x": 501.8090286254883, "y": 678.4999752044678, "z": "a630608e.55155", "wires": [ [ "b4781bee.b24958" ] ] }, { "id": "8f24c0b.6e0364", "type": "comment", "name": "GET parent-service-data from mdsal to check existence of other End point", "info": "", "comments": "", "x": 675.000244140625, "y": 712.5317525863647, "z": "a630608e.55155", "wires": [] }, { "id": "d3a0d0c5.f1769", "type": "for", "name": "for pidx..mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[]", "xml": "<for index='pidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\n", "comments": "", "outputs": 1, "x": 1580.685073852539, "y": 876.0042300224304, "z": "a630608e.55155", "wires": [ [ "bb5e282f.20d1d8" ] ] }, { "id": "985db758.4d2dc8", "type": "switchNode", "name": "switch mdsal-psd.service-data.provided-allotted-resources_length", "xml": "<switch test='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`'>\n", "comments": "", "outputs": 1, "x": 664.6840972900391, "y": 983.7182664871216, "z": "a630608e.55155", "wires": [ [ "3361c99a.893e56", "98be53e0.e3a12", "3e9bce77.41f2e2" ] ] }, { "id": "3361c99a.893e56", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 992.8271179199219, "y": 1056.5755405426025, "z": "a630608e.55155", "wires": [ [ "13291031.a86d4" ] ] }, { "id": "51f88f0.0b8647", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1176.9543800354004, "y": 915.7015495300293, "z": "a630608e.55155", "wires": [ [ "d3a0d0c5.f1769", "64769b29.560b74" ] ] }, { "id": "bb5e282f.20d1d8", "type": "switchNode", "name": "switch allotted-resource-id", "xml": "<switch test=\"`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n", "comments": "", "outputs": 1, "x": 2020.796401977539, "y": 873.0040321350098, "z": "a630608e.55155", "wires": [ [ "7e349787.b2d468", "84f1e760.8042b8" ] ] }, { "id": "7e349787.b2d468", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2193.606616973877, "y": 844.4686470031738, "z": "a630608e.55155", "wires": [ [ "963c5437.24f808" ] ] }, { "id": "f519acf8.f2f25", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 2342.367088317871, "y": 901.3257341384888, "z": "a630608e.55155", "wires": [ [ "d8e9a783.ca8958" ] ] }, { "id": "d8e9a783.ca8958", "type": "set", "name": "set tmp.pidx and ptx.consumed-ar", "xml": "<set>\n<parameter name='tmp.pidx' value='`$pidx`' />\n<parameter name='tmp.provided-ar.' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].`' />\n<parameter name='tmp.found-in-ar' value='true' />\n<parameter name='tmp.ep-available' value='true' />", "comments": "", "x": 2577.2245140075684, "y": 899.8972663879395, "z": "a630608e.55155", "wires": [] }, { "id": "5e78c0ba.fc366", "type": "comment", "name": "Check existence of other AR in parent service data", "info": "Check if other allotted resource is available.", "comments": "", "x": 597.9624137878418, "y": 877.8929615020752, "z": "a630608e.55155", "wires": [] }, { "id": "98be53e0.e3a12", "type": "other", "name": "outcome 1", "xml": "<outcome value='1'>\n", "comments": "", "outputs": 1, "x": 1007.4795875549316, "y": 995.6772241592407, "z": "a630608e.55155", "wires": [ [ "65563e4a.9f772" ] ] }, { "id": "13291031.a86d4", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"Error: End points not available\" />\n \n", "comments": "", "x": 1152.4794654846191, "y": 1055.67746925354, "z": "a630608e.55155", "wires": [] }, { "id": "3e9bce77.41f2e2", "type": "other", "name": "outcome 2", "xml": "<outcome value='2'>\n", "comments": "", "outputs": 1, "x": 1002.4794006347656, "y": 916.6772499084473, "z": "a630608e.55155", "wires": [ [ "51f88f0.0b8647" ] ] }, { "id": "963c5437.24f808", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 2351.590831756592, "y": 843.6773900985718, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "84f1e760.8042b8", "type": "outcomeTrue", "name": "false", "xml": "<outcome value='false'>\n", "comments": "", "outputs": 1, "x": 2200.590473175049, "y": 900.6772499084473, "z": "a630608e.55155", "wires": [ [ "f519acf8.f2f25" ] ] }, { "id": "64769b29.560b74", "type": "switchNode", "name": "switch tmp.found-in-ar", "xml": "<switch test='`$tmp.found-in-ar`'>\n\n", "comments": "", "outputs": 1, "x": 1389.479377746582, "y": 969.4550676345825, "z": "a630608e.55155", "wires": [ [ "b457fce3.1ea22" ] ] }, { "id": "b457fce3.1ea22", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1560.4794120788574, "y": 970.5662889480591, "z": "a630608e.55155", "wires": [ [ "6eadfec4.8995c" ] ] }, { "id": "6eadfec4.8995c", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1709.479507446289, "y": 970.5662879943848, "z": "a630608e.55155", "wires": [ [ "76ed22aa.c22f3c", "aa13092.2c4b5f8" ] ] }, { "id": "83b0518.4ae51b", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 2455.5973320007324, "y": 986.7951421737671, "z": "a630608e.55155", "wires": [ [ "efe1652d.42f278" ] ] }, { "id": "5ec2bb74.e61944", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 2447.44913482666, "y": 1021.8612270355225, "z": "a630608e.55155", "wires": [ [ "8a17e7b3.f23618" ] ] }, { "id": "bc982abe.dd6408", "type": "switchNode", "name": "switch mdsal-psd.service-data.networks_length", "xml": "<switch test='`$mdsal-psd.service-data.networks.network_length`'>\n", "comments": "", "outputs": 1, "x": 1452.8128814697266, "y": 1070.899908065796, "z": "a630608e.55155", "wires": [ [ "d093702f.68309", "e34e4519.ebcb58" ] ] }, { "id": "e34e4519.ebcb58", "type": "other", "name": "outcome 1", "xml": "<outcome value='1'>\n", "comments": "", "outputs": 1, "x": 1716.812728881836, "y": 1050.7886543273926, "z": "a630608e.55155", "wires": [ [ "b0e8ebd1.f274f8" ] ] }, { "id": "d093702f.68309", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1706.8127899169922, "y": 1098.788625717163, "z": "a630608e.55155", "wires": [ [ "5ad33ca6.900dd4" ] ] }, { "id": "5ad33ca6.900dd4", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"Error: Incorrect state found more then 1 network\" />\n \n", "comments": "", "x": 1845.4651336669922, "y": 1100.890386581421, "z": "a630608e.55155", "wires": [] }, { "id": "a09fd334.28a9f", "type": "set", "name": "set tmp.network.", "xml": "<set>\n<parameter name='tmp.network.' value='`$mdsal-psd.service-data.networks.network[0].`' />\n\n\n", "comments": "", "x": 2078.2575874328613, "y": 1051.788824081421, "z": "a630608e.55155", "wires": [] }, { "id": "65563e4a.9f772", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1174.9238967895508, "y": 994.7884912490845, "z": "a630608e.55155", "wires": [ [ "bc982abe.dd6408" ] ] }, { "id": "b0e8ebd1.f274f8", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1875.5904998779297, "y": 1053.7884883880615, "z": "a630608e.55155", "wires": [ [ "a09fd334.28a9f", "1ed6b3c8.02d62c" ] ] }, { "id": "1ed6b3c8.02d62c", "type": "for", "name": "for nidx..tmp.network.network-data.network-request-input.network...[]", "xml": "<for index='nidx' start='0' end='`$tmp.network.network-data.network-request-input.network-input-parameters.param_length`' >", "comments": "", "outputs": 1, "x": 2238.5905380249023, "y": 1099.7886428833008, "z": "a630608e.55155", "wires": [ [ "71f845e7.f6dc4c" ] ] }, { "id": "71f845e7.f6dc4c", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 2285.1466064453125, "y": 1330.7884521484375, "z": "a630608e.55155", "wires": [ [ "9633b17a.93fd4", "c89a77d3.894d28", "f50ca79.bd6bf58", "9579644f.c2e1f8", "656bf14d.65203", "c0e1e0de.62e57", "9d724fbf.6eb37", "6cbe3641.6b1628", "e4b8f61c.506678", "1b764c67.bdcc34" ] ] }, { "id": "9633b17a.93fd4", "type": "switchNode", "name": "switch access-node-id", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'access-node-id'`\">", "comments": "", "outputs": 1, "x": 2561.65682220459, "y": 1172.7991995811462, "z": "a630608e.55155", "wires": [ [ "5ac8cf6c.29d2d" ] ] }, { "id": "5ac8cf6c.29d2d", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2750.656448364258, "y": 1174.7990641593933, "z": "a630608e.55155", "wires": [ [ "55e79b2c.40a534" ] ] }, { "id": "55e79b2c.40a534", "type": "set", "name": "set tmp.found-in-network tmp.ep-available", "xml": "<set>\n<parameter name='tmp.found-in-network' value='true' />\n<parameter name='tmp.ep-available' value='true' />", "comments": "", "x": 3003.656623840332, "y": 1174.3991103172302, "z": "a630608e.55155", "wires": [] }, { "id": "c89a77d3.894d28", "type": "returnSuccess", "name": "return success", "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n", "comments": "", "x": 2535.6462745666504, "y": 1546.7884907722473, "z": "a630608e.55155", "wires": [] }, { "id": "a9150c85.b2b24", "type": "switchNode", "name": "switch tmp.ep-available", "xml": "<switch test='`$tmp.ep-available`'>\n", "comments": "", "outputs": 1, "x": 527.8126983642578, "y": 1179.232801437378, "z": "a630608e.55155", "wires": [ [ "ec9b3e5c.12d4c", "32139e53.1ee242" ] ] }, { "id": "32139e53.1ee242", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 746.4794178009033, "y": 1228.5661582946777, "z": "a630608e.55155", "wires": [ [ "483d609c.f891a" ] ] }, { "id": "ec9b3e5c.12d4c", "type": "outcomeTrue", "name": "false", "xml": "<outcome value='false'>\n", "comments": "", "outputs": 1, "x": 751.3682193756104, "y": 1137.566219329834, "z": "a630608e.55155", "wires": [ [ "876967a3.f27968" ] ] }, { "id": "876967a3.f27968", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 898.3682155609131, "y": 1139.4550323486328, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "483d609c.f891a", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 916.5905055999756, "y": 1226.5661163330078, "z": "a630608e.55155", "wires": [ [ "c350b807.728b58", "61bb2f12.0dc7d", "a6da1b51.05a458" ] ] }, { "id": "c350b807.728b58", "type": "switchNode", "name": "switch tmp.found-in-ar", "xml": "<switch test='`$tmp.found-in-ar`'>\n", "comments": "", "outputs": 1, "x": 1142.7015190124512, "y": 1193.5661163330078, "z": "a630608e.55155", "wires": [ [ "76aa5c20.448484", "2de76b60.4ae814" ] ] }, { "id": "76aa5c20.448484", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1338.1459655761719, "y": 1171.566177368164, "z": "a630608e.55155", "wires": [ [ "a09df211.b30e4" ] ] }, { "id": "2de76b60.4ae814", "type": "outcomeTrue", "name": "false", "xml": "<outcome value='false'>\n", "comments": "", "outputs": 1, "x": 1335.1458740234375, "y": 1219.566162109375, "z": "a630608e.55155", "wires": [ [ "af288b92.0b0aa8" ] ] }, { "id": "a09df211.b30e4", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1525.7016296386719, "y": 1168.566177368164, "z": "a630608e.55155", "wires": [ [ "5d015582.d49aac" ] ] }, { "id": "af288b92.0b0aa8", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1522.7015380859375, "y": 1218.566162109375, "z": "a630608e.55155", "wires": [ [ "11d6595c.06bd97" ] ] }, { "id": "1e72d426.66d25c", "type": "comment", "name": "GET connection-attachment-ar to store AR data from mdsal", "info": "", "comments": "", "x": 2020.4725914001465, "y": 444.50394773483276, "z": "a630608e.55155", "wires": [] }, { "id": "9787b6af.7a60d8", "type": "comment", "name": "Set source end point", "info": "", "comments": "", "x": 509.9724884033203, "y": 533.2539677619934, "z": "a630608e.55155", "wires": [] }, { "id": "acef449e.390468", "type": "set", "name": "set tmp.ar.parent-service-instance-id", "xml": "<set>\n<parameter name='tmp.ar.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n\n", "comments": "", "x": 575.4687042236328, "y": 753.0000905990601, "z": "a630608e.55155", "wires": [] }, { "id": "5bd3f48b.77322c", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 935.4688568115234, "y": 824.0000772476196, "z": "a630608e.55155", "wires": [ [ "d0c3f99.5f18208" ] ] }, { "id": "7e9703e6.73915c", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 927.3206596374512, "y": 859.066162109375, "z": "a630608e.55155", "wires": [ [ "b7a8a6e3.b52098" ] ] }, { "id": "b7a8a6e3.b52098", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"Error: Parent service data not available\" />\n \n", "comments": "", "x": 1073.469440460205, "y": 858.3335733413696, "z": "a630608e.55155", "wires": [] }, { "id": "d0c3f99.5f18208", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1066.468952178955, "y": 824.0001382827759, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "8a17e7b3.f23618", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"Error: SOTN provided attachment resource not found\" />\n \n", "comments": "", "x": 2597.4691848754883, "y": 1022.00026512146, "z": "a630608e.55155", "wires": [] }, { "id": "efe1652d.42f278", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 2582.469306945801, "y": 989.0002498626709, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "d5cae55f.1bceb8", "type": "set", "name": "set tmp.found-in-ar tmp.found-in-network tmp.ep-available to false", "xml": "<set>\n<parameter name='tmp.found-in-ar' value='false' />\n<parameter name='tmp.found-in-network' value='false' />\n<parameter name='tmp.ep-available' value='false' />", "comments": "", "x": 661.4686431884766, "y": 926.0000648498535, "z": "a630608e.55155", "wires": [] }, { "id": "aceae88a.78f318", "type": "comment", "name": "If other EP exists set destination end point", "info": "Check if other allotted resource is available.", "comments": "", "x": 563.9685211181641, "y": 1093.0000133514404, "z": "a630608e.55155", "wires": [] }, { "id": "bbd771c0.9d8a7", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1318.468765258789, "y": 1431.0002946853638, "z": "a630608e.55155", "wires": [ [ "dfe19ba4.8c0208", "59d206f9.b84bc8", "a9511ed2.3447b", "4ec95bb0.60b964", "22f22105.c8e1ce", "e5d27048.4d74f", "adb21ce9.ecf64", "6bdef423.ad73fc" ] ] }, { "id": "dfe19ba4.8c0208", "type": "switchNode", "name": "switch access-node-id", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'access-node-id'`\">", "comments": "", "outputs": 1, "x": 1560.9790668487549, "y": 1301.010691165924, "z": "a630608e.55155", "wires": [ [ "9ee8be7b.86eea" ] ] }, { "id": "59d206f9.b84bc8", "type": "returnSuccess", "name": "return success", "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n", "comments": "", "x": 1533.9690189361572, "y": 1606.0006546974182, "z": "a630608e.55155", "wires": [] }, { "id": "a9511ed2.3447b", "type": "switchNode", "name": "switch access-ltp-id", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'access-ltp-id'`\">", "comments": "", "outputs": 1, "x": 1552.4688968658447, "y": 1344.7782225608826, "z": "a630608e.55155", "wires": [ [ "99d11ebf.9708f" ] ] }, { "id": "4ec95bb0.60b964", "type": "switchNode", "name": "switch clientSignal", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'clientSignal'`\">", "comments": "", "outputs": 1, "x": 1546.4689350128174, "y": 1390.778269290924, "z": "a630608e.55155", "wires": [ [ "66e8b72c.85eda8" ] ] }, { "id": "22f22105.c8e1ce", "type": "switchNode", "name": "switch cVLAN", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'cVLAN'`\">", "comments": "", "outputs": 1, "x": 1530.4584369659424, "y": 1429.767771244049, "z": "a630608e.55155", "wires": [ [ "3e567714.2c94a8" ] ] }, { "id": "9ee8be7b.86eea", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1738.6909809112549, "y": 1301.6670632362366, "z": "a630608e.55155", "wires": [ [ "dd293bc5.7a9f68" ] ] }, { "id": "dd293bc5.7a9f68", "type": "set", "name": "set dst-access-node-id", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.access-node-id' value='`$tmp.ep.parameters.param[$idx].value`' />", "comments": "", "x": 1913.6909809112549, "y": 1301.267038345337, "z": "a630608e.55155", "wires": [] }, { "id": "99d11ebf.9708f", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1734.1808490753174, "y": 1344.434519290924, "z": "a630608e.55155", "wires": [ [ "c8e3704c.0a07c" ] ] }, { "id": "66e8b72c.85eda8", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1734.1808490753174, "y": 1390.434519290924, "z": "a630608e.55155", "wires": [ [ "cb0e0fdf.4a67e" ] ] }, { "id": "3e567714.2c94a8", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1734.1703510284424, "y": 1429.4241433143616, "z": "a630608e.55155", "wires": [ [ "69e8426c.e7545c" ] ] }, { "id": "61bb2f12.0dc7d", "type": "for", "name": "for idx..tmp.ep.parameters[]", "xml": "<for index='idx' start='0' end='`$tmp.ep.parameters.param_length`'>\n\n", "comments": "", "outputs": 1, "x": 1171.4686279296875, "y": 1319, "z": "a630608e.55155", "wires": [ [ "bbd771c0.9d8a7" ] ] }, { "id": "5d015582.d49aac", "type": "set", "name": "set tmp.ep.parameters", "xml": "<set>\n<parameter name='tmp.ep.parameters.' value='`$mdsal-other-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.`' />\n", "comments": "", "x": 1737.4686832427979, "y": 1168.0000743865967, "z": "a630608e.55155", "wires": [] }, { "id": "11d6595c.06bd97", "type": "set", "name": "set tmp.ep.parameters", "xml": "<set>\n<parameter name='tmp.ep.parameters.' value='`$tmp.network.network-data.network-request-input.network-input-parameters.`' />\n", "comments": "", "x": 1734.4685916900635, "y": 1214.0000591278076, "z": "a630608e.55155", "wires": [] }, { "id": "c8e3704c.0a07c", "type": "set", "name": "set dst-access-node-id", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.access-ltp-id' value='`$tmp.ep.parameters.param[$idx].value`' />", "comments": "", "x": 1911.4688129425049, "y": 1344.0003151893616, "z": "a630608e.55155", "wires": [] }, { "id": "cb0e0fdf.4a67e", "type": "set", "name": "set dst-clientSignal", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.clientSignal' value='`$tmp.ep.parameters.param[$idx].value`' />", "comments": "", "x": 1905.4688129425049, "y": 1388.0003151893616, "z": "a630608e.55155", "wires": [] }, { "id": "69e8426c.e7545c", "type": "set", "name": "set dst-cVLAN", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.cVLAN' value='`$tmp.ep.parameters.param[$idx].value`' />", "comments": "", "x": 1896.4688129425049, "y": 1427.0003151893616, "z": "a630608e.55155", "wires": [] }, { "id": "5733a541.73af4c", "type": "comment", "name": "Get controller info and send request", "info": "", "comments": "", "x": 1763.968563079834, "y": 1887.000153541565, "z": "a630608e.55155", "wires": [] }, { "id": "8cfcc9bf.9a65a8", "type": "execute", "name": "execute RestconfApiCallNode Create ethernet Service", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />", "comments": "", "outputs": 1, "x": 1842.9998779296875, "y": 2208, "z": "a630608e.55155", "wires": [ [ "cf85aac2.5f5b18", "863f5227.a9ea1" ] ] }, { "id": "cf85aac2.5f5b18", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 2119.4998779296875, "y": 2228, "z": "a630608e.55155", "wires": [ [ "f69ef356.6afea" ] ] }, { "id": "f69ef356.6afea", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "comments": "", "outputs": 1, "x": 2276.9998779296875, "y": 2228, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "736cb78c.8dfaa8", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n", "comments": "", "x": 2273.4998779296875, "y": 2188, "z": "a630608e.55155", "wires": [] }, { "id": "863f5227.a9ea1", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 2115.4998779296875, "y": 2188, "z": "a630608e.55155", "wires": [ [ "736cb78c.8dfaa8" ] ] }, { "id": "5929fd4e.ec3554", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 750.2310523986816, "y": 2121.9537086486816, "z": "a630608e.55155", "wires": [ [ "9c881861.aa8918" ] ] }, { "id": "9c881861.aa8918", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"AAI failed\" />\n", "comments": "", "x": 916.7548732757568, "y": 2148.5727157592773, "z": "a630608e.55155", "wires": [] }, { "id": "658f7423.e42fac", "type": "failure", "name": "not-found", "xml": "<outcome value='not-found'>\n", "comments": "", "outputs": 1, "x": 752.3262805938721, "y": 2169.715551376343, "z": "a630608e.55155", "wires": [ [ "9c881861.aa8918" ] ] }, { "id": "a81fcfb3.a63e8", "type": "comment", "name": "Save Resource to AAI", "info": "", "comments": "", "x": 509.77857398986816, "y": 2099.3028717041016, "z": "a630608e.55155", "wires": [] }, { "id": "61537c3b.fab714", "type": "set", "name": "set output to api handler", "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='connection-attachment-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $connection-attachment-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n", "comments": "", "x": 539.0463924407959, "y": 2031.8283529281616, "z": "a630608e.55155", "wires": [] }, { "id": "7eb0d271.4548bc", "type": "returnSuccess", "name": "return success", "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n", "comments": "", "x": 499.4595642089844, "y": 2217.4441413879395, "z": "a630608e.55155", "wires": [] }, { "id": "10b1de1c.d8e392", "type": "execute", "name": "execute RestApiCallNode - PUT AR by id", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sotn-attachment.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n <parameter name='restapiUser' value='`$prop.controller.user`' />\n <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='PUT' />\n <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />", "comments": "", "outputs": 1, "x": 591.7784748077393, "y": 1956.4692058563232, "z": "a630608e.55155", "wires": [ [ "7e2dd1d9.64b7a", "785cefe7.8812a", "d4ecdaae.982178" ] ] }, { "id": "7e2dd1d9.64b7a", "type": "not-found", "name": "not-found", "xml": "<outcome value='not-found'>\n", "comments": "", "outputs": 1, "x": 846.4198970794678, "y": 2000.8006000518799, "z": "a630608e.55155", "wires": [ [ "6903b628.ad5248" ] ] }, { "id": "785cefe7.8812a", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 848.4199199676514, "y": 1959.3005641922355, "z": "a630608e.55155", "wires": [ [ "6903b628.ad5248" ] ] }, { "id": "d4ecdaae.982178", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 852.1700038909912, "y": 1910.6577167510986, "z": "a630608e.55155", "wires": [ [ "f8659abf.39c7f8" ] ] }, { "id": "6903b628.ad5248", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error updating md-sal for connection-attachment-allotted-resource\" />\n", "comments": "", "x": 1007.1700229644775, "y": 1979.050630569458, "z": "a630608e.55155", "wires": [] }, { "id": "f8659abf.39c7f8", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 979.82594871521, "y": 1912.8498849868774, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "efe34b33.5d0ee8", "type": "set", "name": "set ar-data", "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-status.action' value=\"`$connection-attachment-topology-operation-input.request-information.request-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value=\"connection-attachment-topology-operation\" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$connection-attachment-topology-operation-input.request-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$connection-attachment-topology-operation-input.service-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.` \" />", "comments": "", "x": 493.9920902252197, "y": 1790.8501069545746, "z": "a630608e.55155", "wires": [] }, { "id": "2d63fb91.84b774", "type": "execute", "name": "execute getTime", "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n", "comments": "", "outputs": 1, "x": 511.27793312072754, "y": 1863.4697046279907, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "268f39f4.638ca6", "type": "set", "name": "set allotted-resource-oper-status", "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n", "comments": "", "x": 561.2650127410889, "y": 1900.4207849502563, "z": "a630608e.55155", "wires": [] }, { "id": "9b79c2c4.ec3e1", "type": "set", "name": "set model-data", "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.` \" />", "comments": "", "x": 507.83363151550293, "y": 1830.024757385254, "z": "a630608e.55155", "wires": [] }, { "id": "58f67e2c.3ffd3", "type": "comment", "name": "Prepare data for allotted-resource addition to MDSAL", "info": "This will add to allotted-resource which is present inside service.", "comments": "", "x": 606.666971206665, "y": 1740.0247094631195, "z": "a630608e.55155", "wires": [] }, { "id": "4941cf62.a08f9", "type": "comment", "name": "Add to allotted-resources in mdsal", "info": "", "comments": "", "x": 548.2467975616455, "y": 1707.4380111694336, "z": "a630608e.55155", "wires": [] }, { "id": "31e22c6e.dde384", "type": "update", "name": "update AAI allotted-resource", "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $connection-attachment-topology-operation-input.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid`\" />\n\t<parameter name=\"operational-status\" value=\"Active\" />\n", "comments": "", "outputs": 1, "x": 550.7229747772217, "y": 2147.7550144195557, "z": "a630608e.55155", "wires": [ [ "5929fd4e.ec3554", "658f7423.e42fac" ] ] }, { "id": "eb423794.0e7fb8", "type": "execute", "name": "execute RestApiCallNode getPath from OOF", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.restapi.connection-oof-url`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.oof.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.oof.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"oof\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />", "comments": "", "outputs": 1, "x": 1359.4729347229004, "y": 1710.2546663284302, "z": "a630608e.55155", "wires": [ [ "2b5d08d2.5cf108", "6f0a9383.7f35dc" ] ] }, { "id": "2b5d08d2.5cf108", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1599.4730758666992, "y": 1734.254635810852, "z": "a630608e.55155", "wires": [ [ "5c397e6c.29fa1" ] ] }, { "id": "5db326c4.3233d8", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing OOF api\" />\n", "comments": "", "x": 1738.4731101989746, "y": 1683.2547273635864, "z": "a630608e.55155", "wires": [] }, { "id": "6f0a9383.7f35dc", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 1598.4728622436523, "y": 1683.254726409912, "z": "a630608e.55155", "wires": [ [ "5db326c4.3233d8" ] ] }, { "id": "9058ff04.7a5cf", "type": "comment", "name": "Get VPNs from OOF", "info": "", "comments": "", "x": 1330.976734161377, "y": 1666.2586660385132, "z": "a630608e.55155", "wires": [] }, { "id": "e69bb2b0.53f05", "type": "for", "name": "for vidx..oof.vpns_length[]", "xml": "<for index='vidx' start='0' end='`$oof.vpns_length`' >", "comments": "", "outputs": 1, "x": 1299.4727783203125, "y": 1792.50439453125, "z": "a630608e.55155", "wires": [ [ "9fbdd049.04aee" ] ] }, { "id": "b50c14b8.09c178", "type": "comment", "name": "Loop through VPN and configure them", "info": "", "comments": "", "x": 1330.9731063842773, "y": 1916.0047721862793, "z": "a630608e.55155", "wires": [] }, { "id": "f50ca79.bd6bf58", "type": "switchNode", "name": "switch name", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'name'`\">\n \n", "comments": "", "outputs": 1, "x": 2539.2569580078125, "y": 1264.121826171875, "z": "a630608e.55155", "wires": [ [ "48f789dc.0b8248" ] ] }, { "id": "48f789dc.0b8248", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2728.2569274902344, "y": 1264.121811389923, "z": "a630608e.55155", "wires": [ [ "366b05ff.4e9dba" ] ] }, { "id": "366b05ff.4e9dba", "type": "set", "name": "set etht-svc-name & bandwidth-profile-name", "xml": "<set>\n<parameter name='ietf-etht-instance0' value='ietf-eth-tran-service:etht-svc.etht-svc-instances[0].' />\n<parameter name='ietf-bw-profile0' value='ietf-eth-tran-service:etht-svc.globals.etht-svc-bandwidth-profiles[0].' />\n<parameter name='ietf-etht-svc-name' value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-name'`\" value='`$ietf-etht-svc-name`' />\n<parameter name=\"`$ietf-bw-profile0 + 'bandwidth-profile-name'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[0].ingress-egress-bandwidth-profile-name'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[1].ingress-egress-bandwidth-profile-name'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />", "comments": "", "x": 2969.2572441101074, "y": 1263.7218661308289, "z": "a630608e.55155", "wires": [] }, { "id": "9579644f.c2e1f8", "type": "switchNode", "name": "switch description", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'description'`\">\n", "comments": "", "outputs": 1, "x": 2552.096836090088, "y": 1299.1219210624695, "z": "a630608e.55155", "wires": [ [ "1dad027d.f2cc1e" ] ] }, { "id": "1dad027d.f2cc1e", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2727.0969009399414, "y": 1301.1219067573547, "z": "a630608e.55155", "wires": [ [ "24a84540.b4bd4a" ] ] }, { "id": "24a84540.b4bd4a", "type": "set", "name": "set etht-svc-descr", "xml": "<set>\n<parameter name='prop.global.sotn.etht-svc-descr' value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2883.43021774292, "y": 1298.5829815864563, "z": "a630608e.55155", "wires": [] }, { "id": "656bf14d.65203", "type": "switchNode", "name": "switch tenantId", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'tenantId'`\">\n", "comments": "", "outputs": 1, "x": 2547.4790992736816, "y": 1332.4553112983704, "z": "a630608e.55155", "wires": [ [ "c489849c.565d08" ] ] }, { "id": "c489849c.565d08", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2725.479103088379, "y": 1336.4551892280579, "z": "a630608e.55155", "wires": [ [ "83498157.21513" ] ] }, { "id": "83498157.21513", "type": "set", "name": "set tenantId", "xml": "<set>\n<parameter name='prop.global.sotn.tenantId' value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2863.479290008545, "y": 1333.0551648139954, "z": "a630608e.55155", "wires": [] }, { "id": "9d724fbf.6eb37", "type": "switchNode", "name": "switch cir", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'cir'`\">\n", "comments": "", "outputs": 1, "x": 2530.3186988830566, "y": 1405.4552664756775, "z": "a630608e.55155", "wires": [ [ "38a37645.9ee2da" ] ] }, { "id": "38a37645.9ee2da", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2725.31876373291, "y": 1406.4552664756775, "z": "a630608e.55155", "wires": [ [ "67bd8dad.2292e4" ] ] }, { "id": "67bd8dad.2292e4", "type": "set", "name": "set cir", "xml": "<set>\n<parameter name=\"`$ietf-bw-profile0 + 'CIR'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2849.6522636413574, "y": 1404.916341304779, "z": "a630608e.55155", "wires": [] }, { "id": "c0e1e0de.62e57", "type": "switchNode", "name": "switch vpnType", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'vpnType'`\">\n", "comments": "", "outputs": 1, "x": 2544.6269874572754, "y": 1368.232976436615, "z": "a630608e.55155", "wires": [ [ "d6350af3.38dd48" ] ] }, { "id": "d6350af3.38dd48", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2726.6271743774414, "y": 1371.232961177826, "z": "a630608e.55155", "wires": [ [ "6cadb4e2.716b9c" ] ] }, { "id": "6cadb4e2.716b9c", "type": "set", "name": "set vpnType", "xml": "<set>\n<parameter name='prop.global.sotn.vpnType' value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2865.9609375, "y": 1367.6942138671875, "z": "a630608e.55155", "wires": [] }, { "id": "6cbe3641.6b1628", "type": "switchNode", "name": "switch eir", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'eir'`\">\n", "comments": "", "outputs": 1, "x": 2525.609043121338, "y": 1439.1531739234924, "z": "a630608e.55155", "wires": [ [ "efdd57df.4131c8" ] ] }, { "id": "efdd57df.4131c8", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2725.60929107666, "y": 1442.1531128883362, "z": "a630608e.55155", "wires": [ [ "ed07413a.f64c7" ] ] }, { "id": "ed07413a.f64c7", "type": "set", "name": "set eir", "xml": "<set>\n<parameter name=\"`$ietf-bw-profile0 + 'EIR'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2848.94291305542, "y": 1441.6141724586487, "z": "a630608e.55155", "wires": [] }, { "id": "e4b8f61c.506678", "type": "switchNode", "name": "switch colorAware", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'colorAware'`\">\n", "comments": "", "outputs": 1, "x": 2550.6096534729004, "y": 1473.1530528068542, "z": "a630608e.55155", "wires": [ [ "4ea176e0.665498" ] ] }, { "id": "4ea176e0.665498", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2721.609474182129, "y": 1479.1529912948608, "z": "a630608e.55155", "wires": [ [ "dee638e2.555768" ] ] }, { "id": "dee638e2.555768", "type": "set", "name": "set colorAware", "xml": "<set>\n<parameter name=\"`$ietf-bw-profile0 + 'color-aware'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2869.9427909851074, "y": 1479.6142039299011, "z": "a630608e.55155", "wires": [] }, { "id": "1b764c67.bdcc34", "type": "switchNode", "name": "switch couplingFlag", "xml": "<switch test=\"`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].name == 'couplingFlag'`\">\n", "comments": "", "outputs": 1, "x": 2552.609592437744, "y": 1509.1531147956848, "z": "a630608e.55155", "wires": [ [ "39955bff.f34384" ] ] }, { "id": "39955bff.f34384", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 2724.609474182129, "y": 1518.1530842781067, "z": "a630608e.55155", "wires": [ [ "a2e94909.0f9038" ] ] }, { "id": "a2e94909.0f9038", "type": "set", "name": "set couplingFlag", "xml": "<set>\n<parameter name=\"`$ietf-bw-profile0 + 'coupling-flag'`\" value='`$tmp.network.network-data.network-request-input.network-input-parameters.param[$nidx].value`' />\n", "comments": "", "x": 2877.9427909851074, "y": 1518.6142048835754, "z": "a630608e.55155", "wires": [] }, { "id": "3aa78fe2.31fbd", "type": "comment", "name": "Check if other EP exists in SOTNConnectionResource", "info": "", "comments": "", "x": 2669.3125, "y": 1116.7884521484375, "z": "a630608e.55155", "wires": [] }, { "id": "b7589bba.2df3c8", "type": "comment", "name": "Get other global parameters from network", "info": "", "comments": "", "x": 2605.312255859375, "y": 1202.7884521484375, "z": "a630608e.55155", "wires": [] }, { "id": "e5d27048.4d74f", "type": "switchNode", "name": "switch access-provider-id", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'access-provider-id'`\">", "comments": "", "outputs": 1, "x": 1568.0347309112549, "y": 1475.2329812049866, "z": "a630608e.55155", "wires": [ [ "5ad03846.a031b8" ] ] }, { "id": "5ad03846.a031b8", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1755.0347309112549, "y": 1471.2329812049866, "z": "a630608e.55155", "wires": [ [ "10b6a85e.83bdd8" ] ] }, { "id": "10b6a85e.83bdd8", "type": "set", "name": "set access-provider-id", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.access-provider-id' value='`$tmp.ep.parameters.param[$idx].value`' />\n", "comments": "", "x": 1923.0347309112549, "y": 1471.8329873085022, "z": "a630608e.55155", "wires": [] }, { "id": "adb21ce9.ecf64", "type": "switchNode", "name": "switch access-client-id", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'access-client-id'`\">", "comments": "", "outputs": 1, "x": 1559.034746170044, "y": 1518.2434296607971, "z": "a630608e.55155", "wires": [ [ "d2d16a8b.81b248" ] ] }, { "id": "d2d16a8b.81b248", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1746.034746170044, "y": 1514.2434296607971, "z": "a630608e.55155", "wires": [ [ "6ace68b7.f27328" ] ] }, { "id": "6ace68b7.f27328", "type": "set", "name": "set access-client-id", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.access-client-id' value='`$tmp.ep.parameters.param[$idx].value`' />\n", "comments": "", "x": 1914.034746170044, "y": 1514.8434357643127, "z": "a630608e.55155", "wires": [] }, { "id": "6bdef423.ad73fc", "type": "switchNode", "name": "switch access-topology-id", "xml": "<switch test=\"`$tmp.ep.parameters.param[$idx].name == 'access-topology-id'`\">", "comments": "", "outputs": 1, "x": 1572.0346908569336, "y": 1560.2434606552124, "z": "a630608e.55155", "wires": [ [ "bb02bc73.38486" ] ] }, { "id": "bb02bc73.38486", "type": "outcomeTrue", "name": "true", "xml": "<outcome value='true'>\n", "comments": "", "outputs": 1, "x": 1759.0346908569336, "y": 1556.2434606552124, "z": "a630608e.55155", "wires": [ [ "7a9b7097.b8e25" ] ] }, { "id": "7a9b7097.b8e25", "type": "set", "name": "set access-topology-id", "xml": "<set>\n<parameter name='prop.remote.connection-attachment.access-topology-id' value='`$tmp.ep.parameters.param[$idx].value`' />\n", "comments": "", "x": 1927.0346908569336, "y": 1556.843466758728, "z": "a630608e.55155", "wires": [] }, { "id": "9fbdd049.04aee", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1467.590087890625, "y": 1866.344482421875, "z": "a630608e.55155", "wires": [ [ "f8b78b0e.beea28", "c8ac63bd.8d89f", "444e8dd2.1847e4", "51485a55.e9ef04", "35a135d4.725b3a", "7dc3597.ca70ea8", "c65920ab.0f669", "7b35c593.3661ec", "edf401a4.539cb", "267ec1af.047a3e", "9210174.c9cf1e8", "8cfcc9bf.9a65a8", "10bb8e0d.493f42" ] ] }, { "id": "143cafae.b3f5d", "type": "set", "name": "set controller data", "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n", "comments": "", "x": 2169.4998779296875, "y": 1928, "z": "a630608e.55155", "wires": [] }, { "id": "7b35c593.3661ec", "type": "get-resource", "name": "get-resource esr-thirdparty-sdnc", "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = $tmp.thirdparty-sdnc-id AND \n\t\t depth = '1'\"\n pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n", "comments": "", "outputs": 1, "x": 1773.4998779296875, "y": 1968, "z": "a630608e.55155", "wires": [ [ "28c9286d.8f8f38", "5c53d1de.70389", "2dc721ff.e9443e" ] ] }, { "id": "28c9286d.8f8f38", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1999.4998779296875, "y": 1928, "z": "a630608e.55155", "wires": [ [ "143cafae.b3f5d" ] ] }, { "id": "5c53d1de.70389", "type": "not-found", "name": "not-found", "xml": "<outcome value='not-found'>\n", "comments": "", "outputs": 1, "x": 2003.4998779296875, "y": 1968, "z": "a630608e.55155", "wires": [ [ "291c408f.9a83c" ] ] }, { "id": "2dc721ff.e9443e", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1995.4998779296875, "y": 2008, "z": "a630608e.55155", "wires": [ [ "c1c3bd52.870e5" ] ] }, { "id": "291c408f.9a83c", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n", "comments": "", "x": 2153.4998779296875, "y": 1968, "z": "a630608e.55155", "wires": [] }, { "id": "c1c3bd52.870e5", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n", "comments": "", "x": 2153.4998779296875, "y": 2008, "z": "a630608e.55155", "wires": [] }, { "id": "c65920ab.0f669", "type": "get-resource", "name": "get-resource pnf", "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"pnf\" \n\t\tkey=\"pnf.pnf-name = $oof.vpn.access-node-id \n\t\tAND depth = '0'\"\n pfx='tmp.aai.pnf' local-only='false' >\n\n\n", "comments": "", "outputs": 1, "x": 1726.0345611572266, "y": 1839.6772294044495, "z": "a630608e.55155", "wires": [ [ "bbb89f5d.9dab5", "18dcc984.0fc486", "4617806.08ecf8" ] ] }, { "id": "bbb89f5d.9dab5", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1908.0346069335938, "y": 1784.677339553833, "z": "a630608e.55155", "wires": [ [ "467b318.de926d" ] ] }, { "id": "18dcc984.0fc486", "type": "not-found", "name": "not-found", "xml": "<outcome value='not-found'>\n", "comments": "", "outputs": 1, "x": 1908.5255088806152, "y": 1822.2514362335205, "z": "a630608e.55155", "wires": [ [ "85e6fea3.e49d6" ] ] }, { "id": "4617806.08ecf8", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1899.8585205078125, "y": 1855.5848112106323, "z": "a630608e.55155", "wires": [ [ "dbd12f37.55577" ] ] }, { "id": "85e6fea3.e49d6", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n", "comments": "", "x": 2056.0971336364746, "y": 1821.5373249053955, "z": "a630608e.55155", "wires": [] }, { "id": "dbd12f37.55577", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n", "comments": "", "x": 2053.6311645507812, "y": 1855.023959159851, "z": "a630608e.55155", "wires": [] }, { "id": "467b318.de926d", "type": "set", "name": "set tmp.thirdparty-sdnc-id", "xml": "<set>\n<parameter name='tmp.thirdparty-sdnc-id' value=\"`$tmp.aai.pnf.relationship-list.relationship[0].relationship-data[0].relationship-value`\" />\n", "comments": "", "x": 2093.0346069335938, "y": 1783.6774616241455, "z": "a630608e.55155", "wires": [] }, { "id": "48aa99bb.9db748", "type": "comment", "name": "get domain controller information", "info": "", "comments": "", "x": 1762.0383529663086, "y": 1795.6811847686768, "z": "a630608e.55155", "wires": [] }, { "id": "edf401a4.539cb", "type": "set", "name": "set oof.vpn", "xml": "<set>\n<parameter name='oof.vpn.' value='`$oof.vpns[$vidx].`' />", "comments": "", "x": 1738.0345611572266, "y": 1760.7883129119873, "z": "a630608e.55155", "wires": [] }, { "id": "c8ac63bd.8d89f", "type": "save", "name": "save VPN resource in AAI", "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding' \n key='vpn-binding.vpn-id = $tmp.vpnName' >\n<parameter name='vpn-id' value='`$tmp.vpnName`' />\n<parameter name='vpn-name' value='`$tmp.vpnName`' />\n<parameter name='access-provider-id' value='`$oof.vpn.access-provider-id`' />\n<parameter name='access-client-id' value='`$oof.vpn.access-client-id`' />\n<parameter name='access-topology-id' value='`$oof.vpn.access-topology-id`' />\n<parameter name='src-access-node-id' value='`$oof.vpn.access-node-id`' />\n<parameter name='src-access-ltp-id' value='`$oof.vpn.src-access-ltp-id`' />\n<parameter name='dst-access-node-id' value='`$oof.vpn.access-node-id`' />\n<parameter name='dst-access-ltp-id' value='`$oof.vpn.dst-access-ltp-id`' />\n<parameter name='vpn-type' value='`$prop.global.sotn.vpnType`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />", "comments": "", "outputs": 1, "x": 1754.9998779296875, "y": 2328, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "444e8dd2.1847e4", "type": "set", "name": "set tmp.vpnName", "xml": "<set>\n<parameter name='tmp.vpnName' value=\"`$oof.vpn.access-node-id + '-' + $ietf-etht-svc-name`\" />", "comments": "", "x": 1728.9998779296875, "y": 2288, "z": "a630608e.55155", "wires": [] }, { "id": "51485a55.e9ef04", "type": "save", "name": "save connectivity relationship in AAI", "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding:relationship-list' \n key='vpn-binding.vpn-id = $tmp.vpnName' \n force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"connectivity\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/connectivities/connectivity/' + $mdsal-psd.service-data.networks.network[0].network-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"connectivity.connectivity-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$mdsal-psd.service-data.networks.network[0].network-id`\" />", "comments": "", "outputs": 1, "x": 1785.4998779296875, "y": 2368, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "adece5b7.4add68", "type": "comment", "name": "save vpn and its relation to AAI", "info": "", "comments": "", "x": 1766.9998779296875, "y": 2248, "z": "a630608e.55155", "wires": [] }, { "id": "f8b78b0e.beea28", "type": "set", "name": "set src-ltpId dst-ltpId", "xml": "<set>\n<parameter name='src-ltpId' value=\"`'nodeId-' + $oof.vpn.access-node-id + '-ltpId-' + $oof.vpn.src-access-ltp-id`\" />\n<parameter name='dst-ltpId' value=\"`'nodeId-' + $oof.vpn.access-node-id + '-ltpId-' + $oof.vpn.dst-access-ltp-id`\" />", "comments": "", "x": 1736.9998779296875, "y": 2408, "z": "a630608e.55155", "wires": [] }, { "id": "35a135d4.725b3a", "type": "save", "name": "save srcLTP relationship in AAI", "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding:relationship-list' \n key='vpn-binding.vpn-id = $tmp.vpnName' \n force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"p-interface\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/pnfs/pnf/' + $oof.vpn.access-node-id + '/p-interfaces/p-interface/' + $src-ltpId`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"p-interface.interface-name\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$src-ltpId`\" />\n\n\n\n", "comments": "", "outputs": 1, "x": 1770.9998779296875, "y": 2448, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "7dc3597.ca70ea8", "type": "save", "name": "save dstLTP relationship in AAI", "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding:relationship-list' \n key='vpn-binding.vpn-id = $tmp.vpnName' \n force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"p-interface\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/pnfs/pnf/' + $oof.vpn.access-node-id + '/p-interfaces/p-interface/' + $dst-ltpId`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"p-interface.interface-name\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$dst-ltpId`\" />", "comments": "", "outputs": 1, "x": 1770.9998779296875, "y": 2488, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "8f59d2e8.986c8", "type": "execute", "name": "execute RestApiCallNode - get-resource connection-attachment-allotted-resource", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n <parameter name='restapiUser' value='`$prop.controller.user`' />\n <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='GET' />\n <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n", "comments": "", "outputs": 1, "x": 717.5038146972656, "y": 613.0039119720459, "z": "a630608e.55155", "wires": [ [ "6a9a3716.ceb668", "9a8df3ea.b81a6" ] ] }, { "id": "1627bf22.2c9d81", "type": "execute", "name": "execute RestApiCallNode - get-resource parent service data", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-psd`' />\n <parameter name='restapiUser' value='`$prop.controller.user`' />\n <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='GET' />\n <parameter name=\"responsePrefix\" value=\"mdsal-psd\" />\n\n", "comments": "", "outputs": 1, "x": 644.5039672851562, "y": 840.004075050354, "z": "a630608e.55155", "wires": [ [ "5bd3f48b.77322c", "7e9703e6.73915c" ] ] }, { "id": "b717f7e4.e0f2b8", "type": "execute", "name": "get parent-service-data url", "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data\"/>\n <parameter name=\"outputPath\" value=\"tmp.ar-url-psd\"/>\n <parameter name=\"target\" value=\"{service-instance-id}\"/>\n <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n", "comments": "", "outputs": 1, "x": 544.5038757324219, "y": 803.0039081573486, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "76ed22aa.c22f3c", "type": "execute", "name": "generate tmp.ar-other-url-connection", "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.connection-attachment-allottedresource`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ar-other-url-connection\"/>\n <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n <parameter name=\"replacement\" value=\"`$tmp.provided-ar.allotted-resource-id`\"/>\n \n\n", "comments": "", "outputs": 1, "x": 1958.500228881836, "y": 959.3334693908691, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "aa13092.2c4b5f8", "type": "execute", "name": "execute RestApiCallNode - get-resource connection-attachment-allotted-resource", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-other-url-connection`' />\n <parameter name='restapiUser' value='`$prop.controller.user`' />\n <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='GET' />\n <parameter name=\"responsePrefix\" value=\"mdsal-other-ar\" />\n\n", "comments": "", "outputs": 1, "x": 2095.5008697509766, "y": 1001.8333339691162, "z": "a630608e.55155", "wires": [ [ "83b0518.4ae51b", "5ec2bb74.e61944" ] ] }, { "id": "5c397e6c.29fa1", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1720.5001487731934, "y": 1725.0001192092896, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "a6da1b51.05a458", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 1097.4687614440918, "y": 1750.0003032684326, "z": "a630608e.55155", "wires": [ [ "eb423794.0e7fb8", "e69bb2b0.53f05" ] ] }, { "id": "faaf6124.70329", "type": "outcome", "name": "outcome PendingDelete", "xml": "<outcome value='PendingDelete'>\n", "comments": "", "outputs": 1, "x": 2171.531219482422, "y": 565.0312976837158, "z": "a630608e.55155", "wires": [ [ "3f8451df.60b3ce" ] ] }, { "id": "3f8451df.60b3ce", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 2355.5312309265137, "y": 561.0312976837158, "z": "a630608e.55155", "wires": [ [] ] }, { "id": "9210174.c9cf1e8", "type": "set", "name": "set attachment_param", "xml": "<set>\n<parameter name=\"`$ietf-etht-instance0 + 'access-provider-id'`\" value='`$oof.vpn.access-provider-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'access-client-id'`\" value='`$oof.vpn.access-client-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'access-topology-id'`\" value='`$oof.vpn.access-topology-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[0].access-node-id'`\" value='`$oof.vpn.access-node-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[0].access-ltp-id'`\" value='`$oof.vpn.src-access-ltp-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[1].access-node-id'`\" value='`$oof.vpn.access-node-id`' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[1].access-ltp-id'`\" value='`$oof.vpn.dst-access-ltp-id`' />\n", "comments": "", "x": 1743.4998779296875, "y": 2168, "z": "a630608e.55155", "wires": [] }, { "id": "267ec1af.047a3e", "type": "set", "name": "set sotn_value", "xml": "<set>\n<parameter name=\"`$ietf-bw-profile0 + 'bandwidth-profile-type'`\" value='ietf-eth-tran-types:mef-10-bwp' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-type'`\" value='ietf-eth-tran-types:p2p-svc' />\n<parameter name=\"`$ietf-etht-instance0 + 'admin-status'`\" value='ietf-te-types:tunnel-state-up' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[0].access-port-id'`\" value='0' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[0].service-classification-type'`\" value='ietf-eth-tran-types:port-classification' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[1].access-port-id'`\" value='1' />\n<parameter name=\"`$ietf-etht-instance0 + 'etht-svc-access-ports[1].service-classification-type'`\" value='ietf-eth-tran-types:port-classification' />", "comments": "", "x": 1718.9998779296875, "y": 2128, "z": "a630608e.55155", "wires": [] }, { "id": "10bb8e0d.493f42", "type": "execute", "name": "execute RestApiCallNode Get token", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>", "comments": "", "outputs": 1, "x": 1785.9998779296875, "y": 2068, "z": "a630608e.55155", "wires": [ [ "5c4ae0da.edb2d", "5bcb49de.d3fc68" ] ] }, { "id": "5c4ae0da.edb2d", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 2039.4998779296875, "y": 2048, "z": "a630608e.55155", "wires": [ [ "9dfbf378.5fbab" ] ] }, { "id": "5bcb49de.d3fc68", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 2035.4998779296875, "y": 2088, "z": "a630608e.55155", "wires": [ [ "39bd957c.b0025a" ] ] }, { "id": "39bd957c.b0025a", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n", "comments": "", "x": 2193.4998779296875, "y": 2088, "z": "a630608e.55155", "wires": [] }, { "id": "9dfbf378.5fbab", "type": "set", "name": "set token-id", "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n", "comments": "", "x": 2189.9998779296875, "y": 2048, "z": "a630608e.55155", "wires": [] } ]
RestconfDiscoveryNode:
It is implemented as a plugin in CCSDK (org.onap.ccsdk.sli.plugins.restconfdiscovery.RestconfDiscoveryNode)
Following are the list of Mandatory parameters
subscriberId: identifier to be used while creating and deleting the subscription.
httpMethod: HTTP method to use while sending the request.
dirPath: Directory path which contains YANG files (main and dependent)
restapiUrl: URL to send request to server for establish-subscription request.
sseConnectURL: URL to send request to server for SSE events GET message.
Next 4 parameters are for callback DG identification. Callback DG will be invoked for every received event and its supposed to implement the logic which needs to be executed for received event.
module: module of callback DG
rpc: rpc of callback DG
version: version of callback DG
mode: mode of callback DG
Sample RestconfDiscoveryNode
CCVPN Example
[ { "id": "197ffd5b.105fa3", "type": "other", "name": "update", "xml": "<outcome value='Update'>\n", "comments": "", "outputs": 1, "x": 310, "y": 360, "z": "a54d391e.88f7d8", "wires": [ [ "8298d18a.63e4b" ] ] }, { "id": "3bcc844d.917dbc", "type": "other", "name": "delete", "xml": "<outcome value='delete'>\n", "comments": "", "outputs": 1, "x": 310, "y": 440, "z": "a54d391e.88f7d8", "wires": [ [ "9a40237.2d204e" ] ] }, { "id": "9a40237.2d204e", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 451.5, "y": 440, "z": "a54d391e.88f7d8", "wires": [ [] ] }, { "id": "7bf268a7.980d48", "type": "comment", "name": "TODO: Delete topology from AAI", "info": "", "comments": "", "x": 384.3335189819336, "y": 407.96899485588074, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "9d107456.f08fe8", "type": "switchNode", "name": "switch aai-event-trigger", "xml": "<switch test=\"`$data-change-notification-input.aai-event-trigger`\">\n", "comments": "", "outputs": 1, "x": 140.5, "y": 400, "z": "a54d391e.88f7d8", "wires": [ [ "197ffd5b.105fa3", "3bcc844d.917dbc" ] ] }, { "id": "68d03f9b.5e646", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "outputs": 1, "x": 871.5, "y": 240, "z": "a54d391e.88f7d8", "wires": [ [ "608a6bc.8344d94", "7a11c3b.828ac3c", "365e44a4.701f6c", "a3a71589.3e7428", "c3222caa.a5e2a" ] ] }, { "id": "7a11c3b.828ac3c", "type": "execute", "name": "execute RestApiCallNode Get token", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>", "comments": "", "outputs": 1, "x": 1144.5001983642578, "y": 161.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "15e6e327.6bb24d", "b8526c6a.21372" ] ] }, { "id": "15e6e327.6bb24d", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1358.0001983642578, "y": 141.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "eada649a.e312c8" ] ] }, { "id": "b8526c6a.21372", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 1354.0001983642578, "y": 181.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "bf5d38a1.f76208" ] ] }, { "id": "eada649a.e312c8", "type": "set", "name": "set token-id", "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n", "comments": "", "x": 1508.5001983642578, "y": 141.00000953674316, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "3ad01439.f9afec", "type": "execute", "name": "execute RestApiCallNode Get Topology", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"get\"/>\n<parameter name=\"responsePrefix\" value=\"topology\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />", "comments": "", "outputs": 1, "x": 1575.5001983642578, "y": 261.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "a2f37f5d.3d152", "76d94eec.78391" ] ] }, { "id": "a2f37f5d.3d152", "type": "success", "name": "success", "xml": "<outcome value='success'>\n", "comments": "", "outputs": 1, "x": 1818.0001983642578, "y": 281.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "f2edc52a.829ae8" ] ] }, { "id": "f2edc52a.829ae8", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">", "atomic": "true", "comments": "", "outputs": 1, "x": 1975.5001983642578, "y": 281.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "2876228a.bd45de" ] ] }, { "id": "f0deaa8b.a77c48", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n", "comments": "", "x": 1952.0001983642578, "y": 181.00000953674316, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "76d94eec.78391", "type": "failure", "name": "failure", "xml": "<outcome value='failure'>\n", "comments": "", "outputs": 1, "x": 1814.0001983642578, "y": 181.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "f0deaa8b.a77c48" ] ] }, { "id": "a45743c4.fd9ac", "type": "dgstart", "name": "DGSTART", "outputs": 1, "x": 98, "y": 100, "z": "a54d391e.88f7d8", "wires": [ [ "4069c94b.4e3178" ] ] }, { "id": "4069c94b.4e3178", "type": "service-logic", "name": "DataChange ${project.version}", "module": "DataChange", "version": "${project.version}", "comments": "", "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DataChange' version='${project.version}'>", "outputs": 1, "x": 164, "y": 160, "z": "a54d391e.88f7d8", "wires": [ [ "a97cf7f0.905958" ] ] }, { "id": "a97cf7f0.905958", "type": "method", "name": "method esr-thirdparty-sdnc-discovery", "xml": "<method rpc='esr-thirdparty-sdnc-discovery' mode='sync'>\n", "comments": "", "outputs": 1, "x": 184, "y": 240, "z": "a54d391e.88f7d8", "wires": [ [ "8d013bc1.d159b8" ] ] }, { "id": "8d013bc1.d159b8", "type": "block", "name": "block : atomic", "xml": "<block atomic=\"true\">\n", "atomic": "false", "comments": "", "outputs": 1, "x": 431.5, "y": 240, "z": "a54d391e.88f7d8", "wires": [ [ "9d107456.f08fe8" ] ] }, { "id": "2876228a.bd45de", "type": "for", "name": "for each Network", "xml": "<for index='nidx' start='0' end='`$topology.networks.network_length`' >\n", "comments": "", "outputs": 1, "x": 1401.5002136230469, "y": 380.0000247955322, "z": "a54d391e.88f7d8", "wires": [ [ "ef7b8418.bcb8e8" ] ] }, { "id": "ef7b8418.bcb8e8", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1550.0002136230469, "y": 380.0000247955322, "z": "a54d391e.88f7d8", "wires": [ [ "64202ed1.e0b41", "93269044.8fece" ] ] }, { "id": "64202ed1.e0b41", "type": "call", "name": "call update-network-to-aai", "xml": "<call module='DataChange' rpc='update-network-to-aai' mode='sync' >\n", "comments": "", "outputs": 1, "x": 1729.0002136230469, "y": 400.0000247955322, "z": "a54d391e.88f7d8", "wires": [ [] ] }, { "id": "93269044.8fece", "type": "set", "name": "set network", "xml": "<set>\n<parameter name='network.' value='`$topology.networks.network[$nidx].`' />\n", "comments": "", "x": 1684.0002136230469, "y": 360.0000247955322, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "bf5d38a1.f76208", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 1474.0001983642578, "y": 181.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [] ] }, { "id": "9588f43b.0d44f8", "type": "comment", "name": "Do Nothing", "info": "", "comments": "", "x": 1644.0001983642578, "y": 221.00000953674316, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "60d84913.695d78", "type": "switchNode", "name": "switch type", "xml": "<switch test=\"`$prop.sdncRestApi.type`\">\n", "comments": "", "outputs": 1, "x": 563, "y": 360, "z": "a54d391e.88f7d8", "wires": [ [ "de59227b.bacf9", "1a34048f.8eca2b" ] ] }, { "id": "8298d18a.63e4b", "type": "block", "name": "block", "xml": "<block>\n", "atomic": "false", "comments": "", "outputs": 1, "x": 430, "y": 360, "z": "a54d391e.88f7d8", "wires": [ [ "60d84913.695d78" ] ] }, { "id": "de59227b.bacf9", "type": "other", "name": "SOTN", "xml": "<outcome value='SOTN'>\n", "comments": "", "outputs": 1, "x": 710, "y": 240, "z": "a54d391e.88f7d8", "wires": [ [ "68d03f9b.5e646" ] ] }, { "id": "1a34048f.8eca2b", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 725.0000076293945, "y": 479.00003242492676, "z": "a54d391e.88f7d8", "wires": [ [ "7faf207a.622e5" ] ] }, { "id": "7faf207a.622e5", "type": "returnFailure", "name": "return failure", "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unsupported type = ' + $prop.sdncRestApi.type`\" />\n\n", "comments": "", "x": 903.0000076293945, "y": 479.00003242492676, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "608a6bc.8344d94", "type": "execute", "name": "execute Properties", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n", "comments": "", "outputs": 1, "x": 1091.0001983642578, "y": 121.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [] ] }, { "id": "365e44a4.701f6c", "type": "switchNode", "name": "switch prop.sdncRestApi.token_id", "xml": "<switch test=\"`$prop.sdncRestApi.token_id`\">\n\n", "comments": "", "outputs": 1, "x": 1137.5001983642578, "y": 241.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "b737a6fe.87cf68", "878b1fd0.506dd" ] ] }, { "id": "b737a6fe.87cf68", "type": "other", "name": "Null", "xml": "<outcome value=''>\n", "comments": "", "outputs": 1, "x": 1354.0001983642578, "y": 221.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "de7d499c.f87aa8" ] ] }, { "id": "878b1fd0.506dd", "type": "other", "name": "other", "xml": "<outcome value='Other'>\n", "comments": "", "outputs": 1, "x": 1354.0001983642578, "y": 261.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "3ad01439.f9afec" ] ] }, { "id": "de7d499c.f87aa8", "type": "execute", "name": "execute RestApiCallNode Get Topology", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-network:networks'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"get\"/>\n<parameter name=\"responsePrefix\" value=\"topology\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n", "comments": "", "outputs": 1, "x": 1575.5001983642578, "y": 221.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [ "76d94eec.78391", "a2f37f5d.3d152" ] ] }, { "id": "c3222caa.a5e2a", "type": "execute", "name": "execute RestconfDiscoveryNode", "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfdiscovery.RestconfDiscoveryNode' method='establishSubscription' >\n<parameter name=\"subscriberId\" value=\"sotn-controller\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/operations/ietf-subscribed-notifications:establish-subscription'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"sseConnectURL\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/streams/yang-push-json'`\" />\n<parameter name=\"dirPath\" value=\"/opt/sdnc/restconfapi/yang/notification\" />\n<parameter name=\"format\" value=\"json\" />\n<parameter name=\"httpMethod\" value=\"post\" />\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />\n<parameter name=\"module\" value=\"DataChange\" />\n<parameter name=\"rpc\" value=\"sotn-notification-handler\" />\n<parameter name=\"mode\" value=\"sync\" />", "comments": "", "outputs": 1, "x": 1134.0001983642578, "y": 381.00000953674316, "z": "a54d391e.88f7d8", "wires": [ [] ] }, { "id": "a3a71589.3e7428", "type": "set", "name": "set encoding-format", "xml": "<set>\n<parameter name='input' value='ietf-subscribed-notifications:establish-subscription.input.' />\n<parameter name=\"`$input + 'encoding'`\" value=\"encode-json\" />", "comments": "", "x": 1094.0001983642578, "y": 341.00000953674316, "z": "a54d391e.88f7d8", "wires": [] }, { "id": "98c18166.4a0f3", "type": "comment", "name": "Notification subscription", "info": "", "comments": "", "x": 1099.000343322754, "y": 298.00000858306885, "z": "a54d391e.88f7d8", "wires": [] } ]
- No labels