SDWAN WAN Attach site addition 23/61123/1
authorshashikanth.vh <shashikanth.vh@huawei.com>
Fri, 17 Aug 2018 18:24:16 +0000 (23:54 +0530)
committershashikanth.vh <shashikanth.vh@huawei.com>
Fri, 17 Aug 2018 18:24:24 +0000 (23:54 +0530)
Updates include:
- Addition of sdwan Attach site resource DG
- Templates
- Defect fixes

Change-Id: Ie646f6a131a4124ac9228de4938d481d799d111f
Issue-ID: SDNC-357
Signed-off-by: shashikanth.vh <shashikanth.vh@huawei.com>
Former-commit-id: 28a98a71d3b3a44e7269de435f0591946f2456d1

21 files changed:
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_connection-attachment-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-network-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-connection-attachment-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation.json
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_connection-attachment-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-network-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-connection-attachment-input.xml
platform-logic/restapi-templates/src/main/json/sdwan-site-provision.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdwan-underlay.json

index 7ec149a..5975f5e 100644 (file)
@@ -1,20 +1,20 @@
 [
   {
-    "id": "7040c3da.af1dec",
+    "id": "1910b882.988187",
     "type": "dgstart",
     "name": "DGSTART",
     "outputs": 1,
-    "x": 110.00390625,
-    "y": 64.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 112,
+    "y": 39,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "2925fee5.4b2612"
+        "6daa18ee.bd9b48"
       ]
     ]
   },
   {
-    "id": "2925fee5.4b2612",
+    "id": "6daa18ee.bd9b48",
     "type": "service-logic",
     "name": "GENERIC-RESOURCE-API ${project.version}",
     "module": "GENERIC-RESOURCE-API",
     "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": 248.00392150878906,
-    "y": 125.00390434265137,
-    "z": "d74aac07.dc7e5",
+    "x": 250.00001525878906,
+    "y": 99.99999809265137,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "b82edbfb.46a2a8"
+        "d306af00.202b5"
       ]
     ]
   },
   {
-    "id": "b82edbfb.46a2a8",
+    "id": "d306af00.202b5",
     "type": "method",
     "name": "connection-attachment-topology-operation",
     "xml": "<method rpc='connection-attachment-topology-operation' mode='sync'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 283.0039367675781,
-    "y": 173.00393295288086,
-    "z": "d74aac07.dc7e5",
+    "x": 285.0000305175781,
+    "y": 148.00002670288086,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "a9203dbc.c4a92"
+        "439aa3bc.b5c89c"
       ]
     ]
   },
   {
-    "id": "a9203dbc.c4a92",
+    "id": "439aa3bc.b5c89c",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 208.00390625,
-    "y": 251.00389862060547,
-    "z": "d74aac07.dc7e5",
+    "x": 210,
+    "y": 225.99999237060547,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "d28295b8.2c2758",
-        "7f7eb3b.b67394c",
-        "779cd391.117a2c",
-        "3ccb66ff.5dacfa"
+        "b2ae5e0b.e62c8",
+        "9d2c0f9b.d86bc",
+        "66d180fd.aa86b",
+        "ebb56880.bc5f78"
       ]
     ]
   },
   {
-    "id": "d28295b8.2c2758",
+    "id": "b2ae5e0b.e62c8",
     "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": 422.37308502197266,
-    "y": 863.8467736244202,
-    "z": "d74aac07.dc7e5",
+    "x": 424.36917877197266,
+    "y": 838.8428673744202,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "7f7eb3b.b67394c",
+    "id": "9d2c0f9b.d86bc",
     "type": "switchNode",
     "name": "switch svc-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 429.0038299560547,
-    "y": 410.41761684417725,
-    "z": "d74aac07.dc7e5",
+    "x": 430.9999237060547,
+    "y": 385.41371059417725,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "bb04a1a3.bc9cc",
-        "e1cc92c7.25fd7",
-        "cf940d5c.e7317",
-        "935024a.1180cd8",
-        "50ef3ecb.f8e1d"
+        "e1ae6e39.aa27a",
+        "9414f9d2.dce2f8",
+        "6fb0447c.d97d9c",
+        "128f118b.699cee",
+        "e0bc6e7e.914ba"
       ]
     ]
   },
   {
-    "id": "779cd391.117a2c",
+    "id": "66d180fd.aa86b",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:validate-connection-attachment-input",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-connection-attachment-input' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 620.5753479003906,
-    "y": 230.98905754089355,
-    "z": "d74aac07.dc7e5",
+    "x": 622.5714416503906,
+    "y": 205.98515129089355,
+    "z": "b7e352e3.19bee",
     "wires": [
       []
     ]
   },
   {
-    "id": "bb04a1a3.bc9cc",
+    "id": "e1ae6e39.aa27a",
     "type": "other",
     "name": "activate",
     "xml": "<outcome value='activate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 644.2895736694336,
-    "y": 419.56049633026123,
-    "z": "d74aac07.dc7e5",
+    "x": 646.2856674194336,
+    "y": 394.55659008026123,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "f86d00f8.fcf59"
+        "4c362fcf.8e944"
       ]
     ]
   },
   {
-    "id": "e1cc92c7.25fd7",
+    "id": "9414f9d2.dce2f8",
     "type": "other",
     "name": "delete",
     "xml": "<outcome value='delete'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 654.2896347045898,
-    "y": 700.5606594085693,
-    "z": "d74aac07.dc7e5",
+    "x": 656.2857284545898,
+    "y": 675.5567531585693,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "7a0372ab.33be4c"
+        "c5b8be14.e07f9"
       ]
     ]
   },
   {
-    "id": "cf940d5c.e7317",
+    "id": "6fb0447c.d97d9c",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 643.6229438781738,
-    "y": 785.8940830230713,
-    "z": "d74aac07.dc7e5",
+    "x": 645.6190376281738,
+    "y": 760.8901767730713,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "903586f6.489208"
+        "1be7b37b.418c6d"
       ]
     ]
   },
   {
-    "id": "903586f6.489208",
+    "id": "1be7b37b.418c6d",
     "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=\"sdnc-request-header.svc-action is invalid\" />\n",
     "comments": "",
-    "x": 825.6229400634766,
-    "y": 784.8940925598145,
-    "z": "d74aac07.dc7e5",
+    "x": 827.6190338134766,
+    "y": 759.8901863098145,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "3ccb66ff.5dacfa",
+    "id": "ebb56880.bc5f78",
     "type": "set",
     "name": "Set final indicator to Y",
     "xml": "<set>\n<parameter name=\"ack-final\" value=\"Y\"/>",
     "comments": "",
-    "x": 441.4007797241211,
-    "y": 823.0051121711731,
-    "z": "d74aac07.dc7e5",
+    "x": 443.3968734741211,
+    "y": 798.0012059211731,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "935024a.1180cd8",
+    "id": "128f118b.699cee",
     "type": "other",
     "name": "create",
     "xml": "<outcome value='create'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 643.5302696228027,
-    "y": 284.16522884368896,
-    "z": "d74aac07.dc7e5",
+    "x": 645.5263633728027,
+    "y": 259.16132259368896,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "76e064e5.59ef8c"
+        "41c94f6b.204e9"
       ]
     ]
   },
   {
-    "id": "50ef3ecb.f8e1d",
+    "id": "e0bc6e7e.914ba",
     "type": "other",
     "name": "deactivate",
     "xml": "<outcome value='deactivate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 648.8636207580566,
-    "y": 560.8320322036743,
-    "z": "d74aac07.dc7e5",
+    "x": 650.8597145080566,
+    "y": 535.8281259536743,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "c2dd69d2.09a368"
+        "da1fc201.3680b"
       ]
     ]
   },
   {
-    "id": "381cd5e6.60b05a",
+    "id": "66c39149.70506",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-create",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-create' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1538.0902099609375,
-    "y": 235.54469108581543,
-    "z": "d74aac07.dc7e5",
+    "x": 1540.0863037109375,
+    "y": 210.54078483581543,
+    "z": "b7e352e3.19bee",
     "wires": [
       []
     ]
   },
   {
-    "id": "76e064e5.59ef8c",
+    "id": "41c94f6b.204e9",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 834.5039596557617,
-    "y": 283.0039129257202,
-    "z": "d74aac07.dc7e5",
+    "x": 836.5000534057617,
+    "y": 258.0000066757202,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "73303973.3b9048",
-        "7c8a6efc.7a43c"
+        "ce5a6c0e.e9e7",
+        "ae9fa049.744a2",
+        "5e6d0e37.67471"
       ]
     ]
   },
   {
-    "id": "73303973.3b9048",
+    "id": "ce5a6c0e.e9e7",
     "type": "outcome",
     "name": "CreateSOTNAttachmentInstance",
     "xml": "<outcome value='CreateSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1089.837173461914,
-    "y": 235.00371932983398,
-    "z": "d74aac07.dc7e5",
+    "x": 1091.833267211914,
+    "y": 209.99981307983398,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "381cd5e6.60b05a"
+        "66c39149.70506"
       ]
     ]
   },
   {
-    "id": "7c8a6efc.7a43c",
+    "id": "ae9fa049.744a2",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1019.8372802734375,
-    "y": 326.67044830322266,
-    "z": "d74aac07.dc7e5",
+    "x": 1021.8333740234375,
+    "y": 301.66654205322266,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "2e04dda8.211e22"
+        "93d62769.1835a8"
       ]
     ]
   },
   {
-    "id": "2e04dda8.211e22",
+    "id": "93d62769.1835a8",
     "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
     "comments": "",
-    "x": 1185.5039443969727,
-    "y": 327.00391387939453,
-    "z": "d74aac07.dc7e5",
+    "x": 1187.5000381469727,
+    "y": 302.00000762939453,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "c3ec8e4c.42bba",
+    "id": "a98c29b2.451c58",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-activate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-activate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1547.5039520263672,
-    "y": 370.00391578674316,
-    "z": "d74aac07.dc7e5",
+    "x": 1549.5000457763672,
+    "y": 345.00000953674316,
+    "z": "b7e352e3.19bee",
     "wires": [
       []
     ]
   },
   {
-    "id": "e555e69b.d6dab8",
+    "id": "761c903c.218d4",
     "type": "outcome",
     "name": "ActivateSOTNAttachmentInstance",
     "xml": "<outcome value='ActivateSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1097.250991821289,
-    "y": 372.4629497528076,
-    "z": "d74aac07.dc7e5",
+    "x": 1099.247085571289,
+    "y": 347.4590435028076,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "c3ec8e4c.42bba"
+        "a98c29b2.451c58"
       ]
     ]
   },
   {
-    "id": "5c941c7c.d135c4",
+    "id": "3bbb5d04.5bf752",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1027.2510986328125,
-    "y": 464.1296787261963,
-    "z": "d74aac07.dc7e5",
+    "x": 1029.2471923828125,
+    "y": 439.1257724761963,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "b0deba38.7b5228"
+        "ca8f3243.2c298"
       ]
     ]
   },
   {
-    "id": "874a4de5.20f7a",
+    "id": "a90cbc0f.e63d",
     "type": "outcome",
     "name": "DeactivateSOTNAttachmentInstance",
     "xml": "<outcome value='DeactivateSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1116.8372039794922,
-    "y": 511.0037364959717,
-    "z": "d74aac07.dc7e5",
+    "x": 1118.8332977294922,
+    "y": 485.9998302459717,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "4329778c.cafb48"
+        "a6371009.ee111"
       ]
     ]
   },
   {
-    "id": "8f441f1b.ab4bb",
+    "id": "4fe9f748.8c5d78",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1031.8372268676758,
-    "y": 602.6704416275024,
-    "z": "d74aac07.dc7e5",
+    "x": 1033.8333206176758,
+    "y": 577.6665353775024,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "5242314d.7fd95"
+        "ccf57f8f.ea1c9"
       ]
     ]
   },
   {
-    "id": "4329778c.cafb48",
+    "id": "a6371009.ee111",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-deactivate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-deactivate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1575.5040283203125,
-    "y": 511.00391960144043,
-    "z": "d74aac07.dc7e5",
+    "x": 1577.5001220703125,
+    "y": 486.00001335144043,
+    "z": "b7e352e3.19bee",
     "wires": [
       []
     ]
   },
   {
-    "id": "18c3914d.1fd05f",
+    "id": "feaf8aad.a6d7b8",
     "type": "outcome",
     "name": "DeleteSOTNAttachmentInstance",
     "xml": "<outcome value='DeleteSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1105.8371200561523,
-    "y": 652.0037126541138,
-    "z": "d74aac07.dc7e5",
+    "x": 1107.8332138061523,
+    "y": 626.9998064041138,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "1d1f5f1c.4ba391"
+        "702bb124.73afe"
       ]
     ]
   },
   {
-    "id": "a82f11b4.25a05",
+    "id": "fcb130cd.5ae4",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1035.8372268676758,
-    "y": 743.6704416275024,
-    "z": "d74aac07.dc7e5",
+    "x": 1037.8333206176758,
+    "y": 718.6665353775024,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "c42475bd.4b30d8"
+        "4b648692.1bee28"
       ]
     ]
   },
   {
-    "id": "1d1f5f1c.4ba391",
+    "id": "702bb124.73afe",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sotn-attachment-topology-operation-delete",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-delete' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1561.5039978027344,
-    "y": 653.0039234161377,
-    "z": "d74aac07.dc7e5",
+    "x": 1563.5000915527344,
+    "y": 628.0000171661377,
+    "z": "b7e352e3.19bee",
     "wires": [
       []
     ]
   },
   {
-    "id": "f86d00f8.fcf59",
+    "id": "4c362fcf.8e944",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 832.0039672851562,
-    "y": 424.00391960144043,
-    "z": "d74aac07.dc7e5",
+    "x": 834.0000610351562,
+    "y": 399.00001335144043,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "e555e69b.d6dab8",
-        "5c941c7c.d135c4"
+        "761c903c.218d4",
+        "3bbb5d04.5bf752",
+        "2147e065.6d692"
       ]
     ]
   },
   {
-    "id": "c2dd69d2.09a368",
+    "id": "da1fc201.3680b",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 846.00390625,
-    "y": 565.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 848,
+    "y": 540,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "874a4de5.20f7a",
-        "8f441f1b.ab4bb"
+        "a90cbc0f.e63d",
+        "4fe9f748.8c5d78",
+        "9e313cc8.d833b"
       ]
     ]
   },
   {
-    "id": "7a0372ab.33be4c",
+    "id": "c5b8be14.e07f9",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 849.00390625,
-    "y": 700.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 851,
+    "y": 675,
+    "z": "b7e352e3.19bee",
     "wires": [
       [
-        "18c3914d.1fd05f",
-        "a82f11b4.25a05"
+        "feaf8aad.a6d7b8",
+        "fcb130cd.5ae4",
+        "5e1720ff.4caf2"
       ]
     ]
   },
   {
-    "id": "b0deba38.7b5228",
+    "id": "ca8f3243.2c298",
     "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
     "comments": "",
-    "x": 1191.00390625,
-    "y": 464.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 1193,
+    "y": 439,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "5242314d.7fd95",
+    "id": "ccf57f8f.ea1c9",
     "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
     "comments": "",
-    "x": 1199.00390625,
-    "y": 604.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 1201,
+    "y": 579,
+    "z": "b7e352e3.19bee",
     "wires": []
   },
   {
-    "id": "c42475bd.4b30d8",
+    "id": "4b648692.1bee28",
     "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=\"`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`\" />\n",
     "comments": "",
-    "x": 1204.00390625,
-    "y": 743.00390625,
-    "z": "d74aac07.dc7e5",
+    "x": 1206,
+    "y": 718,
+    "z": "b7e352e3.19bee",
     "wires": []
+  },
+  {
+    "id": "5e6d0e37.67471",
+    "type": "outcome",
+    "name": "CreateSDWANAttachmentInstance",
+    "xml": "<outcome value='CreateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1116.02734375,
+    "y": 257.0312509536743,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      [
+        "4d854610.f2a218"
+      ]
+    ]
+  },
+  {
+    "id": "4d854610.f2a218",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-attachment-topology-operation-create",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-create' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1564.2803802490234,
+    "y": 257.57222270965576,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "2147e065.6d692",
+    "type": "outcome",
+    "name": "ActivateSDWANAttachmentInstance",
+    "xml": "<outcome value='ActivateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1111.02734375,
+    "y": 394.0312509536743,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      [
+        "5d4d92f5.76ca5c"
+      ]
+    ]
+  },
+  {
+    "id": "5d4d92f5.76ca5c",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-attachment-topology-operation-activate",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-activate' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1561.2803039550781,
+    "y": 391.57221698760986,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "9e313cc8.d833b",
+    "type": "outcome",
+    "name": "DeactivateSDWANAttachmentInstance",
+    "xml": "<outcome value='DeactivateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1128.02734375,
+    "y": 535.0312509536743,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      [
+        "79636f75.2b02a"
+      ]
+    ]
+  },
+  {
+    "id": "79636f75.2b02a",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-attachment-topology-operation-deactivate",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-deactivate' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1586.6941680908203,
+    "y": 535.0314340591431,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "5e1720ff.4caf2",
+    "type": "outcome",
+    "name": "DeleteSDWANAttachmentInstance",
+    "xml": "<outcome value='DeleteSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1116.02734375,
+    "y": 673.0312509536743,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      [
+        "fc63a050.4fcca"
+      ]
+    ]
+  },
+  {
+    "id": "fc63a050.4fcca",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-attachment-topology-operation-delete",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-delete' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1571.694221496582,
+    "y": 674.0314617156982,
+    "z": "b7e352e3.19bee",
+    "wires": [
+      []
+    ]
   }
 ]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.json
new file mode 100644 (file)
index 0000000..58b8c3e
--- /dev/null
@@ -0,0 +1,2036 @@
+[
+  {
+    "id": "80dd667e.b96f28",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 113,
+    "y": 41,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "7472205c.aef1a"
+      ]
+    ]
+  },
+  {
+    "id": "7472205c.aef1a",
+    "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": 304.0000057220459,
+    "y": 111.00001811981201,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "37ba3eae.275d42"
+      ]
+    ]
+  },
+  {
+    "id": "37ba3eae.275d42",
+    "type": "method",
+    "name": "sdwan-attachment-topology-operation-activate",
+    "xml": "<method rpc='sdwan-attachment-topology-operation-activate' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 292.00012397766113,
+    "y": 199.00000095367432,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "ee5288e.f42de78"
+      ]
+    ]
+  },
+  {
+    "id": "ee5288e.f42de78",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 194.00013732910156,
+    "y": 885.0002890825272,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "b85a45bf.0bc7a8",
+        "1151bd20.7a3e23",
+        "9037088f.df5478",
+        "dae5e077.3dcd8",
+        "5bfd91ae.4a06",
+        "4bcdea66.6625d4",
+        "3d8eaf9a.38bd9",
+        "1c9f2051.6c4ec",
+        "5bbd58f7.5f7198",
+        "40c05ce.b6f2ba4",
+        "c934c812.741518",
+        "cfd66b10.01cc08",
+        "5daf20a3.56c58",
+        "235295.bc1afd6c",
+        "9bb2f2c0.a869e",
+        "78a5dd87.45acf4",
+        "12273108.2aad0f",
+        "989cf904.9df618",
+        "38de1063.b6c52",
+        "1b86e032.9e8d5",
+        "27476583.31719a",
+        "6f11d9b9.d9b5a8",
+        "d462299e.954ef8"
+      ]
+    ]
+  },
+  {
+    "id": "b85a45bf.0bc7a8",
+    "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": 704.9935626983643,
+    "y": 152.99348783493042,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "7b859e23.ef0a6",
+    "type": "comment",
+    "name": "set tmp ar-id to fetch resource from MDSAL",
+    "info": "",
+    "comments": "",
+    "x": 733.9538745880127,
+    "y": 117.02528381347656,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "1151bd20.7a3e23",
+    "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": 658.993501663208,
+    "y": 245.99349308013916,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "dae5e077.3dcd8",
+    "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": 665.255392074585,
+    "y": 333.66022205352783,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "9037088f.df5478",
+    "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": 712.255449295044,
+    "y": 421.6602258682251,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "8334555.85225a8",
+    "type": "comment",
+    "name": "GET connection-attachment-allotted-resource from mdsal",
+    "info": "",
+    "comments": "",
+    "x": 766.8084106445312,
+    "y": 490.53865146636963,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "3f9851c.f3967ae",
+    "type": "comment",
+    "name": "Used for setting output to API Handler",
+    "info": "",
+    "comments": "",
+    "x": 712.9935321807861,
+    "y": 212.99350261688232,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "1e81abbc.616b14",
+    "type": "comment",
+    "name": "Obtain different URL, template location etc",
+    "info": "For saving resource information to MDSAL & for AAI",
+    "comments": "",
+    "x": 730.9934978485107,
+    "y": 298.8823833465576,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "72dc7ecf.95a62",
+    "type": "comment",
+    "name": "Used to Get AR by id to MDSAL, same as self-link",
+    "info": "",
+    "comments": "",
+    "x": 756.9935169219971,
+    "y": 385.882342338562,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "e6ee5327.c0d68",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1220.6668224334717,
+    "y": 503.99997901916504,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "8c680853.310ea8"
+      ]
+    ]
+  },
+  {
+    "id": "8c680853.310ea8",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1364.6669006347656,
+    "y": 461.4998970031738,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "925fb80e.34f158"
+      ]
+    ]
+  },
+  {
+    "id": "925fb80e.34f158",
+    "type": "switchNode",
+    "name": "switch cr length",
+    "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1533.5243244171143,
+    "y": 459.11906814575195,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "26b8d340.46df1c",
+        "7a829be2.af0124"
+      ]
+    ]
+  },
+  {
+    "id": "26b8d340.46df1c",
+    "type": "other",
+    "name": "outcome 1",
+    "xml": "<outcome value='1'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1688.8574600219727,
+    "y": 431.1189832687378,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "1395b904.dff867"
+      ]
+    ]
+  },
+  {
+    "id": "1395b904.dff867",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic='true'>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1847.3812637329102,
+    "y": 429.02383041381836,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "bca835dc.03acf8",
+        "60209a3f.8f2c74",
+        "20e59893.8ce128"
+      ]
+    ]
+  },
+  {
+    "id": "a8ed7d7b.3441",
+    "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": 1787.5191955566406,
+    "y": 536.0660648345947,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "2e147334.04188c",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1212.5186252593994,
+    "y": 539.0660638809204,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "b263ea5d.751198"
+      ]
+    ]
+  },
+  {
+    "id": "b263ea5d.751198",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1392.518575668335,
+    "y": 539.7326145172119,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a8ed7d7b.3441"
+      ]
+    ]
+  },
+  {
+    "id": "7a829be2.af0124",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1680.1854629516602,
+    "y": 490.39935779571533,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a8ed7d7b.3441"
+      ]
+    ]
+  },
+  {
+    "id": "bca835dc.03acf8",
+    "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": 2094.4447174072266,
+    "y": 402.00008249282837,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "60209a3f.8f2c74",
+    "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": 2043.4449863433838,
+    "y": 504.4286185503006,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "20e59893.8ce128",
+    "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": 2045.444803237915,
+    "y": 444.0000435113907,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "c22325f7.252dc8",
+        "892b7c23.01481"
+      ]
+    ]
+  },
+  {
+    "id": "c22325f7.252dc8",
+    "type": "outcome",
+    "name": "outcome Created",
+    "xml": "<outcome value='Created'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2273.0451526641846,
+    "y": 435.00010073184967,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "8f64788b.479f58"
+      ]
+    ]
+  },
+  {
+    "id": "892b7c23.01481",
+    "type": "outcome",
+    "name": "outcome Other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2267.759048461914,
+    "y": 474.42865800857544,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "7e065517.d9cffc"
+      ]
+    ]
+  },
+  {
+    "id": "8f64788b.479f58",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2432.515281677246,
+    "y": 435.37570571899414,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "7e065517.d9cffc",
+    "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": 2443.666862487793,
+    "y": 473.000057220459,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "6f92ad01.bceb24",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-get-saved-ar-param",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 937.3030433654785,
+    "y": 610.4936294555664,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "5bfd91ae.4a06",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 631.3091430664062,
+    "y": 611.5,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6f92ad01.bceb24"
+      ]
+    ]
+  },
+  {
+    "id": "ab12c387.518e3",
+    "type": "comment",
+    "name": "GET parent-service-data from mdsal to check existence of other End point",
+    "info": "",
+    "comments": "",
+    "x": 809.00048828125,
+    "y": 682.53173828125,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "20314e6c.dff2b2",
+    "type": "comment",
+    "name": "GET connection-attachment-ar to store AR data from mdsal",
+    "info": "",
+    "comments": "",
+    "x": 2156.4727783203125,
+    "y": 362.5039367675781,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "4bcdea66.6625d4",
+    "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": 694.9688110351562,
+    "y": 712.0001220703125,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "15984952.556e87",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1054.968978881836,
+    "y": 769.0000915527344,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "de6674d7.fb4908"
+      ]
+    ]
+  },
+  {
+    "id": "6badb4c9.fd121c",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1046.8207817077637,
+    "y": 804.0661764144897,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "d2de38fb.c9bd98"
+      ]
+    ]
+  },
+  {
+    "id": "d2de38fb.c9bd98",
+    "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": 1192.9695625305176,
+    "y": 803.3335876464844,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "de6674d7.fb4908",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1185.9690742492676,
+    "y": 769.0001525878906,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "3fee618.47cf19e",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 868.7312831878662,
+    "y": 1801.953821182251,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "ce560694.4e0568"
+      ]
+    ]
+  },
+  {
+    "id": "ce560694.4e0568",
+    "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": 1035.2551040649414,
+    "y": 1828.5728282928467,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "c68d8601.616f38",
+    "type": "failure",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 870.8265113830566,
+    "y": 1849.715663909912,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "ce560694.4e0568"
+      ]
+    ]
+  },
+  {
+    "id": "4f78f27.2aadb0c",
+    "type": "comment",
+    "name": "Save Resource to AAI",
+    "info": "",
+    "comments": "",
+    "x": 642.7789268493652,
+    "y": 1790.302984237671,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "9bb2f2c0.a869e",
+    "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": 657.5466232299805,
+    "y": 1711.828465461731,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "12273108.2aad0f",
+    "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": 617.959794998169,
+    "y": 1897.4442539215088,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "235295.bc1afd6c",
+    "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.sdwan-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\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 710.2787055969238,
+    "y": 1636.4693183898926,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "fbd9f3da.ac92e",
+        "d531264d.6e9598",
+        "ceab622e.44add"
+      ]
+    ]
+  },
+  {
+    "id": "fbd9f3da.ac92e",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 964.9201278686523,
+    "y": 1680.8007125854492,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6996a4e1.52814c"
+      ]
+    ]
+  },
+  {
+    "id": "d531264d.6e9598",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 966.9201507568359,
+    "y": 1639.3006767258048,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6996a4e1.52814c"
+      ]
+    ]
+  },
+  {
+    "id": "ceab622e.44add",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 970.6702346801758,
+    "y": 1590.657829284668,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a90a3596.a63828"
+      ]
+    ]
+  },
+  {
+    "id": "6996a4e1.52814c",
+    "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": 1125.670253753662,
+    "y": 1659.0507431030273,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "a90a3596.a63828",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1098.3261795043945,
+    "y": 1592.8499975204468,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "40c05ce.b6f2ba4",
+    "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",
+    "comments": "",
+    "x": 612.4923210144043,
+    "y": 1470.850219488144,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "cfd66b10.01cc08",
+    "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": 629.7781639099121,
+    "y": 1543.46981716156,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "5daf20a3.56c58",
+    "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": 679.7652435302734,
+    "y": 1580.4208974838257,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "c934c812.741518",
+    "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": 626.3338623046875,
+    "y": 1510.0248699188232,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "39e69165.d7e96e",
+    "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": 739.6673240661621,
+    "y": 1431.0248219966888,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "76218215.a6538c",
+    "type": "comment",
+    "name": "Add to allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 681.2471504211426,
+    "y": 1398.438123703003,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "78a5dd87.45acf4",
+    "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.allotted-resource-information.parent-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": 669.2232055664062,
+    "y": 1827.755126953125,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "3fee618.47cf19e",
+        "c68d8601.616f38"
+      ]
+    ]
+  },
+  {
+    "id": "3d8eaf9a.38bd9",
+    "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": 841.0039672851562,
+    "y": 522.00390625,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "e6ee5327.c0d68",
+        "2e147334.04188c"
+      ]
+    ]
+  },
+  {
+    "id": "1c9f2051.6c4ec",
+    "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": 764.0040893554688,
+    "y": 785.0040893554688,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "15984952.556e87",
+        "6badb4c9.fd121c"
+      ]
+    ]
+  },
+  {
+    "id": "5bbd58f7.5f7198",
+    "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": 664.0039978027344,
+    "y": 748.0039224624634,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "f4b4f93.ed2c608",
+    "type": "set",
+    "name": "set prop.ar.provided-allotted-resource-id",
+    "xml": "<set>\n<parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id`' />\n\n",
+    "comments": "",
+    "x": 1521.9964752197266,
+    "y": 837.1218557357788,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "a15a79a.36a3388",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2027.9970703125,
+    "y": 931.4551391601562,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a3fba491.823078"
+      ]
+    ]
+  },
+  {
+    "id": "9877a25.829156",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2031.848445892334,
+    "y": 893.52121925354,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "7dae3a54.790c34"
+      ]
+    ]
+  },
+  {
+    "id": "70d2ed6a.c33784",
+    "type": "for",
+    "name": "for arvidx.. mdsal-sd.service-data.vnfs.vnf_length[]",
+    "xml": "<for index='arvidx' start='0' end='`$mdsal-sd.service-data.vnfs.vnf_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1923.9976425170898,
+    "y": 1659.1222692728043,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "3299d5bb.c8fffa"
+      ]
+    ]
+  },
+  {
+    "id": "3299d5bb.c8fffa",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1683.6641387939453,
+    "y": 1731.1224619150162,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "9c72dcbf.2f4d8"
+      ]
+    ]
+  },
+  {
+    "id": "9c72dcbf.2f4d8",
+    "type": "switchNode",
+    "name": "switch ActivateSiteInstance",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1896.5293731689453,
+    "y": 1732.3203302621841,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "d6c2e1ad.856bf"
+      ]
+    ]
+  },
+  {
+    "id": "d6c2e1ad.856bf",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2101.52872467041,
+    "y": 1735.3203264474869,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "1deec432.31ab3c"
+      ]
+    ]
+  },
+  {
+    "id": "6d2e1c61.8e7884",
+    "type": "set",
+    "name": "set tmp.sitevidx ",
+    "xml": "<set>\n<parameter name='tmp.sitevidx' value='`$arvidx`' />\n\n",
+    "comments": "",
+    "x": 2445.528896331787,
+    "y": 1715.3206740617752,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "eb1ab4ec.5e2dc8",
+    "type": "set",
+    "name": "set prop.ar-parent-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.ar-parent-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\n",
+    "comments": "",
+    "x": 1672.9970703125,
+    "y": 1078.1221185922623,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "57da3fea.264e9",
+    "type": "for",
+    "name": "for loop aridx - Get role from allotted resource",
+    "xml": "<for index=\"aridx\" start=\"0\" end=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1699.9965839385986,
+    "y": 1035.6217069625854,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "cee99943.fb3588"
+      ]
+    ]
+  },
+  {
+    "id": "509849b3.d30508",
+    "type": "switchNode",
+    "name": "switch Role",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'role'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2130.9968280792236,
+    "y": 1001.621829032898,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "934da16.2ecff6"
+      ]
+    ]
+  },
+  {
+    "id": "934da16.2ecff6",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2270.9970722198486,
+    "y": 999.6219511032104,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "e881355e.f5e048"
+      ]
+    ]
+  },
+  {
+    "id": "e881355e.f5e048",
+    "type": "set",
+    "name": "set prop.role",
+    "xml": "<set>\n<parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\n",
+    "comments": "",
+    "x": 2414.9978046417236,
+    "y": 999.2218046188354,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "c3c5524a.3faea",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1978.9968872070312,
+    "y": 1178.1219259500504,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "694081b0.40c87"
+      ]
+    ]
+  },
+  {
+    "id": "a5b86b7b.af84c8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1976.8492164611816,
+    "y": 1139.18805372715,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "2179a00d.ce49"
+      ]
+    ]
+  },
+  {
+    "id": "7dae3a54.790c34",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2157.996570587158,
+    "y": 890.6216526031494,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "a3fba491.823078",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1323.496524810791,
+    "y": 1070.6217823028564,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "57da3fea.264e9",
+        "eb1ab4ec.5e2dc8",
+        "e782e2ca.8bf82",
+        "1cdc5d42.9a95b3"
+      ]
+    ]
+  },
+  {
+    "id": "2179a00d.ce49",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2106.4974098205566,
+    "y": 1132.6220136880875,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "694081b0.40c87",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1705.4971466064453,
+    "y": 1257.6221548318863,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "96cc2adb.55b7e8"
+      ]
+    ]
+  },
+  {
+    "id": "ac9bfac3.fa8558",
+    "type": "for",
+    "name": "for loop siteidx - Get site ID from servicedata",
+    "xml": "<for index=\"siteidx\" start=\"0\" end=\"`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2524.4985961914062,
+    "y": 1765.6224666833878,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a2ba66c.8ff5498"
+      ]
+    ]
+  },
+  {
+    "id": "8bbd7692.ac8cd8",
+    "type": "switchNode",
+    "name": "switch siteId",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1995.501958847046,
+    "y": 1879.6239286661148,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "4610475a.073248"
+      ]
+    ]
+  },
+  {
+    "id": "4610475a.073248",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2150.5023288726807,
+    "y": 1881.6242953538895,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "feeed51.dea6e28"
+      ]
+    ]
+  },
+  {
+    "id": "4e949727.dc9598",
+    "type": "set",
+    "name": "Add sites to list and update length",
+    "xml": "<set>\n<parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\n\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\n<parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n",
+    "comments": "",
+    "x": 2128.0009231567383,
+    "y": 2014.1228910684586,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "d462299e.954ef8",
+    "type": "execute",
+    "name": "execute RestApiCallNode create vpn topology",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 720.9996967315674,
+    "y": 1219.623323082924,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "eedd5dfa.0c3ec",
+        "8a2fbc0b.ebcbf"
+      ]
+    ]
+  },
+  {
+    "id": "8a2fbc0b.ebcbf",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 964.9996509552002,
+    "y": 1240.6231399774551,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "d213fa13.f05e78"
+      ]
+    ]
+  },
+  {
+    "id": "d213fa13.f05e78",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "comments": "",
+    "outputs": 1,
+    "x": 1134.999589920044,
+    "y": 1243.6231399774551,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "c3f37303.c62e9",
+    "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 topology failed\" />\n",
+    "comments": "",
+    "x": 1134.9997119903564,
+    "y": 1199.6231399774551,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "eedd5dfa.0c3ec",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 967.999589920044,
+    "y": 1199.6231399774551,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "c3f37303.c62e9"
+      ]
+    ]
+  },
+  {
+    "id": "d4efb2ad.bacb3",
+    "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": 1139.565273284912,
+    "y": 932.2990169525146,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "27476583.31719a",
+    "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 = SDWAN-Controller AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 676.0650634765625,
+    "y": 981.29931640625,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "62080e5d.ec8ce",
+        "dfaa962c.3e1378",
+        "bbba9586.9afb98"
+      ]
+    ]
+  },
+  {
+    "id": "62080e5d.ec8ce",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 942.0652122497559,
+    "y": 944.2990169525146,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "d4efb2ad.bacb3"
+      ]
+    ]
+  },
+  {
+    "id": "dfaa962c.3e1378",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 938.55592918396,
+    "y": 982.8731136322021,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "663ca3f0.5f815c"
+      ]
+    ]
+  },
+  {
+    "id": "bbba9586.9afb98",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 933.88893699646,
+    "y": 1024.2064266204834,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "936e384d.44b2d8"
+      ]
+    ]
+  },
+  {
+    "id": "663ca3f0.5f815c",
+    "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": 1115.1273403167725,
+    "y": 971.1588497161865,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "936e384d.44b2d8",
+    "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": 1121.6614933013916,
+    "y": 1019.645619392395,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "96cc2adb.55b7e8",
+    "type": "for",
+    "name": "for pnidx.. mdsal-psd.service-data.networks.network_length[]",
+    "xml": "<for index='pnidx' start='0' end='`$mdsal-parentsd.service-data.networks.network_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2013.4972763061523,
+    "y": 1257.122277855873,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "b7189ec7.b6673"
+      ]
+    ]
+  },
+  {
+    "id": "86cf34ff.454008",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANConnectivityInstance",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.request-information.request-action == ActivateSDWANConnectivityInstance`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1860.165672302246,
+    "y": 1346.1222940683365,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "9f2ef89f.648238"
+      ]
+    ]
+  },
+  {
+    "id": "9f2ef89f.648238",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2116.1651248931885,
+    "y": 1344.1222330331802,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "e8091f90.d8758"
+      ]
+    ]
+  },
+  {
+    "id": "ea7febcc.253688",
+    "type": "for",
+    "name": "for loop paramidx - Get topology from servicedata",
+    "xml": "<for index=\"paramidx\" start=\"0\" end=\"`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1903.1637878417969,
+    "y": 1437.1214720010757,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a261c913.e49f08"
+      ]
+    ]
+  },
+  {
+    "id": "c9c5e103.2dba",
+    "type": "switchNode",
+    "name": "switch topology",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2357.1641483306885,
+    "y": 1424.121761918068,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "d03c47e7.2291b8"
+      ]
+    ]
+  },
+  {
+    "id": "d03c47e7.2291b8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2506.1639041900635,
+    "y": 1419.1218839883804,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6f44a2b9.64d87c"
+      ]
+    ]
+  },
+  {
+    "id": "6f44a2b9.64d87c",
+    "type": "set",
+    "name": "set topology",
+    "xml": "<set>\n<parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 2646.1640911102295,
+    "y": 1416.721799492836,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "2f06a667.74729a",
+    "type": "switchNode",
+    "name": "switch vpnId",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpn-id'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2344.8300952911377,
+    "y": 1462.454986691475,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "26cdcacc.68bc96"
+      ]
+    ]
+  },
+  {
+    "id": "26cdcacc.68bc96",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2484.8300380706787,
+    "y": 1462.454803109169,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "b29eb112.7e5e6"
+      ]
+    ]
+  },
+  {
+    "id": "b29eb112.7e5e6",
+    "type": "set",
+    "name": "set prop.vpn1Id",
+    "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 2632.830041885376,
+    "y": 1462.054870724678,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "6f11d9b9.d9b5a8",
+    "type": "execute",
+    "name": "execute RestApiCallNode create vpn ",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/vpn-services'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 689.9980926513672,
+    "y": 1128.1227440834045,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "65b6f0f3.2d5de",
+        "76008493.6f9b6c"
+      ]
+    ]
+  },
+  {
+    "id": "76008493.6f9b6c",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 909.9979953765869,
+    "y": 1124.1227089166641,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "3a95c7bc.96e9b8"
+      ]
+    ]
+  },
+  {
+    "id": "3a95c7bc.96e9b8",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "comments": "",
+    "outputs": 1,
+    "x": 1079.9979343414307,
+    "y": 1127.1227089166641,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "daf3ded5.68f9c",
+    "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 failed\" />\n",
+    "comments": "",
+    "x": 1079.9980564117432,
+    "y": 1083.1227089166641,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "65b6f0f3.2d5de",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 912.9979343414307,
+    "y": 1083.1227089166641,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "daf3ded5.68f9c"
+      ]
+    ]
+  },
+  {
+    "id": "643b6a4a.e81654",
+    "type": "set",
+    "name": "set prop.name",
+    "xml": "<set>\n<parameter name='prop.name' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\n",
+    "comments": "",
+    "x": 2489.9968280792236,
+    "y": 1051.1214628219604,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "607a7459.cb7aac",
+    "type": "switchNode",
+    "name": "switch sdwanVpnName",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'sdwanVpnName'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2169.4965839385986,
+    "y": 1056.1214628219604,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "5340c76b.84ae08"
+      ]
+    ]
+  },
+  {
+    "id": "5340c76b.84ae08",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2346.4968280792236,
+    "y": 1053.1214628219604,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "643b6a4a.e81654"
+      ]
+    ]
+  },
+  {
+    "id": "6b6508e8.a91ff8",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1259.0269775390625,
+    "y": 874.3190307617188,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "f4b4f93.ed2c608",
+        "62278433.5ef6cc",
+        "f022812b.da229"
+      ]
+    ]
+  },
+  {
+    "id": "989cf904.9df618",
+    "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": 852.18115234375,
+    "y": 883.0944213867188,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6b6508e8.a91ff8"
+      ]
+    ]
+  },
+  {
+    "id": "62278433.5ef6cc",
+    "type": "execute",
+    "name": "generate tmp.ar-url-connection 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-connection\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar.provided-allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1507.9962997436523,
+    "y": 872.6668090820312,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "f022812b.da229",
+    "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-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-providedAr\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1656.99609375,
+    "y": 911.3333740234375,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "9877a25.829156",
+        "a15a79a.36a3388"
+      ]
+    ]
+  },
+  {
+    "id": "e782e2ca.8bf82",
+    "type": "execute",
+    "name": "generate prop.ar-parent-service-instance-id",
+    "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-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar-parent-service-instance-id`\"/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1687.3295593261719,
+    "y": 1120.0003362894058,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "1cdc5d42.9a95b3",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get 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-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-parentsd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1706.3295288085938,
+    "y": 1154.0004221200943,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "a5b86b7b.af84c8",
+        "c3c5524a.3faea"
+      ]
+    ]
+  },
+  {
+    "id": "cee99943.fb3588",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1966.0272235870361,
+    "y": 1030.5311307907104,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "509849b3.d30508",
+        "607a7459.cb7aac"
+      ]
+    ]
+  },
+  {
+    "id": "e8091f90.d8758",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1492.0277786254883,
+    "y": 1477.5313215255737,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "ea7febcc.253688",
+        "2c101b23.e11c54",
+        "390e0e98.c0e052",
+        "64a3b63d.2b1de8"
+      ]
+    ]
+  },
+  {
+    "id": "b7189ec7.b6673",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1602.6634063720703,
+    "y": 1344.667093873024,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "86cf34ff.454008"
+      ]
+    ]
+  },
+  {
+    "id": "a2ba66c.8ff5498",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1827.9984703063965,
+    "y": 1881.667660355568,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "8bbd7692.ac8cd8"
+      ]
+    ]
+  },
+  {
+    "id": "a261c913.e49f08",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2189.027723312378,
+    "y": 1437.5314317941666,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "c9c5e103.2dba",
+        "2f06a667.74729a"
+      ]
+    ]
+  },
+  {
+    "id": "aa76b9db.55ac58",
+    "type": "set",
+    "name": "set prop.attach.siteId",
+    "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n\n",
+    "comments": "",
+    "x": 2080.665012359619,
+    "y": 1955.3338705301285,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "1deec432.31ab3c",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2260.255527496338,
+    "y": 1736.00441801548,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "6d2e1c61.8e7884",
+        "ac9bfac3.fa8558"
+      ]
+    ]
+  },
+  {
+    "id": "feeed51.dea6e28",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1883.755947113037,
+    "y": 1981.754342675209,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "aa76b9db.55ac58",
+        "4e949727.dc9598"
+      ]
+    ]
+  },
+  {
+    "id": "1b86e032.9e8d5",
+    "type": "call",
+    "name": "call sdwan-wanport-vnf-topology-operation-underlay",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 739.753984451294,
+    "y": 1336.2539825439453,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "7f6d52f3.6e394c",
+    "type": "comment",
+    "name": "underlay",
+    "info": "1. Get consumed AR from service data\n2. for all the AR id's get the respective AR from MDSAL\n3. From MDSAL AR get parent service instance ID\n4. Get service data based in parent service instance ID to get parent service. i.e, SDWAN Infra service\n5. Get SDWAN connectivity from looping network and check for topology\n6. from parent service data get siteAttachInstance vnf and check the role\n7. from parent service data get wanportINstance vnf and check the transportNetworkName\n8. Get provided AR from the parent service data\n9. for each of the provided ARid get the AR from MDSAL\n10.in the AR check for hub\n\n",
+    "comments": "",
+    "x": 647.7229633331299,
+    "y": 1301.22292137146,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "38de1063.b6c52",
+    "type": "set",
+    "name": "set prop.siteAttachement_length=0",
+    "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",
+    "comments": "",
+    "x": 688.9999694824219,
+    "y": 848.5311733484268,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "2c101b23.e11c54",
+    "type": "set",
+    "name": "set prop.ar-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.service-information.service-instance-id`' />\n",
+    "comments": "",
+    "x": 1852.0003967285156,
+    "y": 1475.531231880188,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  },
+  {
+    "id": "390e0e98.c0e052",
+    "type": "execute",
+    "name": "generate prop.ar-service-instance-id",
+    "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-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar-service-instance-id`\"/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1862.3326683044434,
+    "y": 1516.4093770980835,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "64a3b63d.2b1de8",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get 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-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-sd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1891.3327331542969,
+    "y": 1557.4093770980835,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "989a92da.0b198",
+        "30bf8c06.3702c4"
+      ]
+    ]
+  },
+  {
+    "id": "989a92da.0b198",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2147.8524169921875,
+    "y": 1566.5972105264664,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "337ed6c3.e36fba"
+      ]
+    ]
+  },
+  {
+    "id": "30bf8c06.3702c4",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2150.000087738037,
+    "y": 1605.5310827493668,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "8b4ff7.5f205008"
+      ]
+    ]
+  },
+  {
+    "id": "337ed6c3.e36fba",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2277.5006103515625,
+    "y": 1560.0311704874039,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "8b4ff7.5f205008",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1625.9998779296875,
+    "y": 1656.5311304330826,
+    "z": "dffc6494.bbb2d8",
+    "wires": [
+      [
+        "70d2ed6a.c33784"
+      ]
+    ]
+  },
+  {
+    "id": "94e25478.dfdfd8",
+    "type": "comment",
+    "name": "TODO send Email",
+    "info": "",
+    "comments": "",
+    "x": 988.9999866485596,
+    "y": 1381.0313110351562,
+    "z": "dffc6494.bbb2d8",
+    "wires": []
+  }
+]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.json
new file mode 100644 (file)
index 0000000..1e6cf41
--- /dev/null
@@ -0,0 +1,1304 @@
+[
+  {
+    "id": "61863820.711ea8",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 88,
+    "y": 36,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "14f9537d.79772d"
+      ]
+    ]
+  },
+  {
+    "id": "14f9537d.79772d",
+    "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": 271.00000381469727,
+    "y": 110.00001811981201,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "d19b9445.194798"
+      ]
+    ]
+  },
+  {
+    "id": "d19b9445.194798",
+    "type": "method",
+    "name": "sdwan-attachment-topology-operation-create",
+    "xml": "<method rpc='sdwan-attachment-topology-operation-create' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 259.0001220703125,
+    "y": 198.00000095367432,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "3526110c.60448e"
+      ]
+    ]
+  },
+  {
+    "id": "3526110c.60448e",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 179.00005340576172,
+    "y": 947.0002489089966,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "99952776.e81ae8",
+        "9b94537c.a4dfa",
+        "9596dbd6.648298",
+        "636ccd57.e35144",
+        "43bd9b90.f9bb04",
+        "4e3d9f6f.e48ca",
+        "a91b49df.3ab368",
+        "af03f775.1849d8",
+        "a399f576.497928",
+        "86a651b6.fa2c1",
+        "27a69ba7.020164",
+        "e417171b.b17d78",
+        "a85450f9.54be5",
+        "8337596d.6afa48",
+        "5db0bc82.831f24",
+        "757f6754.1033f8",
+        "e6e8c666.3550b8",
+        "7955fe12.58b57",
+        "9077e61b.e6a3a8",
+        "8e980e4e.121e8",
+        "8bf022a6.d0cbb",
+        "3aa5d5fd.f4649a"
+      ]
+    ]
+  },
+  {
+    "id": "aa8c6e8b.e30e",
+    "type": "comment",
+    "name": "Set allotted resource id if not sent by SO",
+    "info": "",
+    "comments": "",
+    "x": 663.0767517089844,
+    "y": 107.43391990661621,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "99952776.e81ae8",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 609.0000305175781,
+    "y": 162.99999332427979,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "6811d51c.3757dc",
+        "513b9b13.594134"
+      ]
+    ]
+  },
+  {
+    "id": "6811d51c.3757dc",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 807.0001182556152,
+    "y": 132.999981880188,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "7f9fc121.cd5a5"
+      ]
+    ]
+  },
+  {
+    "id": "513b9b13.594134",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 806.0000267028809,
+    "y": 169.99999237060547,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "28a76577.73245a"
+      ]
+    ]
+  },
+  {
+    "id": "28a76577.73245a",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-id",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n",
+    "comments": "",
+    "x": 1004.0000152587891,
+    "y": 167.0000114440918,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "9b94537c.a4dfa",
+    "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": 576.9999542236328,
+    "y": 384.0001001358032,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "9596dbd6.648298",
+    "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": 577.2618713378906,
+    "y": 465.6667814254761,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "636ccd57.e35144",
+    "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": 630.2619323730469,
+    "y": 552.6666994094849,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "7f9fc121.cd5a5",
+    "type": "execute",
+    "name": "execute tmp.ar.allotted-resource-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"tmp.ar.allotted-resource-id\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1022.0000953674316,
+    "y": 133.9999876022339,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "88221720.7c95b8"
+      ]
+    ]
+  },
+  {
+    "id": "88221720.7c95b8",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1240.0001373291016,
+    "y": 133.99995136260986,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "aa4b0ebd.72265"
+      ]
+    ]
+  },
+  {
+    "id": "aa4b0ebd.72265",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while generation allotted resource ID\" />\n",
+    "comments": "",
+    "x": 1406.0000915527344,
+    "y": 133.9999656677246,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "1ec18fe8.aa439",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1136.0002307891846,
+    "y": 624.7778720855713,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "14fc1138.5da1ef"
+      ]
+    ]
+  },
+  {
+    "id": "9378fa3a.19c018",
+    "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: Existing connection attachment allotted resource\" />\n    \n",
+    "comments": "",
+    "x": 1869.5186100006104,
+    "y": 625.8439435958862,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "b12c1e8e.81e23",
+    "type": "comment",
+    "name": "Check for non existence of allotted resource",
+    "info": "",
+    "comments": "",
+    "x": 992.0001525878906,
+    "y": 558.7779388427734,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "da203e6.ea028c",
+    "type": "for",
+    "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+    "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1512.6666984558105,
+    "y": 769.0000512599945,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "98ae415a.0e4e6"
+      ]
+    ]
+  },
+  {
+    "id": "4e3d9f6f.e48ca",
+    "type": "switchNode",
+    "name": "switch service-data.consumed-allotted-resources_length",
+    "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 694.6660232543945,
+    "y": 745.7140836715698,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "210abe50.d12562",
+        "fd87de34.5f561"
+      ]
+    ]
+  },
+  {
+    "id": "210abe50.d12562",
+    "type": "other",
+    "name": "outcome Null",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 998.8089218139648,
+    "y": 714.5715208053589,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "230c326a.73559e"
+      ]
+    ]
+  },
+  {
+    "id": "fd87de34.5f561",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 975.8089714050293,
+    "y": 775.571475982666,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "6fcbf8ba.f19558"
+      ]
+    ]
+  },
+  {
+    "id": "6fcbf8ba.f19558",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1135.9360618591309,
+    "y": 773.697452545166,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "da203e6.ea028c",
+        "aac67e51.e0669",
+        "1472489a.f6dd67"
+      ]
+    ]
+  },
+  {
+    "id": "230c326a.73559e",
+    "type": "set",
+    "name": "set cidx",
+    "xml": "<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n",
+    "comments": "",
+    "x": 1148.6659049987793,
+    "y": 712.2855710983276,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "a91b49df.3ab368",
+    "type": "set",
+    "name": "set consumed allotted resources",
+    "xml": "<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n",
+    "comments": "",
+    "x": 623.5233154296875,
+    "y": 849.2856483459473,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "aac67e51.e0669",
+    "type": "switchNode",
+    "name": "switch tmp.found-cidx",
+    "xml": "<switch test='`$tmp.found-cidx`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1325.0511093139648,
+    "y": 805.708975315094,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "83192091.f2dbe"
+      ]
+    ]
+  },
+  {
+    "id": "83192091.f2dbe",
+    "type": "outcomeTrue",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1515.0510635375977,
+    "y": 805.7089123725891,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "edcd9f1b.5f174"
+      ]
+    ]
+  },
+  {
+    "id": "edcd9f1b.5f174",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1681.0510635375977,
+    "y": 805.7089123725891,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "41ea1034.cd583"
+      ]
+    ]
+  },
+  {
+    "id": "98ae415a.0e4e6",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1929.7783279418945,
+    "y": 766.000078201294,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "f6ba2e93.3a869"
+      ]
+    ]
+  },
+  {
+    "id": "f6ba2e93.3a869",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2111.587902069092,
+    "y": 766.4645252227783,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "135a37d3.398c28"
+      ]
+    ]
+  },
+  {
+    "id": "41ea1034.cd583",
+    "type": "set",
+    "name": "set tmp.cidx",
+    "xml": "<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n",
+    "comments": "",
+    "x": 1842.924446105957,
+    "y": 805.2206134796143,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "3a0c681c.87b8c8",
+    "type": "comment",
+    "name": "Add to consumed service consumed-allotted-resources in mdsal",
+    "info": "Prepare data and add to service-data",
+    "comments": "",
+    "x": 715.667236328125,
+    "y": 676.0000476837158,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "4601b662.be85f8",
+    "type": "comment",
+    "name": "This set resource will be added to MDSAL by provider code",
+    "info": "Below we add to service-data.consumed-allotted-resource at last index",
+    "comments": "",
+    "x": 703.0001525878906,
+    "y": 814.7781400680542,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "6c13b6ba.f1d808",
+    "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.allotted-resource-information.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n    <parameter name=\"id\" value=\"`$tmp.ar.allotted-resource-id`\" />\n\t<parameter name=\"name\" value=\"`$prop.connection-attachment.sotnVpnName`\" />\n\t<parameter name=\"access-provider-id\" value=\"`$prop.connection-attachment.access-provider-id`\" />\n\t<parameter name=\"access-client-id\" value=\"`$prop.connection-attachment.access-client-id`\" />\n\t<parameter name=\"access-topology-id\" value=\"`$prop.connection-attachment.access-topology-id`\" />\n\t<parameter name=\"access-node-id\" value=\"`$prop.connection-attachment.access-node-id`\" />\n\t<parameter name=\"access-ltp-id\" value=\"`$prop.connection-attachment.access-ltp-id`\" />\t\n\t<parameter name=\"cvlan\" value=\"`$prop.connection-attachment.cVLAN`\" />\n    <parameter name=\"vpn-name\" value=\"`$prop.connection-attachment.sotnVpnName`\" />\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=\"Created\" />\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 613.6908569335938,
+    "y": 1774.531904220581,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "cc11f86f.a05c98",
+        "2748d678.9b155a"
+      ]
+    ]
+  },
+  {
+    "id": "cc11f86f.a05c98",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 808.4527931213379,
+    "y": 1765.4845056533813,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "ad7d0ba7.e370e8"
+      ]
+    ]
+  },
+  {
+    "id": "ad7d0ba7.e370e8",
+    "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": 974.9766731262207,
+    "y": 1777.1035766601562,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "2748d678.9b155a",
+    "type": "failure",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 815.5480804443359,
+    "y": 1798.246473312378,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "ad7d0ba7.e370e8"
+      ]
+    ]
+  },
+  {
+    "id": "65ec4e22.c3de6",
+    "type": "comment",
+    "name": "Save Resource to AAI",
+    "info": "",
+    "comments": "",
+    "x": 647.5005340576172,
+    "y": 1742.833875656128,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "cf325757.026c08",
+    "type": "comment",
+    "name": "Set allotted resource type if not sent by SO",
+    "info": "",
+    "comments": "",
+    "x": 649,
+    "y": 216.00000095367432,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "43bd9b90.f9bb04",
+    "type": "switchNode",
+    "name": "switch allotted-resource-type",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 610.9233093261719,
+    "y": 256.5660572052002,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "b8faf677.a88b58",
+        "cb37a8ac.844d88"
+      ]
+    ]
+  },
+  {
+    "id": "b8faf677.a88b58",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 813.9234619140625,
+    "y": 241.56606006622314,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "fb16264e.206978"
+      ]
+    ]
+  },
+  {
+    "id": "cb37a8ac.844d88",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 806.9232902526855,
+    "y": 281.5660800933838,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "46a12ee1.3eb2e"
+      ]
+    ]
+  },
+  {
+    "id": "46a12ee1.3eb2e",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-type",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\n",
+    "comments": "",
+    "x": 1038.9232749938965,
+    "y": 281.56608486175537,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "e0d4b358.f0111",
+    "type": "comment",
+    "name": "For storage in AAI connection-attachment-topology",
+    "info": "",
+    "comments": "",
+    "x": 673.9999618530273,
+    "y": 351.0000009536743,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "2c1dc14e.d8696e",
+    "type": "comment",
+    "name": "Obtain different URL, template location etc",
+    "info": "For saving resource information to MDSAL & for AAI",
+    "comments": "",
+    "x": 648.9999465942383,
+    "y": 432.8889102935791,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "41be4404.2062fc",
+    "type": "comment",
+    "name": "Used for Put AR by id to MDSAL",
+    "info": "",
+    "comments": "",
+    "x": 615.0000305175781,
+    "y": 521.8889274597168,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "e088f78d.0cd8b8",
+    "type": "comment",
+    "name": "Obtain the last index in services",
+    "info": "ServiceData is added by Provider code",
+    "comments": "",
+    "x": 616.4444732666016,
+    "y": 707.8888721466064,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "9077e61b.e6a3a8",
+    "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": 599.2681427001953,
+    "y": 1681.359203338623,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "8e980e4e.121e8",
+    "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": 567.6812286376953,
+    "y": 1843.9749298095703,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "fb16264e.206978",
+    "type": "set",
+    "name": "set tmp.ar.allotted-resource-type",
+    "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value=\"SDWANAttachmentInstance\" />\n",
+    "comments": "",
+    "x": 1053.0001487731934,
+    "y": 241.99998664855957,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "7955fe12.58b57",
+    "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.sdwan-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\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 650.0002746582031,
+    "y": 1615.00013256073,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "7e102bff.eb07f4",
+        "11a3c1ef.0f585e",
+        "cbe02c45.fd392"
+      ]
+    ]
+  },
+  {
+    "id": "7e102bff.eb07f4",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 899.6416282653809,
+    "y": 1653.3314628601074,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "d199a2ac.4c653"
+      ]
+    ]
+  },
+  {
+    "id": "11a3c1ef.0f585e",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 890.6416778564453,
+    "y": 1621.831488609314,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "d199a2ac.4c653"
+      ]
+    ]
+  },
+  {
+    "id": "cbe02c45.fd392",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 894.391716003418,
+    "y": 1592.1885934844613,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "d05ce36c.67312"
+      ]
+    ]
+  },
+  {
+    "id": "d199a2ac.4c653",
+    "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": 1060.391716003418,
+    "y": 1622.5815124511719,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "d05ce36c.67312",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1036.0476837158203,
+    "y": 1588.3807626739144,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "27a69ba7.020164",
+    "type": "execute",
+    "name": "execute RestApiCallNode - Update parent provided service AR",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-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=\"parent\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 714.9999542236328,
+    "y": 1131.000165939331,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "2ac08c5a.9ea264",
+        "9091e2db.32589",
+        "bcd16107.cb13d"
+      ]
+    ]
+  },
+  {
+    "id": "2ac08c5a.9ea264",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1023.3080139160156,
+    "y": 1162.998441696167,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "900f543a.444328"
+      ]
+    ]
+  },
+  {
+    "id": "9091e2db.32589",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1014.3080635070801,
+    "y": 1131.4984674453735,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "900f543a.444328"
+      ]
+    ]
+  },
+  {
+    "id": "bcd16107.cb13d",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1018.0581016540527,
+    "y": 1101.8555723205209,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "1404ab79.5b1245"
+      ]
+    ]
+  },
+  {
+    "id": "900f543a.444328",
+    "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": 1184.0581016540527,
+    "y": 1132.2484912872314,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "1404ab79.5b1245",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1159.714069366455,
+    "y": 1098.047741509974,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "39d4184a.092378",
+    "type": "comment",
+    "name": "Put the parent allotted resource in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 643.9999008178711,
+    "y": 1093.000072479248,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "a85450f9.54be5",
+    "type": "set",
+    "name": "set connection-attachment-ar-identifiers",
+    "xml": "<set>\n<parameter name='connection-attachment-ar-identifiers.consuming-service-instance-id' value=\"`$connection-attachment-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n",
+    "comments": "",
+    "x": 640.3570861816406,
+    "y": 1295.5716915130615,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "e417171b.b17d78",
+    "type": "set",
+    "name": "set ar-data",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\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.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.` \" />",
+    "comments": "",
+    "x": 560.2139129638672,
+    "y": 1263.381194114685,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "8337596d.6afa48",
+    "type": "set",
+    "name": "set identifiers in overall structure",
+    "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.' \nvalue=\"`$connection-attachment-ar-identifiers.`\" />\n\n\n",
+    "comments": "",
+    "x": 619.1668853759766,
+    "y": 1329.6668767929077,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "5db0bc82.831f24",
+    "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": 571.4997253417969,
+    "y": 1403.0004043579102,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "757f6754.1033f8",
+    "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='Created' />\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": 622.4867630004883,
+    "y": 1458.9516372680664,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "e6e8c666.3550b8",
+    "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": 567.0553817749023,
+    "y": 1364.5557622909546,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "99a7dd56.4fb72",
+    "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": 684.3888702392578,
+    "y": 1229.5556087493896,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "86a651b6.fa2c1",
+    "type": "execute",
+    "name": "generate parent-ar url - replace allotted-resource-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-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": 679.5000152587891,
+    "y": 1057.0000114440918,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "a399f576.497928",
+    "type": "execute",
+    "name": "generate parent-ar url - replace service-instance-id",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 675.4999389648438,
+    "y": 1014.000147819519,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "b106df9f.5ad7c",
+    "type": "comment",
+    "name": "Prepare Parent AR URL",
+    "info": "Preparation to set provided-allotted-resource in parent service instance",
+    "comments": "",
+    "x": 593.5003967285156,
+    "y": 943.0001010894775,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "af03f775.1849d8",
+    "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": 632.5001907348633,
+    "y": 976.5000405311584,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "135a37d3.398c28",
+    "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 as cosumed allotted resource already exists.\" />\n",
+    "comments": "",
+    "x": 2189.7569732666016,
+    "y": 814.645830154419,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "1472489a.f6dd67",
+    "type": "set",
+    "name": "set tmp.found-cidx",
+    "xml": "<set>\n<parameter name='tmp.found-cidx' value=\"`false`\" />\n\n\n",
+    "comments": "",
+    "x": 1315.6461448669434,
+    "y": 726.3125731945038,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "a78b3889.5b8998",
+    "type": "comment",
+    "name": "Add to parent services provided-allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 704.2015075683594,
+    "y": 910.9792575836182,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "67269130.185f5",
+    "type": "comment",
+    "name": "Add to allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 624.9686965942383,
+    "y": 1196.9689378738403,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "14fc1138.5da1ef",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1298.000051498413,
+    "y": 624.2777614593506,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "4695b038.898f5"
+      ]
+    ]
+  },
+  {
+    "id": "4695b038.898f5",
+    "type": "switchNode",
+    "name": "switch cr length",
+    "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1485.8574314117432,
+    "y": 624.8968968391418,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "207b23e6.6bd71c"
+      ]
+    ]
+  },
+  {
+    "id": "207b23e6.6bd71c",
+    "type": "other",
+    "name": "outcome 1",
+    "xml": "<outcome value='1'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1685.1905536651611,
+    "y": 624.896975517273,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "9378fa3a.19c018"
+      ]
+    ]
+  },
+  {
+    "id": "8bf022a6.d0cbb",
+    "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": 770.0000534057617,
+    "y": 619.0000371932983,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "1ec18fe8.aa439",
+        "a8c0bcfd.baccb"
+      ]
+    ]
+  },
+  {
+    "id": "a8c0bcfd.baccb",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1138.0000839233398,
+    "y": 589.0000352859497,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "e7c1d5d7.6402e8"
+      ]
+    ]
+  },
+  {
+    "id": "e7c1d5d7.6402e8",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1290.0000839233398,
+    "y": 588.0000352859497,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "3aa5d5fd.f4649a",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 576.0039215087891,
+    "y": 1534.2500038146973,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "eae96cd9.5875e",
+        "23f6c134.a5bc8e"
+      ]
+    ]
+  },
+  {
+    "id": "eae96cd9.5875e",
+    "type": "for",
+    "name": "for each sdwan-get-request-input-param",
+    "xml": "<for index='i' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 911.0041198730469,
+    "y": 1480.2501260638237,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "34a921aa.b7fb2e"
+      ]
+    ]
+  },
+  {
+    "id": "b45075fd.7aae48",
+    "type": "comment",
+    "name": "Required for filling template values",
+    "info": "This is done because connection-attachment is generic resource and doesn't have specific parameters",
+    "comments": "",
+    "x": 933.4486236572266,
+    "y": 1514.0832867622375,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "933f50a4.98d0e",
+    "type": "comment",
+    "name": "Remove VNFC prefix",
+    "info": "",
+    "comments": "",
+    "x": 994.003963470459,
+    "y": 1436.6944618225098,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "34a921aa.b7fb2e",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1158.0039672851562,
+    "y": 1481.6943712234497,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      [
+        "d1aee21e.a2d11",
+        "7c70d1bd.e91da"
+      ]
+    ]
+  },
+  {
+    "id": "f68facaa.6f9bc",
+    "type": "comment",
+    "name": "Take the parameter names by removing prefix",
+    "info": "",
+    "comments": "",
+    "x": 1426.0038146972656,
+    "y": 1397.250369310379,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "d1aee21e.a2d11",
+    "type": "execute",
+    "name": "execute split parameterName",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$i].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1377.0384826660156,
+    "y": 1432.2294654846191,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "7c70d1bd.e91da",
+    "type": "set",
+    "name": "set parameterName",
+    "xml": "<set>\n<parameter name=\"`connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$i].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",
+    "comments": "",
+    "x": 1365.4829559326172,
+    "y": 1536.2294359207153,
+    "z": "8a925a2b.b01bd8",
+    "wires": []
+  },
+  {
+    "id": "23f6c134.a5bc8e",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-get-saved-ar-param",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 952.0039672851562,
+    "y": 1554.2500658035278,
+    "z": "8a925a2b.b01bd8",
+    "wires": [
+      []
+    ]
+  }
+]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.json
new file mode 100644 (file)
index 0000000..eb1c854
--- /dev/null
@@ -0,0 +1,2128 @@
+[
+  {
+    "id": "2bdb51b9.ffb50e",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 113,
+    "y": 44,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d26984ef.8ad798"
+      ]
+    ]
+  },
+  {
+    "id": "d26984ef.8ad798",
+    "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": 325.00000381469727,
+    "y": 116.0000171661377,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "a82211ff.bcbea"
+      ]
+    ]
+  },
+  {
+    "id": "a82211ff.bcbea",
+    "type": "method",
+    "name": "sdwan-attachment-topology-operation-deactivate",
+    "xml": "<method rpc='sdwan-attachment-topology-operation-deactivate' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 313.0001220703125,
+    "y": 204,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "17e8ca87.b6b645"
+      ]
+    ]
+  },
+  {
+    "id": "17e8ca87.b6b645",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 329.0001220703125,
+    "y": 759.0002446174622,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "7ace4d9e.58fcf4",
+        "bea2d27c.d685a",
+        "be682c34.83d48",
+        "693dc7ad.b4be18",
+        "eca332.2df45cd",
+        "e0348bfe.6da088",
+        "fa3b1cd4.6bac8",
+        "666c2133.53672",
+        "41482a99.a59c34",
+        "15783ea7.8d4171",
+        "bde1b214.c3f7b",
+        "96128287.8c319",
+        "6a5b6014.c0c27",
+        "e1363ac.79d3bc8",
+        "47bcadbc.4f3554",
+        "5c4aaa91.ee5904",
+        "adeb4876.0f5318",
+        "2ec20a50.f21ce6",
+        "5ceee25e.e4656c",
+        "e3162e1d.557c8",
+        "10dfad38.ba80e3",
+        "8825a27f.2ee76"
+      ]
+    ]
+  },
+  {
+    "id": "7ace4d9e.58fcf4",
+    "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": 725.9935607910156,
+    "y": 157.9934868812561,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "3dae2c9.5fd3cd4",
+    "type": "comment",
+    "name": "set tmp ar-id to fetch resource from MDSAL",
+    "info": "",
+    "comments": "",
+    "x": 754.9538726806641,
+    "y": 122.02528285980225,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "bea2d27c.d685a",
+    "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": 679.9934997558594,
+    "y": 250.99349212646484,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "693dc7ad.b4be18",
+    "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": 686.2553901672363,
+    "y": 338.6602210998535,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "be682c34.83d48",
+    "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": 736.2554931640625,
+    "y": 425.66022205352783,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "e6fef6dc.2d5ab8",
+    "type": "comment",
+    "name": "GET connection-attachment-allotted-resource from mdsal",
+    "info": "",
+    "comments": "",
+    "x": 779.8085174560547,
+    "y": 517.5387678146362,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "43378634.47ada8",
+    "type": "comment",
+    "name": "Used for setting output to API Handler",
+    "info": "",
+    "comments": "",
+    "x": 733.9935302734375,
+    "y": 217.993501663208,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "2638e15d.85e40e",
+    "type": "comment",
+    "name": "Obtain different URL, template location etc",
+    "info": "For saving resource information to MDSAL & for AAI",
+    "comments": "",
+    "x": 751.9934959411621,
+    "y": 303.8823823928833,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "9a84fa70.2209a8",
+    "type": "comment",
+    "name": "Used to Get AR by id to MDSAL, same as self-link",
+    "info": "",
+    "comments": "",
+    "x": 777.9935150146484,
+    "y": 390.8823413848877,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "d74c07cb.d7c4f8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1220.6668281555176,
+    "y": 544.0000286102295,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "34940fae.b43b1"
+      ]
+    ]
+  },
+  {
+    "id": "34940fae.b43b1",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1389.6668319702148,
+    "y": 542.4999294281006,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d6a9a70b.860c78"
+      ]
+    ]
+  },
+  {
+    "id": "d6a9a70b.860c78",
+    "type": "switchNode",
+    "name": "switch cr length",
+    "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1562.5241012573242,
+    "y": 480.11909198760986,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "99f7b40f.a33748",
+        "e196788b.7f6f48"
+      ]
+    ]
+  },
+  {
+    "id": "99f7b40f.a33748",
+    "type": "other",
+    "name": "outcome 1",
+    "xml": "<outcome value='1'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1799.8573455810547,
+    "y": 458.1190423965454,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "4d65a30c.1bb46c"
+      ]
+    ]
+  },
+  {
+    "id": "4d65a30c.1bb46c",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic='true'>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1984.3812351226807,
+    "y": 455.02387619018555,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "c007de9b.1a8ea",
+        "5a0d997d.5410d8",
+        "58ae2d07.a93234"
+      ]
+    ]
+  },
+  {
+    "id": "89d000a2.16646",
+    "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 resource not found\" />\n    \n",
+    "comments": "",
+    "x": 1908.5190773010254,
+    "y": 580.0661172866821,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "c9d998e2.a81b38",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1212.5186309814453,
+    "y": 579.0661134719849,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d2ec7fde.451d7"
+      ]
+    ]
+  },
+  {
+    "id": "d2ec7fde.451d7",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1392.5185813903809,
+    "y": 579.7326641082764,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "89d000a2.16646"
+      ]
+    ]
+  },
+  {
+    "id": "e196788b.7f6f48",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1788.1852989196777,
+    "y": 495.3994026184082,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "89d000a2.16646"
+      ]
+    ]
+  },
+  {
+    "id": "c007de9b.1a8ea",
+    "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": 2230.444793701172,
+    "y": 415.0001058578491,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "58ae2d07.a93234",
+    "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": 2163.4447898864746,
+    "y": 505.42866039276123,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "5a0d997d.5410d8",
+    "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": 2174.444625854492,
+    "y": 459.0001096725464,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d61247de.876858",
+        "8beb5612.c27698"
+      ]
+    ]
+  },
+  {
+    "id": "d61247de.876858",
+    "type": "outcome",
+    "name": "outcome Active",
+    "xml": "<outcome value='Active'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2381.044574737549,
+    "y": 449.0001096725464,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "17b6e937.06f8f7"
+      ]
+    ]
+  },
+  {
+    "id": "8beb5612.c27698",
+    "type": "outcome",
+    "name": "outcome Other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2380.7590942382812,
+    "y": 491.4287004470825,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d4116f87.4108f"
+      ]
+    ]
+  },
+  {
+    "id": "17b6e937.06f8f7",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2533.5151290893555,
+    "y": 447.3757600784302,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "d4116f87.4108f",
+    "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": 2553.6669845581055,
+    "y": 488.000111579895,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "30756753.5fa938",
+    "type": "call",
+    "name": "call GENERIC-RESOURCE-API:sdwan-get-saved-ar-param",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 941.3031158447266,
+    "y": 640.4935908317566,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "eca332.2df45cd",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 638.3092803955078,
+    "y": 641.4999389648438,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "30756753.5fa938"
+      ]
+    ]
+  },
+  {
+    "id": "804022a6.3de27",
+    "type": "comment",
+    "name": "GET parent-service-data from mdsal to check existence of other End point",
+    "info": "",
+    "comments": "",
+    "x": 820.0004425048828,
+    "y": 702.5316982269287,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "de0fff38.b1af5",
+    "type": "comment",
+    "name": "GET connection-attachment-ar to store AR data from mdsal",
+    "info": "",
+    "comments": "",
+    "x": 2213.472946166992,
+    "y": 379.5039691925049,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "4c932022.44bb4",
+    "type": "comment",
+    "name": "Set source end point",
+    "info": "",
+    "comments": "",
+    "x": 651.9728393554688,
+    "y": 609.2540645599365,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "e0348bfe.6da088",
+    "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": 704.9689178466797,
+    "y": 734.0002088546753,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "9796ef03.4b4b1",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1082.9689140319824,
+    "y": 783.000207901001,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "b45d9050.17bcb"
+      ]
+    ]
+  },
+  {
+    "id": "bd6c8a09.7c4c38",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1074.8207168579102,
+    "y": 818.0662927627563,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "69c73a80.242c64"
+      ]
+    ]
+  },
+  {
+    "id": "69c73a80.242c64",
+    "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 resource not found\" />\n    \n",
+    "comments": "",
+    "x": 1249.9694023132324,
+    "y": 814.3336429595947,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "b45d9050.17bcb",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1233.9689140319824,
+    "y": 781.000207901001,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "a4e20887.0b85d8",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 948.7308311462402,
+    "y": 1757.9527840614319,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "8d059d44.8e7a7"
+      ]
+    ]
+  },
+  {
+    "id": "8d059d44.8e7a7",
+    "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": 1110.2546653747559,
+    "y": 1802.5718301534653,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "e2a5ade9.56c27",
+    "type": "failure",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 950.8260726928711,
+    "y": 1823.714726805687,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "8d059d44.8e7a7"
+      ]
+    ]
+  },
+  {
+    "id": "3cae81ad.c7916e",
+    "type": "comment",
+    "name": "Save Resource to AAI",
+    "info": "",
+    "comments": "",
+    "x": 662.7784996032715,
+    "y": 1773.3021473884583,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "96128287.8c319",
+    "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": 677.5461959838867,
+    "y": 1694.8276286125183,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "6a5b6014.c0c27",
+    "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": 624.9593353271484,
+    "y": 1889.4434475898743,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "bde1b214.c3f7b",
+    "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.sdwan-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\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 727.2782974243164,
+    "y": 1602.4684023857117,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "7e9cd2ab.0312bc",
+        "85c2a287.db093",
+        "b89f709c.ac27e"
+      ]
+    ]
+  },
+  {
+    "id": "7e9cd2ab.0312bc",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 995.9196739196777,
+    "y": 1653.7998141273856,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "c16778e0.4835a8"
+      ]
+    ]
+  },
+  {
+    "id": "85c2a287.db093",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 986.9197235107422,
+    "y": 1622.2998398765922,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "c16778e0.4835a8"
+      ]
+    ]
+  },
+  {
+    "id": "b89f709c.ac27e",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 990.6697616577148,
+    "y": 1592.6569447517395,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "69a0963d.493b78"
+      ]
+    ]
+  },
+  {
+    "id": "c16778e0.4835a8",
+    "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": 1156.6697616577148,
+    "y": 1623.04986371845,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "69a0963d.493b78",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1132.3257293701172,
+    "y": 1588.8491139411926,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "fa3b1cd4.6bac8",
+    "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",
+    "comments": "",
+    "x": 627.4919166564941,
+    "y": 1452.8493254184723,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "41482a99.a59c34",
+    "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": 644.777759552002,
+    "y": 1525.4689230918884,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "15783ea7.8d4171",
+    "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='PendingDelete' />\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": 699.7648162841797,
+    "y": 1563.420060634613,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "666c2133.53672",
+    "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": 641.3334579467773,
+    "y": 1492.0239758491516,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "6edf8947.4ad548",
+    "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": 750.6668891906738,
+    "y": 1408.0238506793976,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "2f4fb378.be435c",
+    "type": "comment",
+    "name": "Add to allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 692.2467155456543,
+    "y": 1375.4371523857117,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "e440d873.f4a568",
+    "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.allotted-resource-information.parent-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=\"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=\"PendingDelete\" />\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 689.2227783203125,
+    "y": 1810.7542901039124,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "a4e20887.0b85d8",
+        "e2a5ade9.56c27"
+      ]
+    ]
+  },
+  {
+    "id": "e1363ac.79d3bc8",
+    "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": 853.3339538574219,
+    "y": 560.4999494552612,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d74c07cb.d7c4f8",
+        "c9d998e2.a81b38"
+      ]
+    ]
+  },
+  {
+    "id": "47bcadbc.4f3554",
+    "type": "execute",
+    "name": "get parent-service-data tmp.ar-url-psd",
+    "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": 707.0001983642578,
+    "y": 769.0002107620239,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "5c4aaa91.ee5904",
+    "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": 774.0001602172852,
+    "y": 804.0002946853638,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "9796ef03.4b4b1",
+        "bd6c8a09.7c4c38"
+      ]
+    ]
+  },
+  {
+    "id": "adaeb2d3.7f8c4",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2594.812660217285,
+    "y": 821.329451084137,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "a3d10a9a.3a1df8"
+      ]
+    ]
+  },
+  {
+    "id": "cddd16fb.abe6b8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2628.66414642334,
+    "y": 767.3954176902771,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "af15096f.71acd8"
+      ]
+    ]
+  },
+  {
+    "id": "fee7243c.735b08",
+    "type": "for",
+    "name": "for arvidx.. mdsal-sd.service-data.vnfs.vnf_length[]",
+    "xml": "<for index='arvidx' start='0' end='`$mdsal-sd.service-data.vnfs.vnf_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2113.81356048584,
+    "y": 1648.9966716766357,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "6c84c38f.13baec"
+      ]
+    ]
+  },
+  {
+    "id": "6c84c38f.13baec",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2389.4801330566406,
+    "y": 1649.9967045783997,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "fc4d2ad5.d7c638"
+      ]
+    ]
+  },
+  {
+    "id": "fc4d2ad5.d7c638",
+    "type": "switchNode",
+    "name": "switch ActivateSiteInstance",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == ActivateSiteInstance`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2626.34383392334,
+    "y": 1654.1946682929993,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "3d2b3845.2b40b8"
+      ]
+    ]
+  },
+  {
+    "id": "3d2b3845.2b40b8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2835.343349456787,
+    "y": 1654.194821357727,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "1ec9b1bd.90608e"
+      ]
+    ]
+  },
+  {
+    "id": "c0ef9502.2ffda8",
+    "type": "set",
+    "name": "set tmp.sitevidx ",
+    "xml": "<set>\n<parameter name='tmp.sitevidx' value='`$arvidx`' />\n\n",
+    "comments": "",
+    "x": 2232.3442993164062,
+    "y": 1758.1952500343323,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "faa3fd1c.58594",
+    "type": "set",
+    "name": "set prop.ar-parent-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.ar-parent-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\n",
+    "comments": "",
+    "x": 2148.8124618530273,
+    "y": 1071.9961004257202,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "798afd86.2541c4",
+    "type": "for",
+    "name": "for loop aridx - Get role from allotted resource",
+    "xml": "<for index=\"aridx\" start=\"0\" end=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2174.812255859375,
+    "y": 1020.4959716796875,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "20bb02be.0259ee"
+      ]
+    ]
+  },
+  {
+    "id": "20bb02be.0259ee",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2429.81258392334,
+    "y": 1017.496431350708,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "245bf6ff.3e669a",
+        "c47b810c.d3dc3"
+      ]
+    ]
+  },
+  {
+    "id": "245bf6ff.3e669a",
+    "type": "switchNode",
+    "name": "switch Role",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'Role'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2559.8124046325684,
+    "y": 989.4963684082031,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "2a2eadb0.1dbad2"
+      ]
+    ]
+  },
+  {
+    "id": "2a2eadb0.1dbad2",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2700.8127365112305,
+    "y": 988.4963674545288,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "991f431c.722fb"
+      ]
+    ]
+  },
+  {
+    "id": "991f431c.722fb",
+    "type": "set",
+    "name": "set prop.role",
+    "xml": "<set>\n<parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\n",
+    "comments": "",
+    "x": 2866.8134002685547,
+    "y": 983.0962705612183,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "f74ee755.f16cf8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2446.8130836486816,
+    "y": 1166.9963779449463,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "cbc38822.1755a8"
+      ]
+    ]
+  },
+  {
+    "id": "32c3c46f.3bc2bc",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2440.664825439453,
+    "y": 1123.0624151229858,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "7c65d2f6.31dcec"
+      ]
+    ]
+  },
+  {
+    "id": "af15096f.71acd8",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2754.812271118164,
+    "y": 764.4958510398865,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "a3d10a9a.3a1df8",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1884.3121337890625,
+    "y": 1038.4959716796875,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "798afd86.2541c4",
+        "faa3fd1c.58594",
+        "e9b06c97.acbe5",
+        "6b58bb8e.b3cd84"
+      ]
+    ]
+  },
+  {
+    "id": "7c65d2f6.31dcec",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2570.3129444122314,
+    "y": 1116.496335029602,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "cbc38822.1755a8",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1960.3124237060547,
+    "y": 1243.495985031128,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d2493073.c1028"
+      ]
+    ]
+  },
+  {
+    "id": "2180b01e.7e4f6",
+    "type": "for",
+    "name": "for loop siteidx - Get site ID from servicedata",
+    "xml": "<for index=\"siteidx\" start=\"0\" end=\"`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2324.3151473999023,
+    "y": 1799.4970078468323,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "af63b1cd.e76ae"
+      ]
+    ]
+  },
+  {
+    "id": "e04f34e4.013728",
+    "type": "switchNode",
+    "name": "switch siteId",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2396.3171310424805,
+    "y": 1867.4979872703552,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "f8f1f3f8.78972"
+      ]
+    ]
+  },
+  {
+    "id": "b95ce81a.c946a8",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2250.8154067993164,
+    "y": 1940.99702501297,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "fb38a029.7518f",
+        "4ede6e05.800f6"
+      ]
+    ]
+  },
+  {
+    "id": "e3162e1d.557c8",
+    "type": "execute",
+    "name": "execute RestApiCallNode delete vpn topology",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-tolopogy.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 725.8129196166992,
+    "y": 1200.4966821670532,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "512bde3d.9ae1f",
+        "b1a2ea7d.7f7bd8"
+      ]
+    ]
+  },
+  {
+    "id": "512bde3d.9ae1f",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 980.812686920166,
+    "y": 1216.4966821670532,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "94f6bfc2.443d3"
+      ]
+    ]
+  },
+  {
+    "id": "94f6bfc2.443d3",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "comments": "",
+    "outputs": 1,
+    "x": 1150.8126258850098,
+    "y": 1219.4966821670532,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "8511117c.800f2",
+    "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": 1150.8127479553223,
+    "y": 1175.4966821670532,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "b1a2ea7d.7f7bd8",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 983.8126258850098,
+    "y": 1175.4966821670532,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "8511117c.800f2"
+      ]
+    ]
+  },
+  {
+    "id": "7731dc6f.5a7d24",
+    "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": 1131.3796367645264,
+    "y": 972.1728582382202,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "8825a27f.2ee76",
+    "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 = SDWAN-Controller AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 700.8793792724609,
+    "y": 1023.1732087135315,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "2e6a47b6.7b6de8",
+        "9dc29fcc.585cf",
+        "49b46c59.711bd4"
+      ]
+    ]
+  },
+  {
+    "id": "2e6a47b6.7b6de8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 959.8796710968018,
+    "y": 978.1728420257568,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "7731dc6f.5a7d24"
+      ]
+    ]
+  },
+  {
+    "id": "9dc29fcc.585cf",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 956.3703880310059,
+    "y": 1016.7469387054443,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "8fde510d.f3ff3"
+      ]
+    ]
+  },
+  {
+    "id": "49b46c59.711bd4",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 951.7033958435059,
+    "y": 1058.0802516937256,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "9ea97502.11aad8"
+      ]
+    ]
+  },
+  {
+    "id": "8fde510d.f3ff3",
+    "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": 1106.9417037963867,
+    "y": 1011.0326910018921,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "9ea97502.11aad8",
+    "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": 1113.4758567810059,
+    "y": 1059.5194606781006,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "d2493073.c1028",
+    "type": "for",
+    "name": "for pnidx.. mdsal-psd.service-data.networks.network_length[]",
+    "xml": "<for index='pnidx' start='0' end='`$mdsal-parentsd.service-data.networks.network_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2285.311996459961,
+    "y": 1242.9957127571106,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "220869b3.8ab4c6"
+      ]
+    ]
+  },
+  {
+    "id": "220869b3.8ab4c6",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1963.9790878295898,
+    "y": 1333.995548248291,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "542e96e2.bce748"
+      ]
+    ]
+  },
+  {
+    "id": "542e96e2.bce748",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANConnectivityInstance",
+    "xml": "<switch test=\"`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2208.979820251465,
+    "y": 1335.9959144592285,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "6a416d6d.a241f4"
+      ]
+    ]
+  },
+  {
+    "id": "6a416d6d.a241f4",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2465.9793128967285,
+    "y": 1334.9960446357727,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "fe572e69.46e77"
+      ]
+    ]
+  },
+  {
+    "id": "fd8cdc4f.58f91",
+    "type": "for",
+    "name": "for loop paramidx - Get topology from servicedata",
+    "xml": "<for index=\"paramidx\" start=\"0\" end=\"`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2267.9799995422363,
+    "y": 1424.995632648468,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "21109ad6.0bc416"
+      ]
+    ]
+  },
+  {
+    "id": "21109ad6.0bc416",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2533.979688644409,
+    "y": 1421.9959559440613,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "c6ab4f3c.02f18",
+        "dd125781.58e528"
+      ]
+    ]
+  },
+  {
+    "id": "c6ab4f3c.02f18",
+    "type": "switchNode",
+    "name": "switch topology",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2704.98002243042,
+    "y": 1390.9954657554626,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "ec8b6683.dafbe8"
+      ]
+    ]
+  },
+  {
+    "id": "ec8b6683.dafbe8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2856.9800128936768,
+    "y": 1392.9954962730408,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "8651aac5.31b1a8"
+      ]
+    ]
+  },
+  {
+    "id": "8651aac5.31b1a8",
+    "type": "set",
+    "name": "set topology",
+    "xml": "<set>\n<parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 3000.9800243377686,
+    "y": 1392.5954308509827,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "dd125781.58e528",
+    "type": "switchNode",
+    "name": "switch vpnId",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2696.645746231079,
+    "y": 1433.328447818756,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d2a6c128.0e306"
+      ]
+    ]
+  },
+  {
+    "id": "d2a6c128.0e306",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2848.645736694336,
+    "y": 1435.3284783363342,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "88095b1a.e451a8"
+      ]
+    ]
+  },
+  {
+    "id": "88095b1a.e451a8",
+    "type": "set",
+    "name": "set prop.vpn1Id",
+    "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 2992.6457481384277,
+    "y": 1434.9284129142761,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "10dfad38.ba80e3",
+    "type": "execute",
+    "name": "execute RestApiCallNode delete vpn ",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 698.8125915527344,
+    "y": 1311.9966473579407,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "dbba5b2e.06b178",
+        "92b8b7a2.551998"
+      ]
+    ]
+  },
+  {
+    "id": "dbba5b2e.06b178",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 931.8126697540283,
+    "y": 1336.9966464042664,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "647fdeef.e91dd"
+      ]
+    ]
+  },
+  {
+    "id": "647fdeef.e91dd",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "comments": "",
+    "outputs": 1,
+    "x": 1101.812608718872,
+    "y": 1339.9966464042664,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "487a6881.62d628",
+    "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": 1101.8127307891846,
+    "y": 1295.9966464042664,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "92b8b7a2.551998",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 934.8126087188721,
+    "y": 1295.9966464042664,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "487a6881.62d628"
+      ]
+    ]
+  },
+  {
+    "id": "d0aa490b.36da18",
+    "type": "set",
+    "name": "set prop.name",
+    "xml": "<set>\n<parameter name='prop.name' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\n",
+    "comments": "",
+    "x": 2914.8124046325684,
+    "y": 1035.9959411621094,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "c47b810c.d3dc3",
+    "type": "switchNode",
+    "name": "switch sdwanVpnName",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'sdwanVpnName'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2595.312244415283,
+    "y": 1038.9959335327148,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "947974c8.04d658"
+      ]
+    ]
+  },
+  {
+    "id": "947974c8.04d658",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2766.3124046325684,
+    "y": 1037.9960021972656,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "d0aa490b.36da18"
+      ]
+    ]
+  },
+  {
+    "id": "ddcd4395.ffc5",
+    "type": "set",
+    "name": "set prop.ar.provided-allotted-resource-id",
+    "xml": "<set>\n<parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id`' />\n\n\n",
+    "comments": "",
+    "x": 2080.81201171875,
+    "y": 779.9960656166077,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "de8fd68.62a4428",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1258.8424682617188,
+    "y": 887.1932353973389,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "1e72ef49.46e8b1"
+      ]
+    ]
+  },
+  {
+    "id": "25ee3acf.45d7b6",
+    "type": "execute",
+    "name": "generate tmp.ar-url-connection 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-connection\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar.provided-allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2065.32967376709,
+    "y": 813.329541683197,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "e392cace.793438",
+    "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-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-providedAr\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2205.329303741455,
+    "y": 848.9958329200745,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "cddd16fb.abe6b8",
+        "adaeb2d3.7f8c4"
+      ]
+    ]
+  },
+  {
+    "id": "e9b06c97.acbe5",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get 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-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-parentsd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2180.9965438842773,
+    "y": 1141.9958896636963,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "f74ee755.f16cf8",
+        "32c3c46f.3bc2bc"
+      ]
+    ]
+  },
+  {
+    "id": "fe572e69.46e77",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1925.329963684082,
+    "y": 1431.6630954742432,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "fd8cdc4f.58f91",
+        "1d60ce05.e0ad92",
+        "11102f6.31d23d1",
+        "a4fa1e7f.2461f"
+      ]
+    ]
+  },
+  {
+    "id": "fb38a029.7518f",
+    "type": "set",
+    "name": "set prop.attach.siteId",
+    "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n\n",
+    "comments": "",
+    "x": 2516.998279571533,
+    "y": 1922.663851261139,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "f8f1f3f8.78972",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2536.99853515625,
+    "y": 1867.6636776924133,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "b95ce81a.c946a8"
+      ]
+    ]
+  },
+  {
+    "id": "1ec9b1bd.90608e",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2029.664421081543,
+    "y": 1753.3301882743835,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "2180b01e.7e4f6",
+        "c0ef9502.2ffda8"
+      ]
+    ]
+  },
+  {
+    "id": "adeb4876.0f5318",
+    "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": 866.181224822998,
+    "y": 922.635835647583,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "de8fd68.62a4428"
+      ]
+    ]
+  },
+  {
+    "id": "af63b1cd.e76ae",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2241.664779663086,
+    "y": 1864.0008358955383,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "e04f34e4.013728"
+      ]
+    ]
+  },
+  {
+    "id": "2ec20a50.f21ce6",
+    "type": "set",
+    "name": "set prop.siteAttachement_length=0",
+    "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",
+    "comments": "",
+    "x": 712,
+    "y": 865.5311913490295,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "4ede6e05.800f6",
+    "type": "set",
+    "name": "Add sites to list and update length",
+    "xml": "<set>\n<parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\n\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\n<parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n",
+    "comments": "",
+    "x": 2544.502113342285,
+    "y": 1967.5316562652588,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "6b58bb8e.b3cd84",
+    "type": "execute",
+    "name": "generate prop.ar-parent-service-instance-id",
+    "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-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar-parent-service-instance-id`\"/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2165.500144958496,
+    "y": 1104.5314102172852,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "1d60ce05.e0ad92",
+    "type": "set",
+    "name": "set prop.ar-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.service-information.service-instance-id`' />\n",
+    "comments": "",
+    "x": 2198.5005645751953,
+    "y": 1493.531328201294,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "11102f6.31d23d1",
+    "type": "execute",
+    "name": "generate prop.ar-service-instance-id",
+    "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-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar-service-instance-id`\"/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2223.833023071289,
+    "y": 1526.4096240997314,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "a4fa1e7f.2461f",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get-resource 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-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-sd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2274.8331451416016,
+    "y": 1563.4094429016113,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "6e57063a.0010c8",
+        "6eeded55.346254"
+      ]
+    ]
+  },
+  {
+    "id": "6eeded55.346254",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2553.5002098083496,
+    "y": 1559.5311546325684,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "4470f1a5.f3f5a"
+      ]
+    ]
+  },
+  {
+    "id": "6e57063a.0010c8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2551.3525390625,
+    "y": 1520.597282409668,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "85643aef.3b34a8"
+      ]
+    ]
+  },
+  {
+    "id": "85643aef.3b34a8",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2681.000732421875,
+    "y": 1514.0312423706055,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "4470f1a5.f3f5a",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2702.501106262207,
+    "y": 1560.5313396453857,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "fee7243c.735b08"
+      ]
+    ]
+  },
+  {
+    "id": "1e72ef49.46e8b1",
+    "type": "switchNode",
+    "name": "switch allotted resource ID match",
+    "xml": "<switch test=\"`$prop.ar.provided-allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1482.500114440918,
+    "y": 884.0312638282776,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "e324a45a.91d0f8"
+      ]
+    ]
+  },
+  {
+    "id": "e324a45a.91d0f8",
+    "type": "outcomeFalse",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1696.5001792907715,
+    "y": 815.0312943458557,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "80651cf1.36d15"
+      ]
+    ]
+  },
+  {
+    "id": "80651cf1.36d15",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1838.5004272460938,
+    "y": 814.0312352180481,
+    "z": "e055a121.e69f6",
+    "wires": [
+      [
+        "ddcd4395.ffc5",
+        "25ee3acf.45d7b6",
+        "e392cace.793438"
+      ]
+    ]
+  },
+  {
+    "id": "c2710bbf.7f5e98",
+    "type": "comment",
+    "name": "if allotted resource Id match with the incomming allotted resource ID,  sites in this service vnf should not be included",
+    "info": "parent instId 200 |  parent instId 200\nservice instId 100| service InstId 200\n site1            |       site2\n allotted resId 1 | allotted resId 2 \n --------------------------------------\n Deactivate:\n loop for provided allotted res ID\n If allotted resId 1 matches with incomming allotted resource Id then we should delete the sites available in the service data 100\n for this we have to send request for deleting with site IDs site2 without including site1.\n \n \n ",
+    "comments": "",
+    "x": 1791.5000305175781,
+    "y": 747.0312962532043,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "4c2f69ef.f668e8",
+    "type": "comment",
+    "name": "loop for provided allotted rsource Id",
+    "info": "",
+    "comments": "",
+    "x": 978.5,
+    "y": 886.5312523841858,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "ce1eca8a.5fa098",
+    "type": "comment",
+    "name": "get allotted resource for the allotted resource ID",
+    "info": "",
+    "comments": "",
+    "x": 2352.500328063965,
+    "y": 748.5311741828918,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "c6139ab0.680cf8",
+    "type": "comment",
+    "name": "get parent service data to get connectivity which has connectivity and vpn ID",
+    "info": "",
+    "comments": "",
+    "x": 2135.499855041504,
+    "y": 975.5312519073486,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "1497e243.92bc1e",
+    "type": "comment",
+    "name": "get service data from service instance id from allotted reosurce Id to get sites vnf",
+    "info": "",
+    "comments": "",
+    "x": 2324.499855041504,
+    "y": 1457.5310516357422,
+    "z": "e055a121.e69f6",
+    "wires": []
+  },
+  {
+    "id": "5ceee25e.e4656c",
+    "type": "call",
+    "name": "call sdwan-vnf-topology-operation-underlay for delete",
+    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 759.5001220703125,
+    "y": 1116.5312991142273,
+    "z": "e055a121.e69f6",
+    "wires": [
+      []
+    ]
+  }
+]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.json
new file mode 100644 (file)
index 0000000..6668fb4
--- /dev/null
@@ -0,0 +1,938 @@
+[
+  {
+    "id": "df4555dd.a3e848",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 104,
+    "y": 41,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "92ceb461.e9ae38"
+      ]
+    ]
+  },
+  {
+    "id": "92ceb461.e9ae38",
+    "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": 316.00000381469727,
+    "y": 113.0000171661377,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "d3022041.62ba5"
+      ]
+    ]
+  },
+  {
+    "id": "d3022041.62ba5",
+    "type": "method",
+    "name": "sdwan-attachment-topology-operation-delete",
+    "xml": "<method rpc='sdwan-attachment-topology-operation-delete' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 304.0001220703125,
+    "y": 201,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "28bf3b94.47a4c4"
+      ]
+    ]
+  },
+  {
+    "id": "28bf3b94.47a4c4",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 320.0001220703125,
+    "y": 756.0002446174622,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "807be759.b5e538",
+        "3103f64.d6db90a",
+        "6956382b.b9da98",
+        "fe793d2b.5a34a",
+        "967f6552.ee9a38",
+        "a1a9abde.ea9de8",
+        "d08c66c4.7c2608",
+        "661b7087.2c2c2",
+        "9281bde8.0db15",
+        "a05764a0.242458",
+        "51c0b7ea.3f9dc8",
+        "3ad79f2e.53c8c",
+        "82dc876b.abfd98",
+        "55f05cd1.c7cc44",
+        "12de84a1.b1a80b"
+      ]
+    ]
+  },
+  {
+    "id": "807be759.b5e538",
+    "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": 716.9935607910156,
+    "y": 154.9934868812561,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "d198c8fb.642db8",
+    "type": "comment",
+    "name": "set tmp ar-id to fetch resource from MDSAL",
+    "info": "",
+    "comments": "",
+    "x": 745.9538726806641,
+    "y": 119.02528285980225,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "3103f64.d6db90a",
+    "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": 670.9934997558594,
+    "y": 247.99349212646484,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "967f6552.ee9a38",
+    "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": 677.2553901672363,
+    "y": 335.6602210998535,
+    "z": "5775f861.275e28",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "6956382b.b9da98",
+    "type": "execute",
+    "name": "generate allotted-resource 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": 709.2554168701172,
+    "y": 423.66020250320435,
+    "z": "5775f861.275e28",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "3672b3c8.5060cc",
+    "type": "comment",
+    "name": "Used for setting output to API Handler",
+    "info": "",
+    "comments": "",
+    "x": 724.9935302734375,
+    "y": 214.993501663208,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "e2c9f631.cf0b18",
+    "type": "comment",
+    "name": "Obtain different URL, template location etc",
+    "info": "For saving resource information to MDSAL & for AAI",
+    "comments": "",
+    "x": 742.9934959411621,
+    "y": 300.8823823928833,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "c3b16670.191818",
+    "type": "comment",
+    "name": "Used to Get AR by id to MDSAL, same as self-link",
+    "info": "",
+    "comments": "",
+    "x": 768.9935150146484,
+    "y": 387.8823413848877,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "bae16026.94177",
+    "type": "comment",
+    "name": "GET parent-service-data from mdsal to check existence of other End point",
+    "info": "",
+    "comments": "",
+    "x": 836.0003280639648,
+    "y": 842.5316228866577,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "d310ec7e.ce8c1",
+    "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": 1664.1849365234375,
+    "y": 1076.00425863266,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "ec3e44a4.ec0718"
+      ]
+    ]
+  },
+  {
+    "id": "fe793d2b.5a34a",
+    "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": 815.1842956542969,
+    "y": 1082.718041419983,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "7a0bf533.2fea3c",
+        "7505397d.8aabc8"
+      ]
+    ]
+  },
+  {
+    "id": "1ad39230.0014ce",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1265.4544582366943,
+    "y": 1122.7015271186829,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "d310ec7e.ce8c1",
+        "757e6827.467698"
+      ]
+    ]
+  },
+  {
+    "id": "ec3e44a4.ec0718",
+    "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": 2114.296142578125,
+    "y": 1074.0041165351868,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "f9268a01.5183a8"
+      ]
+    ]
+  },
+  {
+    "id": "a1a9abde.ea9de8",
+    "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": 726.9687118530273,
+    "y": 878.0000677108765,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "23d329ac.3b7e66",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1106.968994140625,
+    "y": 956.0001826286316,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "5bb8e723.a51448"
+      ]
+    ]
+  },
+  {
+    "id": "e13f07b8.3067a8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1098.8207969665527,
+    "y": 991.066267490387,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "ad43541b.ecf6c8"
+      ]
+    ]
+  },
+  {
+    "id": "ad43541b.ecf6c8",
+    "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 resource not found\" />\n    \n",
+    "comments": "",
+    "x": 1273.969482421875,
+    "y": 987.3336176872253,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "5bb8e723.a51448",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1257.968994140625,
+    "y": 954.0001826286316,
+    "z": "5775f861.275e28",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "9e10ac1a.8f491",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 960.7307624816895,
+    "y": 1271.952815413475,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "37086a0f.d393c6"
+      ]
+    ]
+  },
+  {
+    "id": "37086a0f.d393c6",
+    "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": 1127.2546424865723,
+    "y": 1283.57188642025,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "824c305f.f99dc",
+    "type": "failure",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 967.8260498046875,
+    "y": 1304.7147830724716,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "37086a0f.d393c6"
+      ]
+    ]
+  },
+  {
+    "id": "bf221914.603808",
+    "type": "comment",
+    "name": "TODO: Rework after confirmation from AAI",
+    "info": "",
+    "comments": "",
+    "x": 1092.1374282836914,
+    "y": 1222.8732151985168,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "d08c66c4.7c2608",
+    "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": 693.5461502075195,
+    "y": 1235.8276824951172,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "661b7087.2c2c2",
+    "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": 662.9592552185059,
+    "y": 1336.4434370994568,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "9281bde8.0db15",
+    "type": "execute",
+    "name": "execute RestApiCallNode - PUT AR by id",
+    "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='Delete' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 742.6666641235352,
+    "y": 512.3333625793457,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "3bcdf792.ce5568",
+        "75f51d5f.311a14",
+        "aab69d22.7b384"
+      ]
+    ]
+  },
+  {
+    "id": "3bcdf792.ce5568",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 982.3081665039062,
+    "y": 552.6649107933044,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "a17e8ce5.2802d"
+      ]
+    ]
+  },
+  {
+    "id": "75f51d5f.311a14",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 979.3081665039062,
+    "y": 509.16490840911865,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "a17e8ce5.2802d"
+      ]
+    ]
+  },
+  {
+    "id": "aab69d22.7b384",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 986.0582466125488,
+    "y": 468.5220036506653,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "e5460f9f.21ecb"
+      ]
+    ]
+  },
+  {
+    "id": "a17e8ce5.2802d",
+    "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": 1138.058334350586,
+    "y": 530.9149088859558,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "e5460f9f.21ecb",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1123.7141780853271,
+    "y": 468.7141833305359,
+    "z": "5775f861.275e28",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "cb30deee.bf09a",
+    "type": "comment",
+    "name": "Delete Allotted Resource",
+    "info": "",
+    "comments": "",
+    "x": 690.0000457763672,
+    "y": 481.0000286102295,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "950f3191.ae2ba",
+    "type": "for",
+    "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+    "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1640.00390625,
+    "y": 718.00390625,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "763d401a.4c2ab"
+      ]
+    ]
+  },
+  {
+    "id": "a05764a0.242458",
+    "type": "switchNode",
+    "name": "switch service-data.consumed-allotted-resources_length",
+    "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 793.0032920837402,
+    "y": 678.71790766716,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "70bab1b2.6f71f",
+        "ab0947c0.c09f58"
+      ]
+    ]
+  },
+  {
+    "id": "70bab1b2.6f71f",
+    "type": "other",
+    "name": "outcome Null",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1117.1461563110352,
+    "y": 661.5753421783447,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "b260d54b.5e5f58"
+      ]
+    ]
+  },
+  {
+    "id": "ab0947c0.c09f58",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1103.1461791992188,
+    "y": 724.5753309726715,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "d2367329.94565"
+      ]
+    ]
+  },
+  {
+    "id": "d2367329.94565",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1263.2732696533203,
+    "y": 722.7013075351715,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "950f3191.ae2ba",
+        "51c9f5a5.4315fc"
+      ]
+    ]
+  },
+  {
+    "id": "51c0b7ea.3f9dc8",
+    "type": "set",
+    "name": "set consumed allotted resources for deletion",
+    "xml": "<set>\n<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].\" value=\"\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`' />\n\n",
+    "comments": "",
+    "x": 749.8606262207031,
+    "y": 749.28955078125,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "763d401a.4c2ab",
+    "type": "switchNode",
+    "name": "switch allotted-resource-id",
+    "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2078.1155166625977,
+    "y": 714.0040283203125,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "8699c549.34eb68"
+      ]
+    ]
+  },
+  {
+    "id": "8699c549.34eb68",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2273.925338745117,
+    "y": 713.4683527946472,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "a387ae74.594b6"
+      ]
+    ]
+  },
+  {
+    "id": "365e6c51.6f6434",
+    "type": "set",
+    "name": "set tmp.cidx",
+    "xml": "<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n",
+    "comments": "",
+    "x": 2589.2618713378906,
+    "y": 714.2246108055115,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "dda8dc98.e31b",
+    "type": "comment",
+    "name": "Delete consumed service consumed-allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 804.0045623779297,
+    "y": 611.0038724095793,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "f55bb2df.f0b",
+    "type": "comment",
+    "name": "This set resource will be deleted in MDSAL by provider code",
+    "info": "",
+    "comments": "",
+    "x": 794.337345123291,
+    "y": 715.781964302063,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "c48ea2e0.f31db",
+    "type": "comment",
+    "name": "Obtain the index of conusumed AR",
+    "info": "",
+    "comments": "",
+    "x": 716.7817535400391,
+    "y": 642.8927326202393,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "b260d54b.5e5f58",
+    "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=\"Resource to be deleted doesn't exist in MDSAL.\" />\n",
+    "comments": "",
+    "x": 1279.00390625,
+    "y": 662.00390625,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "a387ae74.594b6",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 2423.003936767578,
+    "y": 714.2539558410645,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "365e6c51.6f6434"
+      ]
+    ]
+  },
+  {
+    "id": "9d4dfb29.6b9ee8",
+    "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=\"resource to be deleted is not available in mdsal\" />\n",
+    "comments": "",
+    "x": 1733.25390625,
+    "y": 771.25390625,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "42d75f79.805d2",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1595.75390625,
+    "y": 771.25390625,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "9d4dfb29.6b9ee8"
+      ]
+    ]
+  },
+  {
+    "id": "51c9f5a5.4315fc",
+    "type": "switchNode",
+    "name": "switch tmp.cidx ",
+    "xml": "<switch test=\"`$tmp.cidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1441.75390625,
+    "y": 771.25390625,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "42d75f79.805d2"
+      ]
+    ]
+  },
+  {
+    "id": "7f854ddc.974234",
+    "type": "comment",
+    "name": "Delete provided service provided-allotted-resources in mdsal",
+    "info": "",
+    "comments": "",
+    "x": 790.5039215087891,
+    "y": 807.00390625,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "7505397d.8aabc8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1118.5041770935059,
+    "y": 1121.7540984153748,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "1ad39230.0014ce"
+      ]
+    ]
+  },
+  {
+    "id": "7a0bf533.2fea3c",
+    "type": "other",
+    "name": "outcome Null",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1135.5040969848633,
+    "y": 1033.7539324760437,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "7c243332.a34bdc"
+      ]
+    ]
+  },
+  {
+    "id": "7c243332.a34bdc",
+    "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=\"Resource to be deleted doesn't exist in MDSAL.\" />\n",
+    "comments": "",
+    "x": 1299.3616943359375,
+    "y": 1034.1824774742126,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "eb1cae26.e29d4",
+    "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=\"resource to be deleted is not available in mdsal\" />\n",
+    "comments": "",
+    "x": 1730.7539501190186,
+    "y": 1151.753936290741,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "7690b02b.7872f",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1593.2539501190186,
+    "y": 1151.753936290741,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "eb1cae26.e29d4"
+      ]
+    ]
+  },
+  {
+    "id": "757e6827.467698",
+    "type": "switchNode",
+    "name": "switch tmp.pidx ",
+    "xml": "<switch test=\"`$tmp.pidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1439.2539501190186,
+    "y": 1151.753936290741,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "7690b02b.7872f"
+      ]
+    ]
+  },
+  {
+    "id": "f9268a01.5183a8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2303.504367828369,
+    "y": 1071.7540946006775,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "86a5d9a6.a11a58"
+      ]
+    ]
+  },
+  {
+    "id": "b544cb9e.217168",
+    "type": "set",
+    "name": "set tmp.pidx",
+    "xml": "<set>\n<parameter name='tmp.pidx' value='`$pidx`' />\n",
+    "comments": "",
+    "x": 2371.8404846191406,
+    "y": 1206.5101914405823,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "86a5d9a6.a11a58",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 2363.582820892334,
+    "y": 1142.539580821991,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "b544cb9e.217168"
+      ]
+    ]
+  },
+  {
+    "id": "3ad79f2e.53c8c",
+    "type": "set",
+    "name": "set provided allotted resources for deletion",
+    "xml": "<set>\n<parameter name=\"service-data.provided-allotted-resources.consumed-allotted-resource[$pidx].\" value=\"\" />\n<parameter name=\"service-data.provided-allotted-resources.consumed-allotted-resource_length\" value='`$service-data.provided-allotted-resources.consumed-allotted-resource_length - 1`' />\n\n",
+    "comments": "",
+    "x": 749.0039978027344,
+    "y": 1137.0039768218994,
+    "z": "5775f861.275e28",
+    "wires": []
+  },
+  {
+    "id": "82dc876b.abfd98",
+    "type": "update",
+    "name": "update AAI allotted-resource",
+    "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='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.allotted-resource-information.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 706.2227554321289,
+    "y": 1291.754346370697,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "9e10ac1a.8f491",
+        "824c305f.f99dc"
+      ]
+    ]
+  },
+  {
+    "id": "12de84a1.b1a80b",
+    "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": 796.3334197998047,
+    "y": 977.333366394043,
+    "z": "5775f861.275e28",
+    "wires": [
+      [
+        "23d329ac.3b7e66",
+        "e13f07b8.3067a8"
+      ]
+    ]
+  },
+  {
+    "id": "55f05cd1.c7cc44",
+    "type": "execute",
+    "name": "get parent-service-data tmp.ar-url-psd",
+    "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`\"/>",
+    "comments": "",
+    "outputs": 1,
+    "x": 730.3333587646484,
+    "y": 935.3332056999207,
+    "z": "5775f861.275e28",
+    "wires": [
+      []
+    ]
+  }
+]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.json
new file mode 100644 (file)
index 0000000..1db61c8
--- /dev/null
@@ -0,0 +1,199 @@
+[
+  {
+    "id": "3dce5aae.d1aee6",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 156,
+    "y": 74,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "aa9eff05.9e62c"
+      ]
+    ]
+  },
+  {
+    "id": "aa9eff05.9e62c",
+    "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": 368.00000381469727,
+    "y": 146.0000171661377,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "b770609e.14977"
+      ]
+    ]
+  },
+  {
+    "id": "b770609e.14977",
+    "type": "method",
+    "name": "sdwan-get-saved-ar-param",
+    "xml": "<method rpc='sdwan-get-saved-ar-param' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 356.0001220703125,
+    "y": 234,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "a63eeccf.054de"
+      ]
+    ]
+  },
+  {
+    "id": "a63eeccf.054de",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 363.00001525878906,
+    "y": 320.0000581741333,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "cef1b9ba.94d2a8"
+      ]
+    ]
+  },
+  {
+    "id": "cef1b9ba.94d2a8",
+    "type": "for",
+    "name": "for each sdwan-get-request-input-param",
+    "xml": "<for index='idx' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 399.6667785644531,
+    "y": 402.666654586792,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "c63bf491.f9e008"
+      ]
+    ]
+  },
+  {
+    "id": "c63bf491.f9e008",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 664.5002822875977,
+    "y": 312.00004625320435,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "2cd7df9b.ab1b",
+        "10f6f64f.edbe1a",
+        "95d1c864.f5bfb8"
+      ]
+    ]
+  },
+  {
+    "id": "2cd7df9b.ab1b",
+    "type": "switchNode",
+    "name": "switch sdwanVpnName",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'sdwanVpnName'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 886.5000534057617,
+    "y": 216.0000514984131,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "2a8eb492.677abc"
+      ]
+    ]
+  },
+  {
+    "id": "2a8eb492.677abc",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1073.5000534057617,
+    "y": 212.0000514984131,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "e2c23ccb.74de1"
+      ]
+    ]
+  },
+  {
+    "id": "e2c23ccb.74de1",
+    "type": "set",
+    "name": "set sdwanVpnName",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.sdwanVpnName' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1241.5000534057617,
+    "y": 212.6000576019287,
+    "z": "15a92351.612ddd",
+    "wires": []
+  },
+  {
+    "id": "10f6f64f.edbe1a",
+    "type": "switchNode",
+    "name": "switch role",
+    "xml": "<switch test=\"`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'role'`\">",
+    "comments": "",
+    "outputs": 1,
+    "x": 849.0105400085449,
+    "y": 280.00007152557373,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "ab95aeff.fed7f"
+      ]
+    ]
+  },
+  {
+    "id": "ab95aeff.fed7f",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1074.010482788086,
+    "y": 271.0000514984131,
+    "z": "15a92351.612ddd",
+    "wires": [
+      [
+        "73eae7d6.c393c8"
+      ]
+    ]
+  },
+  {
+    "id": "73eae7d6.c393c8",
+    "type": "set",
+    "name": "set role",
+    "xml": "<set>\n<parameter name='prop.connection-attachment.role' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\n",
+    "comments": "",
+    "x": 1242.010482788086,
+    "y": 271.6000576019287,
+    "z": "15a92351.612ddd",
+    "wires": []
+  },
+  {
+    "id": "95d1c864.f5bfb8",
+    "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": 863.0002212524414,
+    "y": 344.000036239624,
+    "z": "15a92351.612ddd",
+    "wires": []
+  }
+]
index 9f672c1..7d5dfca 100644 (file)
@@ -1,20 +1,20 @@
 [
   {
-    "id": "674547d2.8e25c8",
+    "id": "4ddcb062.8ecdb",
     "type": "dgstart",
     "name": "DGSTART",
     "outputs": 1,
-    "x": 102.5039176940918,
-    "y": 36.00000238418579,
-    "z": "5630a65a.9ec898",
+    "x": 88.03125,
+    "y": 50.03125,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "e5902308.c1c82"
+        "596e35be.20cc4c"
       ]
     ]
   },
   {
-    "id": "e5902308.c1c82",
+    "id": "596e35be.20cc4c",
     "type": "service-logic",
     "name": "GENERIC-RESOURCE-API ${project.version}",
     "module": "GENERIC-RESOURCE-API",
     "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": 288.50392150878906,
-    "y": 108.00001955032349,
-    "z": "5630a65a.9ec898",
+    "x": 274.03125381469727,
+    "y": 122.0312671661377,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "790713af.f45e7c"
+        "c01d9d60.83407"
       ]
     ]
   },
   {
-    "id": "790713af.f45e7c",
+    "id": "c01d9d60.83407",
     "type": "method",
     "name": "method sdwan-network-topology-operation-activate",
     "xml": "<method rpc='sdwan-network-topology-operation-activate' mode='sync'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 276.5040397644043,
-    "y": 196.0000023841858,
-    "z": "5630a65a.9ec898",
+    "x": 262.0313720703125,
+    "y": 210.03125,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "e083889a.f74828"
+        "18ab359f.ed0fba"
       ]
     ]
   },
   {
-    "id": "e083889a.f74828",
+    "id": "18ab359f.ed0fba",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 450.50393295288086,
-    "y": 304.0000615119934,
-    "z": "5630a65a.9ec898",
+    "x": 436.03126525878906,
+    "y": 318.0313091278076,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "6158cb8c.f46db4",
-        "81410bf9.e64458",
-        "781fc34d.70c51c",
-        "7be4b307.5359ec",
-        "2905e598.65892a",
-        "68901172.3a726",
-        "a0fba53c.970e38",
-        "944018c7.5a14b8",
-        "5e8274ed.a57dbc",
-        "f220bde6.61096",
-        "1ebcf5b8.ee7c3a",
-        "95959ba8.d84698",
-        "cf1e1603.5d6118",
-        "f18b4542.7d2158",
-        "581db18a.df70a"
+        "c561faa1.7d7778",
+        "6dc01778.009fd8",
+        "da487e61.56608",
+        "c6b01240.db33",
+        "3f3b0e5f.2cbb02",
+        "98c44abf.148e28",
+        "21c2ad92.7e1fb2",
+        "2511a75a.f0a8b8",
+        "1ae62a5a.18e726",
+        "fc4fc9d4.5f3178",
+        "3bff9e87.90adb2",
+        "3355eb7a.3cf5b4",
+        "fce8b550.d12f88",
+        "cc83cf92.13ac4",
+        "5ff87b45.2a9d04"
       ]
     ]
   },
   {
-    "id": "6158cb8c.f46db4",
+    "id": "c561faa1.7d7778",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:validate-sdwan-network-input-parameters",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-network-input-parameters' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 908.8928184509277,
-    "y": 53.00000238418579,
-    "z": "5630a65a.9ec898",
+    "x": 894.4201507568359,
+    "y": 67.03125,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "81410bf9.e64458",
+    "id": "6dc01778.009fd8",
     "type": "record",
     "name": "record",
     "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SDWAN-Activate\"/>\n",
     "comments": "",
     "outputs": 1,
-    "x": 709.0595169067383,
-    "y": 106.77785539627075,
-    "z": "5630a65a.9ec898",
+    "x": 694.5868492126465,
+    "y": 120.80910301208496,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "781fc34d.70c51c",
+    "id": "da487e61.56608",
     "type": "set",
     "name": "set networkId and network-object-path",
     "xml": "<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name=\"network-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $network-topology-operation-input.service-information.service-instance-id  + '/service-data/networks/network/'  + $network-topology-operation-input.network-information.network-id  + '/network-data/'` \" />",
     "comments": "",
-    "x": 796.0597953796387,
-    "y": 1029.3134715557098,
-    "z": "5630a65a.9ec898",
+    "x": 781.5871276855469,
+    "y": 1043.344719171524,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "7be4b307.5359ec",
+    "id": "c6b01240.db33",
     "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": 717.8375968933105,
-    "y": 1218.8688914775848,
-    "z": "5630a65a.9ec898",
+    "x": 703.3649291992188,
+    "y": 1232.900139093399,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "2905e598.65892a",
+    "id": "3f3b0e5f.2cbb02",
     "type": "set",
     "name": "set network-level-oper-status",
     "xml": "<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Active' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />",
     "comments": "",
-    "x": 762.9487113952637,
-    "y": 1090.53564620018,
-    "z": "5630a65a.9ec898",
+    "x": 748.4760437011719,
+    "y": 1104.5668938159943,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "68901172.3a726",
+    "id": "98c44abf.148e28",
     "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": 741.3616218566895,
-    "y": 159.77789163589478,
-    "z": "5630a65a.9ec898",
+    "x": 726.8889541625977,
+    "y": 173.80913925170898,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "a0fba53c.970e38",
+    "id": "21c2ad92.7e1fb2",
     "type": "update",
     "name": "update SDWAN VPN status to AAI",
     "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.id = $network-topology-operation-input.network-information.network-id' >\n<parameter name='id' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name='operational-status' value='Active' />\n<parameter name='tenanatId' value='`$prop.tenant-id`' />\n<parameter name='vpn-id' value='`$prop.vpn-id`' />",
     "comments": "",
     "outputs": 1,
-    "x": 780.1674270629883,
-    "y": 1153.2388577461243,
-    "z": "5630a65a.9ec898",
+    "x": 765.6947593688965,
+    "y": 1167.2701053619385,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "944018c7.5a14b8",
+    "id": "2511a75a.f0a8b8",
     "type": "set",
     "name": "set network in service-data",
     "xml": "<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />",
     "comments": "",
-    "x": 756.5043258666992,
-    "y": 976.0913054943085,
-    "z": "5630a65a.9ec898",
+    "x": 742.0316581726074,
+    "y": 990.1225531101227,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "5e8274ed.a57dbc",
+    "id": "1ae62a5a.18e726",
     "type": "for",
     "name": "for each network-input-parameters",
     "xml": "<for index='idx' start='0' end='`$ctx.network-data.network-request-input.network-input-parameters.param_length`' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 793.5039176940918,
-    "y": 230.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 779.03125,
+    "y": 244.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "aff4cb70.f51d18"
+        "b794657d.4da128"
       ]
     ]
   },
   {
-    "id": "aff4cb70.f51d18",
+    "id": "b794657d.4da128",
     "type": "block",
     "name": "block",
     "xml": "<block>\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 1050.3373489379883,
-    "y": 164.33726105093956,
-    "z": "5630a65a.9ec898",
+    "x": 1035.8646812438965,
+    "y": 178.36850866675377,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "55124a0e.ecead4",
-        "b20e40a7.db9f2"
+        "53501d6c.c520f4",
+        "e1341c8f.56768"
       ]
     ]
   },
   {
-    "id": "55124a0e.ecead4",
+    "id": "53501d6c.c520f4",
     "type": "switchNode",
     "name": "switch name",
     "xml": "<switch test=\"`$ctx.network-data.network-request-input.network-input-parameters.param[$idx].name == 'name'`\">\n",
     "comments": "",
     "outputs": 1,
-    "x": 1241.3374099731445,
-    "y": 160.33729347586632,
-    "z": "5630a65a.9ec898",
+    "x": 1226.8647422790527,
+    "y": 174.36854109168053,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "c7d7c03b.f2fa6"
+        "2cafaedf.cedf32"
       ]
     ]
   },
   {
-    "id": "c7d7c03b.f2fa6",
+    "id": "2cafaedf.cedf32",
     "type": "outcomeTrue",
     "name": "true",
     "xml": "<outcome value='true'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1415.3375358581543,
-    "y": 160.33729729056358,
-    "z": "5630a65a.9ec898",
+    "x": 1400.8648681640625,
+    "y": 174.3685449063778,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "af327670.c19a78"
+        "529c0b0c.8d2074"
       ]
     ]
   },
   {
-    "id": "af327670.c19a78",
+    "id": "529c0b0c.8d2074",
     "type": "set",
     "name": "set name",
     "xml": "<set>\n<parameter name='prop.name' value='`$ctx.network-data.network-request-input.network-input-parameters.param[$idx].value`' />\n",
     "comments": "",
-    "x": 1578.3374214172363,
-    "y": 159.9372919499874,
-    "z": "5630a65a.9ec898",
+    "x": 1563.8647537231445,
+    "y": 173.96853956580162,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "f220bde6.61096",
+    "id": "fce8b550.d12f88",
     "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 = 'SDWAN-Controller' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",
     "comments": "",
     "outputs": 1,
-    "x": 787.5039176940918,
-    "y": 339.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 773.03125,
+    "y": 353.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "9390ab8d.339038",
-        "422112c5.89ee3c",
-        "b2fc220b.c981"
+        "9b25121d.283a4",
+        "385f822e.d7b4ae",
+        "f3914c31.422ce"
       ]
     ]
   },
   {
-    "id": "9390ab8d.339038",
+    "id": "9b25121d.283a4",
     "type": "success",
     "name": "success",
     "xml": "<outcome value='success'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1032.5039176940918,
-    "y": 285.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 1018.03125,
+    "y": 299.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "b9e9d09e.1a521"
+        "f386956a.705be8"
       ]
     ]
   },
   {
-    "id": "422112c5.89ee3c",
+    "id": "385f822e.d7b4ae",
     "type": "not-found",
     "name": "not-found",
     "xml": "<outcome value='not-found'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1035.9948844909668,
-    "y": 332.5779455602169,
-    "z": "5630a65a.9ec898",
+    "x": 1021.522216796875,
+    "y": 346.6091931760311,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "fc9a3019.525c8"
+        "e34bc405.635f88"
       ]
     ]
   },
   {
-    "id": "b2fc220b.c981",
+    "id": "f3914c31.422ce",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1031.3278923034668,
-    "y": 373.91125854849815,
-    "z": "5630a65a.9ec898",
+    "x": 1016.855224609375,
+    "y": 387.94250616431236,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "9d79278.15d3ed8"
+        "799bf116.3f716"
       ]
     ]
   },
   {
-    "id": "b9e9d09e.1a521",
+    "id": "f386956a.705be8",
     "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": 1230.003978729248,
-    "y": 273.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 1215.5313110351562,
+    "y": 287.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "fc9a3019.525c8",
+    "id": "e34bc405.635f88",
     "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": 1212.5662956237793,
-    "y": 320.8636816442013,
-    "z": "5630a65a.9ec898",
+    "x": 1198.0936279296875,
+    "y": 334.8949292600155,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "9d79278.15d3ed8",
+    "id": "799bf116.3f716",
     "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": 1219.1004486083984,
-    "y": 369.3504513204098,
-    "z": "5630a65a.9ec898",
+    "x": 1204.6277809143066,
+    "y": 383.381698936224,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "1ebcf5b8.ee7c3a",
+    "id": "cc83cf92.13ac4",
     "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.openecomp.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": 795.5039176940918,
-    "y": 450.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 781.03125,
+    "y": 464.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "fd9ecfb8.dcb2c",
-        "2aa6377a.1dbc88"
+        "de360ea0.df86c",
+        "8ab64288.ec606"
       ]
     ]
   },
   {
-    "id": "fd9ecfb8.dcb2c",
+    "id": "de360ea0.df86c",
     "type": "success",
     "name": "success",
     "xml": "<outcome value='success'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1030.5039176940918,
-    "y": 428.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 1020.031322479248,
+    "y": 442.03518772125244,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "ff15f3bd.bf298"
+        "d8a5f197.3daff"
       ]
     ]
   },
   {
-    "id": "2aa6377a.1dbc88",
+    "id": "8ab64288.ec606",
     "type": "failure",
     "name": "failure",
     "xml": "<outcome value='failure'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1022.7539176940918,
-    "y": 481.6467932164669,
-    "z": "5630a65a.9ec898",
+    "x": 1012.281322479248,
+    "y": 495.6780710220337,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "95badc84.277a8"
+        "761741d1.08b81"
       ]
     ]
   },
   {
-    "id": "ff15f3bd.bf298",
+    "id": "d8a5f197.3daff",
     "type": "set",
     "name": "set token-id",
     "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",
     "comments": "",
-    "x": 1184.5039176940918,
-    "y": 429.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 1170.03125,
+    "y": 443.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "95badc84.277a8",
+    "id": "761741d1.08b81",
     "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": 1175.5039176940918,
-    "y": 481.39685425162315,
-    "z": "5630a65a.9ec898",
+    "x": 1165.031322479248,
+    "y": 495.42813205718994,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "b20e40a7.db9f2",
+    "id": "e1341c8f.56768",
     "type": "switchNode",
     "name": "switch topology",
     "xml": "<switch test=\"`$ctx.network-data.network-request-input.network-input-parameters.param[$idx].name == 'topology'`\">\n",
     "comments": "",
     "outputs": 1,
-    "x": 1239.7539176940918,
-    "y": 213.00390991568565,
-    "z": "5630a65a.9ec898",
+    "x": 1225.28125,
+    "y": 227.03515753149986,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "968633ac.1886b"
+        "abb60c8f.8ac5f"
       ]
     ]
   },
   {
-    "id": "968633ac.1886b",
+    "id": "abb60c8f.8ac5f",
     "type": "outcomeTrue",
     "name": "true",
     "xml": "<outcome value='true'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1413.7540435791016,
-    "y": 213.00391373038292,
-    "z": "5630a65a.9ec898",
+    "x": 1399.2813758850098,
+    "y": 227.03516134619713,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "28e1e286.2c199e"
+        "36b54251.f429ce"
       ]
     ]
   },
   {
-    "id": "28e1e286.2c199e",
+    "id": "36b54251.f429ce",
     "type": "set",
     "name": "set topology",
     "xml": "<set>\n<parameter name='prop.topology' value='`$ctx.network-data.network-request-input.network-input-parameters.param[$idx].value`' />\n",
     "comments": "",
-    "x": 1576.7539291381836,
-    "y": 212.60390838980675,
-    "z": "5630a65a.9ec898",
+    "x": 1562.2812614440918,
+    "y": 226.63515600562096,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "95959ba8.d84698",
+    "id": "5ff87b45.2a9d04",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 722.2539329528809,
-    "y": 650.0039599835873,
-    "z": "5630a65a.9ec898",
+    "x": 702.7812957763672,
+    "y": 710.0352792739868,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "c37fc252.ca32b"
+        "34512469.61377c"
       ]
     ]
   },
   {
-    "id": "c37fc252.ca32b",
+    "id": "34512469.61377c",
     "type": "execute",
     "name": "execute RestApiCallNode Create network orchestration",
     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-network-orchestration.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"orchestration-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 1044.7539825439453,
-    "y": 653.0040616989136,
-    "z": "5630a65a.9ec898",
+    "x": 1023.2814025878906,
+    "y": 699.0353622436523,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "cf1e1603.5d6118",
+    "id": "fc4fc9d4.5f3178",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 719.7539329528809,
-    "y": 758.0039599835873,
-    "z": "5630a65a.9ec898",
+    "x": 705.2812652587891,
+    "y": 772.0352075994015,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "e379ec58.8ceb2",
-        "3e353248.8e09fe",
-        "6943d9d8.2f1f68"
+        "dcf83ef9.92d4e",
+        "6fd086ba.35f488",
+        "ccbce6bf.529778"
       ]
     ]
   },
   {
-    "id": "e379ec58.8ceb2",
+    "id": "6fd086ba.35f488",
     "type": "execute",
     "name": "execute RestApiCallNode Create vpn",
     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 991.253978729248,
-    "y": 748.0040839612484,
-    "z": "5630a65a.9ec898",
+    "x": 976.7813110351562,
+    "y": 762.0353315770626,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "3e353248.8e09fe",
+    "id": "dcf83ef9.92d4e",
     "type": "set",
     "name": "set prop.vpn-id and prop.vpn1Id",
-    "xml": "<set>\n<parameter name='prop.vpn-id' value='`$vpn-result.id`' />\n<parameter name='prop.vpn1Id' value='`$vpn-result.id`' />\n",
+    "xml": "<set>\n<!--parameter name='prop.vpn-id' value='`$vpn-result.id`' />\n<parameter name='prop.vpn1Id' value='`$vpn-result.id`' /-->\n\n<parameter name='prop.vpn-id' value='10' />\n<parameter name='prop.vpn1Id' value='10' />\n",
     "comments": "",
-    "x": 975.2541313171387,
-    "y": 800.004145950079,
-    "z": "5630a65a.9ec898",
+    "x": 972.7814674377441,
+    "y": 814.0354309082031,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "6943d9d8.2f1f68",
+    "id": "ccbce6bf.529778",
     "type": "execute",
     "name": "execute RestApiCallNode Create vpn topology",
     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 1018.7539825439453,
-    "y": 852.0039582252502,
-    "z": "5630a65a.9ec898",
+    "x": 1004.2813148498535,
+    "y": 866.0352058410645,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "f18b4542.7d2158",
+    "id": "3bff9e87.90adb2",
     "type": "set",
     "name": "set tenant-id and vpn-id to service-data",
     "xml": "<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-request-input.network-input-parameters.param[$network-topology-operation-input.network-request-input.network-input-parameters.param_length].name' value='tenant-id' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-request-input.network-input-parameters.param[$network-topology-operation-input.network-request-input.network-input-parameters.param_length].value' value='`$prop.tenant-id`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-request-input.network-input-parameters.param[$network-topology-operation-input.network-request-input.network-input-parameters.param_length + 1].name' value='vpn-id' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-request-input.network-input-parameters.param[$network-topology-operation-input.network-request-input.network-input-parameters.param_length + 1].value' value='`$prop.vpn-id`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-request-input.network-input-parameters.param_length' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length + 2`' />",
     "comments": "",
-    "x": 798.7539215087891,
-    "y": 921.7539792060852,
-    "z": "5630a65a.9ec898",
+    "x": 784.2812538146973,
+    "y": 935.7852268218994,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "581db18a.df70a",
+    "id": "3355eb7a.3cf5b4",
     "type": "get-resource",
     "name": "get-resource service-subscription",
-    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.networks.network[$tmp.nidx].network-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.networks.network[$tmp.nidx].network-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data\">\n\n",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.networks.network[$tmp.nidx].network-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.networks.network[$tmp.nidx].network-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data\">\n      \n",
     "comments": "",
     "outputs": 1,
-    "x": 786.0039520263672,
-    "y": 547.2539210319519,
-    "z": "5630a65a.9ec898",
+    "x": 758.5313873291016,
+    "y": 613.2851915359497,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "fcef5013.081b8"
+        "edc9287a.cc5518",
+        "5b0f29d9.42a638"
       ]
     ]
   },
   {
-    "id": "fcef5013.081b8",
+    "id": "a1fba96c.417d58",
     "type": "switchNode",
     "name": "switch temp-ub-sub-account-id",
     "xml": "<switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1078.003993988037,
-    "y": 539.0039348602295,
-    "z": "5630a65a.9ec898",
+    "x": 1170.531478881836,
+    "y": 578.0352725982666,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "a4ce55d.f40f1a8",
-        "90c8ccd1.35a13"
+        "e5d2c50b.cba8f8",
+        "21c5a234.6190ae"
       ]
     ]
   },
   {
-    "id": "a4ce55d.f40f1a8",
+    "id": "e5d2c50b.cba8f8",
     "type": "outcome",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 1299.7182807922363,
-    "y": 540.0039367675781,
-    "z": "5630a65a.9ec898",
+    "x": 1363.2459297180176,
+    "y": 552.0353136062622,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "d1e6018.8be3d"
+        "f0651115.93559"
       ]
     ]
   },
   {
-    "id": "90c8ccd1.35a13",
+    "id": "21c5a234.6190ae",
     "type": "other",
     "name": "Other",
     "xml": "<outcome value='Other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1301.00390625,
-    "y": 594.00390625,
-    "z": "5630a65a.9ec898",
+    "x": 1363.531494140625,
+    "y": 607.0352764129639,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "3ebb744f.dbc61c"
+        "867c2305.719d4"
       ]
     ]
   },
   {
-    "id": "3ebb744f.dbc61c",
+    "id": "867c2305.719d4",
     "type": "set",
     "name": "set prop.tenant-id",
     "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\n",
     "comments": "",
-    "x": 1487.0041427612305,
-    "y": 594.0039291381836,
-    "z": "5630a65a.9ec898",
+    "x": 1519.5316696166992,
+    "y": 665.0351943969727,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "d1e6018.8be3d",
+    "id": "f0651115.93559",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 1515.75390625,
-    "y": 539.75390625,
-    "z": "5630a65a.9ec898",
+    "x": 1501.2812385559082,
+    "y": 553.7851538658142,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       [
-        "3f91e970.83e3f6",
-        "df20c5db.1ec7f8",
-        "8a6f7c34.568fe",
-        "f54989e1.a4a098",
-        "eb872c81.f35e"
+        "369b1850.33da28",
+        "6de36f9a.0a191",
+        "1299a0cc.66391f",
+        "8cc3c364.b95fb",
+        "c1785bc5.472658"
       ]
     ]
   },
   {
-    "id": "f54989e1.a4a098",
+    "id": "8cc3c364.b95fb",
     "type": "set",
     "name": "set prop.customer-id",
     "xml": "<set>\n<parameter name='prop.customer-id' value='`$ctx.network-data.service-information.global-customer-id`' />\n",
     "comments": "",
-    "x": 1728.2540321350098,
-    "y": 492.75404182076454,
-    "z": "5630a65a.9ec898",
+    "x": 1716.7815170288086,
+    "y": 490.78530991077423,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "3f91e970.83e3f6",
+    "id": "369b1850.33da28",
     "type": "execute",
     "name": "execute RestApiCallNode Create tenant",
     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-tenant.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats'`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 1789.2539176940918,
-    "y": 553.7539159357548,
-    "z": "5630a65a.9ec898",
+    "x": 1774.78125,
+    "y": 567.785163551569,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "df20c5db.1ec7f8",
+    "id": "6de36f9a.0a191",
     "type": "set",
     "name": "set prop.tenant-id",
     "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\n",
     "comments": "",
-    "x": 1722.253963470459,
-    "y": 582.7538844645023,
-    "z": "5630a65a.9ec898",
+    "x": 1724.7814826965332,
+    "y": 619.785234451294,
+    "z": "28e3f0b9.24cf2",
     "wires": []
   },
   {
-    "id": "8a6f7c34.568fe",
+    "id": "1299a0cc.66391f",
     "type": "execute",
     "name": "execute RestApiCallNode Create tenant auth",
     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats/authorization/' + $prop.tenant-id`\" />\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=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 1803.7538719177246,
-    "y": 613.5038854181767,
-    "z": "5630a65a.9ec898",
+    "x": 1792.281478881836,
+    "y": 655.535234451294,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
   },
   {
-    "id": "eb872c81.f35e",
+    "id": "c1785bc5.472658",
     "type": "get-resource",
     "name": "save-resource customer-id in service-subscription",
     "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.networks.network[$tmp.nidx].network-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.networks.network[$tmp.nidx].network-data.service-information.global-customer-id'>\n<parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' />\n\n",
     "comments": "",
     "outputs": 1,
-    "x": 1819.253963470459,
-    "y": 524.7540208399296,
-    "z": "5630a65a.9ec898",
+    "x": 1794.7813568115234,
+    "y": 528.7853126525879,
+    "z": "28e3f0b9.24cf2",
     "wires": [
       []
     ]
+  },
+  {
+    "id": "edc9287a.cc5518",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 969.03125,
+    "y": 586.03125,
+    "z": "28e3f0b9.24cf2",
+    "wires": [
+      [
+        "a1fba96c.417d58"
+      ]
+    ]
+  },
+  {
+    "id": "5b0f29d9.42a638",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 961.28125,
+    "y": 639.6741333007812,
+    "z": "28e3f0b9.24cf2",
+    "wires": [
+      [
+        "406169f1.4046c8"
+      ]
+    ]
+  },
+  {
+    "id": "406169f1.4046c8",
+    "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": 1114.03125,
+    "y": 639.4241943359375,
+    "z": "28e3f0b9.24cf2",
+    "wires": []
   }
 ]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.json
new file mode 100644 (file)
index 0000000..a0a0fa2
--- /dev/null
@@ -0,0 +1,3366 @@
+[
+  {
+    "id": "b5ebbde.e59a04",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 109,
+    "y": 43,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "a87f9663.877998"
+      ]
+    ]
+  },
+  {
+    "id": "a87f9663.877998",
+    "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": 225.2856903076172,
+    "y": 94.23810768127441,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "8c1b6d3.067719"
+      ]
+    ]
+  },
+  {
+    "id": "8c1b6d3.067719",
+    "type": "method",
+    "name": "method sdwan-wanport-vnf-topology-operation-underlay",
+    "xml": "<method rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 228.42861938476562,
+    "y": 179.00003147125244,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3cd9be6d.873c82"
+      ]
+    ]
+  },
+  {
+    "id": "3cd9be6d.873c82",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 160.66668701171875,
+    "y": 287.66673278808594,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2d7b33ef.a2d9ac",
+        "383a5f3d.e4cb2",
+        "70ceaafc.e0d3f4",
+        "c880f4e9.6d6098"
+      ]
+    ]
+  },
+  {
+    "id": "2d7b33ef.a2d9ac",
+    "type": "for",
+    "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+    "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 598.0004119873047,
+    "y": 398.66683769226074,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e9598182.81589"
+      ]
+    ]
+  },
+  {
+    "id": "be430b5e.14a828",
+    "type": "set",
+    "name": "set prop.ar.allotted-resource-id",
+    "xml": "<set>\n<parameter name='prop.ar.allotted-resource-id' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id`' />\n",
+    "comments": "",
+    "x": 1385.0013427734375,
+    "y": 115.96877861022949,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "423b3b97.a50914",
+    "type": "comment",
+    "name": "Query MDSAL for AR",
+    "info": "",
+    "comments": "",
+    "x": 1710.3340148925781,
+    "y": 139.96864795684814,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "dab21607.3703b8",
+    "type": "comment",
+    "name": "Query MDSAL to get parent service based on service instance id from AR",
+    "info": "",
+    "comments": "",
+    "x": 2180.334873199463,
+    "y": 158.96862697601318,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "90cd3398.44586",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1959.66841506958,
+    "y": 194.63526725769043,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "1d70b537.cd409b"
+      ]
+    ]
+  },
+  {
+    "id": "1d70b537.cd409b",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2114.668254852295,
+    "y": 194.13510036468506,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "d282839d.a628"
+      ]
+    ]
+  },
+  {
+    "id": "bce07922.8c4f98",
+    "type": "other",
+    "name": "outcome 1",
+    "xml": "<outcome value='1'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2438.3587913513184,
+    "y": 190.75424098968506,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3b07cad3.619296"
+      ]
+    ]
+  },
+  {
+    "id": "ee52805a.8bd8",
+    "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 attachement resource not found\" />\n    \n",
+    "comments": "",
+    "x": 2584.1275672912598,
+    "y": 230.20122909545898,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "259f1fc9.28f91",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1952.5201416015625,
+    "y": 241.70127391815186,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "b7b7bf01.123cf"
+      ]
+    ]
+  },
+  {
+    "id": "b7b7bf01.123cf",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2102.5199851989746,
+    "y": 242.36782932281494,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "7cd11e1b.bfaf1"
+      ]
+    ]
+  },
+  {
+    "id": "7c51c058.0306e",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2426.6867446899414,
+    "y": 228.03460121154785,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ee52805a.8bd8"
+      ]
+    ]
+  },
+  {
+    "id": "d282839d.a628",
+    "type": "switchNode",
+    "name": "switch cr length",
+    "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2278.668430328369,
+    "y": 194.6352834701538,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "bce07922.8c4f98",
+        "7c51c058.0306e"
+      ]
+    ]
+  },
+  {
+    "id": "91cc0551.bc01e8",
+    "type": "set",
+    "name": "set parent-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.parent-service-instance-id' value='`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\n\n",
+    "comments": "",
+    "x": 2834.0020294189453,
+    "y": 191.63526439666748,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "3b07cad3.619296",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic='true'>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2588.4778213500977,
+    "y": 190.80180072784424,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "91cc0551.bc01e8",
+        "dc60366a.2e9048"
+      ]
+    ]
+  },
+  {
+    "id": "7cd11e1b.bfaf1",
+    "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 attachement resource not found\" />\n    \n",
+    "comments": "",
+    "x": 2270.001438140869,
+    "y": 240.63520526885986,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "dab3ccab.cce12",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2057.303554534912,
+    "y": 512.7709312438965,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "d5fc5211.c019"
+      ]
+    ]
+  },
+  {
+    "id": "4c1ffccd.7a1ed4",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2049.15535736084,
+    "y": 547.8370161056519,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "4fdb783b.5926a8"
+      ]
+    ]
+  },
+  {
+    "id": "4fdb783b.5926a8",
+    "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 resource not found\" />\n    \n",
+    "comments": "",
+    "x": 2195.304130554199,
+    "y": 548.1045122146606,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "d5fc5211.c019",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2177.3038024902344,
+    "y": 512.771014213562,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "c5126628.a1afc8",
+    "type": "for",
+    "name": "for pnidx.. mdsal-psd.networks.network_length[]",
+    "xml": "<for index='pnidx' start='0' end='`$mdsal-psd.service-data.networks.network_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1740.6683502197266,
+    "y": 612.3028893470764,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "84a7b7df.1615b8"
+      ]
+    ]
+  },
+  {
+    "id": "c8ac708.b0a709",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANConnectivityInstance",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2277.3349990844727,
+    "y": 583.3028283119202,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "af2e2a1f.e9aba8"
+      ]
+    ]
+  },
+  {
+    "id": "af2e2a1f.e9aba8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2522.334518432617,
+    "y": 582.3028283119202,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "64a2447b.58478c"
+      ]
+    ]
+  },
+  {
+    "id": "64a2447b.58478c",
+    "type": "set",
+    "name": "set tmp.pnidx ",
+    "xml": "<set>\n<parameter name='tmp.pnidx' value='`$pnidx`' />\n\n",
+    "comments": "",
+    "x": 2678.3342056274414,
+    "y": 582.3028283119202,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "cf236aa.4478b98",
+    "type": "for",
+    "name": "for loop paramidx - Get topology from servicedata",
+    "xml": "<for index=\"paramidx\" start=\"0\" end=\"`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1746.3349304199219,
+    "y": 662.3024039268494,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "8e2c0789.42db78"
+      ]
+    ]
+  },
+  {
+    "id": "5a69b1be.1055d",
+    "type": "switchNode",
+    "name": "switch topology",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2178.335252761841,
+    "y": 660.3024020195007,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "333e463b.eac74a"
+      ]
+    ]
+  },
+  {
+    "id": "333e463b.eac74a",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2329.3352642059326,
+    "y": 658.3024439811707,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3622de43.1881c2"
+      ]
+    ]
+  },
+  {
+    "id": "3622de43.1881c2",
+    "type": "set",
+    "name": "set topology",
+    "xml": "<set>\n<parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 2470.3349933624268,
+    "y": 657.9023776054382,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "b9ac21ad.456c9",
+    "type": "switchNode",
+    "name": "switch tmp.pnidx ",
+    "xml": "<switch test=\"`$tmp.pnidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2184.3346939086914,
+    "y": 622.9690413475037,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "14fa21e1.174cde"
+      ]
+    ]
+  },
+  {
+    "id": "14fa21e1.174cde",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2331.7633361816406,
+    "y": 622.5404515266418,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "aa33b299.d2b4d"
+      ]
+    ]
+  },
+  {
+    "id": "aa33b299.d2b4d",
+    "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=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+    "comments": "",
+    "x": 2475.1921920776367,
+    "y": 622.6835255622864,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "f19570ac.55187",
+    "type": "switchNode",
+    "name": "switch topology hub-spoke",
+    "xml": "<switch test=\"`$prop.topology == 'hub-spoke'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1551.3348426818848,
+    "y": 759.3023405075073,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "aa80dabf.aca3c8",
+        "4031750f.9789cc"
+      ]
+    ]
+  },
+  {
+    "id": "aa80dabf.aca3c8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1741.334529876709,
+    "y": 784.3028259277344,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "768ac816.c95648"
+      ]
+    ]
+  },
+  {
+    "id": "4031750f.9789cc",
+    "type": "outcomeTrue",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1742.3353233337402,
+    "y": 712.3024568557739,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "bcb708b4.4756f8"
+      ]
+    ]
+  },
+  {
+    "id": "bcb708b4.4756f8",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1872.3353271484375,
+    "y": 711.3024568557739,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "768ac816.c95648",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1746.66748046875,
+    "y": 852.3020601272583,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "37a8a2fc.2a711e"
+      ]
+    ]
+  },
+  {
+    "id": "37a8a2fc.2a711e",
+    "type": "for",
+    "name": "for ppidx.. mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[]",
+    "xml": "<for index='ppidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2154.000732421875,
+    "y": 852.6356782913208,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2c05f76b.7d8c98"
+      ]
+    ]
+  },
+  {
+    "id": "27aa5d13.3e58c2",
+    "type": "set",
+    "name": "set prop.ar.provided-allotted-resource-id",
+    "xml": "<set>\n<parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$ppidx].allotted-resource-id`' />\n\n",
+    "comments": "",
+    "x": 2245.0018463134766,
+    "y": 930.6359763145447,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2e8e3485.54a23c",
+    "type": "for",
+    "name": "for loop aridx - Get role from allotted resource",
+    "xml": "<for index=\"aridx\" start=\"0\" end=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2263.0025482177734,
+    "y": 1041.302767753601,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "1e03ba47.0fb3f6"
+      ]
+    ]
+  },
+  {
+    "id": "a525e63a.cc2b38",
+    "type": "switchNode",
+    "name": "switch Role",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'Role'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2672.002658843994,
+    "y": 1044.3028545379639,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3f99d6d3.e0611a"
+      ]
+    ]
+  },
+  {
+    "id": "3f99d6d3.e0611a",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2813.0029907226562,
+    "y": 1043.3028535842896,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "7bec0d2f.0381d4"
+      ]
+    ]
+  },
+  {
+    "id": "7bec0d2f.0381d4",
+    "type": "set",
+    "name": "set prop.role",
+    "xml": "<set>\n<parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\n",
+    "comments": "",
+    "x": 2954.0030250549316,
+    "y": 1044.9027452468872,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "8fa9655b.7c6ef8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2749.0020446777344,
+    "y": 947.969269990921,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "788b9cb8.8b37d4"
+      ]
+    ]
+  },
+  {
+    "id": "3a2551b1.4f0ace",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2745.8537673950195,
+    "y": 1002.0353531837463,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "5672e76f.825118"
+      ]
+    ]
+  },
+  {
+    "id": "5672e76f.825118",
+    "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 resource not found\" />\n    \n",
+    "comments": "",
+    "x": 2891.002540588379,
+    "y": 999.3028502464294,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "788b9cb8.8b37d4",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2877.0020484924316,
+    "y": 947.9692711830139,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "f102bda6.18929",
+    "type": "switchNode",
+    "name": "switch role hub",
+    "xml": "<switch test=\"`$prop.role == hub`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2129.3351821899414,
+    "y": 1106.6358079910278,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "145fa94e.f27887",
+        "f3be5614.599b68"
+      ]
+    ]
+  },
+  {
+    "id": "da4408c3.f5c0d8",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2445.3345680236816,
+    "y": 1082.6354112625122,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "77da5adf.834034",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2855.3042030334473,
+    "y": 1178.1045179367065,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "8a4c0c4d.62361"
+      ]
+    ]
+  },
+  {
+    "id": "8429ea0a.844dc8",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2857.155773162842,
+    "y": 1238.170599937439,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e9382022.a0267"
+      ]
+    ]
+  },
+  {
+    "id": "e9382022.a0267",
+    "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: SDWAN service-data not found\" />\n    \n",
+    "comments": "",
+    "x": 3001.304546356201,
+    "y": 1200.4380140304565,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "8a4c0c4d.62361",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2985.3042221069336,
+    "y": 1167.1046781539917,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "cf6c45e0.a382b8",
+    "type": "set",
+    "name": "set prop.ar-service-instance-id",
+    "xml": "<set>\n<parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.consuming-service-instance-id`' />\n",
+    "comments": "",
+    "x": 2457.3356018066406,
+    "y": 1166.6360107660294,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "57a73c1e.aeb484",
+    "type": "for",
+    "name": "for arvidx.. mdsal-arsd.service-data.vnfs.vnf_length[]",
+    "xml": "<for index='arvidx' start='0' end='`$mdsal-arsd.service-data.vnfs.vnf_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2501.0020751953125,
+    "y": 1288.6358003616333,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c345e276.9551d"
+      ]
+    ]
+  },
+  {
+    "id": "c345e276.9551d",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2847.6683959960938,
+    "y": 1278.6357765197754,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "568b8936.7e3108",
+        "39f7ac2d.b359d4",
+        "5ab57864.07d758"
+      ]
+    ]
+  },
+  {
+    "id": "568b8936.7e3108",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANPortInstance",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`\">\n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3105.6684799194336,
+    "y": 1233.636646270752,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "61fa4242.861d3c"
+      ]
+    ]
+  },
+  {
+    "id": "cb874e53.482c8",
+    "type": "switchNode",
+    "name": "switch tmp.portvidx ",
+    "xml": "<switch test=\"`$tmp.portvidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2582.668212890625,
+    "y": 1333.3024454116821,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "6aed06ab.403dd8"
+      ]
+    ]
+  },
+  {
+    "id": "815939d8.db2788",
+    "type": "for",
+    "name": "for loop wportidx - Get wan port ID from servicedata",
+    "xml": "<for index=\"wportidx\" start=\"0\" end=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2507.6688232421875,
+    "y": 1488.6367044448853,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "233ccbaa.09c2a4"
+      ]
+    ]
+  },
+  {
+    "id": "6aed06ab.403dd8",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2743.0966777801514,
+    "y": 1332.8739652633667,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ed789211.6aa24"
+      ]
+    ]
+  },
+  {
+    "id": "ed789211.6aa24",
+    "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=\"vnf-topology-operation-input.vnf-request-input.vnf-id (port) not found in service-data\" />\n",
+    "comments": "",
+    "x": 2880.525634765625,
+    "y": 1333.0173768997192,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "61fa4242.861d3c",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3333.668167114258,
+    "y": 1231.6366472244263,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "8dcdd808.562708"
+      ]
+    ]
+  },
+  {
+    "id": "233ccbaa.09c2a4",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2850.669807434082,
+    "y": 1491.6369543075562,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "a50a8ecc.70146",
+        "c6553e69.23e06",
+        "a6ca66b6.132b88",
+        "f8ad0824.756498"
+      ]
+    ]
+  },
+  {
+    "id": "a50a8ecc.70146",
+    "type": "switchNode",
+    "name": "switch transportNetworkName",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'transportNetworkName'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3145.670757293701,
+    "y": 1430.6374912261963,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "1b0657c2.3d75f8"
+      ]
+    ]
+  },
+  {
+    "id": "8dcdd808.562708",
+    "type": "set",
+    "name": "set tmp.portvidx ",
+    "xml": "<set>\n<parameter name='tmp.portvidx' value='`$arvidx`' />\n\n",
+    "comments": "",
+    "x": 3488.6678504943848,
+    "y": 1231.636646270752,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "1b0657c2.3d75f8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3338.6707725524902,
+    "y": 1430.63765335083,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "b34f100.12863f"
+      ]
+    ]
+  },
+  {
+    "id": "b34f100.12863f",
+    "type": "set",
+    "name": "set prop.hub.transportNetworkName",
+    "xml": "<set>\n<parameter name='prop.hub.transportNetworkName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\n",
+    "comments": "",
+    "x": 3556.6707801818848,
+    "y": 1429.23823928833,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "c6553e69.23e06",
+    "type": "switchNode",
+    "name": "switch wanPortId",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'wanPortId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3107.003490447998,
+    "y": 1464.6371002197266,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2bec9518.ec7c8a"
+      ]
+    ]
+  },
+  {
+    "id": "2bec9518.ec7c8a",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3268.003818511963,
+    "y": 1465.6371803283691,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "37425798.ff2018"
+      ]
+    ]
+  },
+  {
+    "id": "37425798.ff2018",
+    "type": "set",
+    "name": "set prop.hub.wanPortId",
+    "xml": "<set>\n<parameter name='prop.hub.wanPortId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\n",
+    "comments": "",
+    "x": 3458.004280090332,
+    "y": 1465.2374563217163,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "d298818e.120b",
+    "type": "switchNode",
+    "name": "switch  prop.hub.transportNetworkName==prop.spoke.transportNetworkName",
+    "xml": "<switch test=\"`$prop.hub.transportNetworkName == $prop.spoke.transportNetworkName`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2585.004150390625,
+    "y": 1591.304440498352,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "7a56c9bb.004ba8",
+        "6f7c3402.62f4ac"
+      ]
+    ]
+  },
+  {
+    "id": "7a56c9bb.004ba8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2931.0036811828613,
+    "y": 1628.3045144081116,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3d53e5a5.8f912a"
+      ]
+    ]
+  },
+  {
+    "id": "6f7c3402.62f4ac",
+    "type": "outcomeTrue",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2935.0041694641113,
+    "y": 1563.3041467666626,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "67b638dd.ee4608"
+      ]
+    ]
+  },
+  {
+    "id": "67b638dd.ee4608",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3075.0040969848633,
+    "y": 1591.304271697998,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "2c05f76b.7d8c98",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1896.0322265625,
+    "y": 961.8333101272583,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "27aa5d13.3e58c2",
+        "2e8e3485.54a23c",
+        "f102bda6.18929",
+        "74cd5045.40831",
+        "447d9e5f.d5a82"
+      ]
+    ]
+  },
+  {
+    "id": "e66f705e.b1887",
+    "type": "switchNode",
+    "name": "switch vpnId",
+    "xml": "<switch test=\"`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2168.001268386841,
+    "y": 704.6354126930237,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3f0e1104.f843be"
+      ]
+    ]
+  },
+  {
+    "id": "3f0e1104.f843be",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2312.0012798309326,
+    "y": 704.6354537010193,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ca8d4515.16e2d8"
+      ]
+    ]
+  },
+  {
+    "id": "ca8d4515.16e2d8",
+    "type": "set",
+    "name": "set prop.vpnId",
+    "xml": "<set>\n<parameter name='prop.vpnId' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\n",
+    "comments": "",
+    "x": 2470.001001358032,
+    "y": 703.2353882789612,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "49f7ab80.b2f444",
+    "type": "set",
+    "name": "Set prop.hubTnpId",
+    "xml": "<set>\n<parameter name='prop.hubTnpId' value='$prop.hub.wanPortId' />\n\n",
+    "comments": "",
+    "x": 2622.336555480957,
+    "y": 1717.6363048553467,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "e429ce4e.ff4d3",
+    "type": "execute",
+    "name": "execute RestApiCallNode underlay route",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayHubResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 3483.335531234741,
+    "y": 2176.970527648926,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ec4a9fe3.5d773",
+        "c11c5434.daa9b8"
+      ]
+    ]
+  },
+  {
+    "id": "c11c5434.daa9b8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3730.3355026245117,
+    "y": 2161.970682144165,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "ec4a9fe3.5d773",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3728.3351821899414,
+    "y": 2117.970672607422,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "dfdd1a66.f211b8"
+      ]
+    ]
+  },
+  {
+    "id": "dfdd1a66.f211b8",
+    "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 sdwan hub route underlay rest api\" />\n",
+    "comments": "",
+    "x": 3870.335868835449,
+    "y": 2115.9707555770874,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "f88633ef.4a895",
+    "type": "set",
+    "name": "Add prop.hub.route",
+    "xml": "<set>\n<parameter name='prop.route.id' value='`$prop.hubRouteId`' />\n<parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\n<parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\n<parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\n<parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\n<parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\n<parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\n\n\n",
+    "comments": "",
+    "x": 3414.669235229492,
+    "y": 2140.6372261047363,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "9c47cd10.cba71",
+    "type": "execute",
+    "name": "execute RestApiCallNode underlay route",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayspokeResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 3489.669235229492,
+    "y": 2282.637691259384,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "97c364c.1574998",
+        "46a68448.91960c"
+      ]
+    ]
+  },
+  {
+    "id": "46a68448.91960c",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3734.669120788574,
+    "y": 2261.6379222869873,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "97c364c.1574998",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3732.668800354004,
+    "y": 2217.637912750244,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "32d31d6b.e39f42"
+      ]
+    ]
+  },
+  {
+    "id": "32d31d6b.e39f42",
+    "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 sdwan spoke route underlay rest api\" />\n",
+    "comments": "",
+    "x": 3874.6694869995117,
+    "y": 2215.6379957199097,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "39f7ac2d.b359d4",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANDeviceInstance",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3116.5320568084717,
+    "y": 1266.833604812622,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "f872eafd.ca0638"
+      ]
+    ]
+  },
+  {
+    "id": "50e86192.f47ba",
+    "type": "switchNode",
+    "name": "switch tmp.devicevidx ",
+    "xml": "<switch test=\"`$tmp.devicevidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2588.5316314697266,
+    "y": 1375.4999265670776,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e276c36a.0c845"
+      ]
+    ]
+  },
+  {
+    "id": "e276c36a.0c845",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2754.9600677490234,
+    "y": 1375.0714597702026,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "58c8206f.bb829"
+      ]
+    ]
+  },
+  {
+    "id": "58c8206f.bb829",
+    "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=\"vnf-topology-operation-input.vnf-request-input.vnf-id (device) not found in service-data\" />\n",
+    "comments": "",
+    "x": 2895.388999938965,
+    "y": 1377.2144346237183,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "f872eafd.ca0638",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3344.531744003296,
+    "y": 1264.8336057662964,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "9b7f11e8.f156f"
+      ]
+    ]
+  },
+  {
+    "id": "9b7f11e8.f156f",
+    "type": "set",
+    "name": "set tmp.devicevidx ",
+    "xml": "<set>\n<parameter name='tmp.devicevidx' value='`$arvidx`' />\n\n",
+    "comments": "",
+    "x": 3499.531427383423,
+    "y": 1264.833604812622,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "5ab57864.07d758",
+    "type": "switchNode",
+    "name": "switch ActivateSiteInstance",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3079.532127380371,
+    "y": 1300.8336687088013,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c3a08b58.d519a8"
+      ]
+    ]
+  },
+  {
+    "id": "971c87ae.5fde98",
+    "type": "switchNode",
+    "name": "switch tmp.sitevidx ",
+    "xml": "<switch test=\"`$tmp.sitevidx`\">\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2587.5315017700195,
+    "y": 1413.4998044967651,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "9fcf4fcb.f5c0f"
+      ]
+    ]
+  },
+  {
+    "id": "9fcf4fcb.f5c0f",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2747.959966659546,
+    "y": 1413.0713243484497,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2e7d1637.59ed7a"
+      ]
+    ]
+  },
+  {
+    "id": "2e7d1637.59ed7a",
+    "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=\"vnf-topology-operation-input.vnf-request-input.vnf-id (site) not found in service-data\" />\n",
+    "comments": "",
+    "x": 2896.388921737671,
+    "y": 1415.2143306732178,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "c3a08b58.d519a8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3267.531692504883,
+    "y": 1300.8338346481323,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "90c635f1.794b58"
+      ]
+    ]
+  },
+  {
+    "id": "90c635f1.794b58",
+    "type": "set",
+    "name": "set tmp.sitevidx ",
+    "xml": "<set>\n<parameter name='tmp.sitevidx' value='`$arvidx`' />\n\n",
+    "comments": "",
+    "x": 3422.5313758850098,
+    "y": 1300.833833694458,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "d7805819.9cd108",
+    "type": "for",
+    "name": "for loop deviceidx - Get wan port ID from servicedata",
+    "xml": "<for index=\"deviceidx\" start=\"0\" end=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2719.5331497192383,
+    "y": 1753.834059715271,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "82cf7632.68ed28"
+      ]
+    ]
+  },
+  {
+    "id": "2060fdef.b0b7d2",
+    "type": "switchNode",
+    "name": "switch deviceId",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3180.5345039367676,
+    "y": 1667.834927558899,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2cf983c4.8e5dac"
+      ]
+    ]
+  },
+  {
+    "id": "2cf983c4.8e5dac",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3331.5348777770996,
+    "y": 1664.835171699524,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "234f9431.3dcaac"
+      ]
+    ]
+  },
+  {
+    "id": "234f9431.3dcaac",
+    "type": "set",
+    "name": "set prop.hub.deviceId",
+    "xml": "<set>\n<parameter name='prop.hub.deviceId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].value`' />\n",
+    "comments": "",
+    "x": 3506.535125732422,
+    "y": 1664.4356966018677,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "4ed5eacf.f6a1c4",
+    "type": "for",
+    "name": "for loop siteidx - Get site ID from servicedata",
+    "xml": "<for index=\"siteidx\" start=\"0\" end=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2694.0330352783203,
+    "y": 1810.83407497406,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c6190b7b.0c6f78"
+      ]
+    ]
+  },
+  {
+    "id": "c9e1f848.8aa118",
+    "type": "switchNode",
+    "name": "switch spokeRouteId",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'spokeRouteId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3160.034511566162,
+    "y": 1822.8348779678345,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "480353b6.36bf3c"
+      ]
+    ]
+  },
+  {
+    "id": "480353b6.36bf3c",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3323.035057067871,
+    "y": 1820.8351745605469,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "7e8ff406.9f32cc"
+      ]
+    ]
+  },
+  {
+    "id": "7e8ff406.9f32cc",
+    "type": "set",
+    "name": "set prop.spokeRouteId",
+    "xml": "<set>\n<parameter name='prop.spokeRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n",
+    "comments": "",
+    "x": 3492.0350646972656,
+    "y": 1820.4357604980469,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "4f4875cc.67999c",
+    "type": "comment",
+    "name": "Add route src->dst, dst->src",
+    "info": "",
+    "comments": "",
+    "x": 2910.6687927246094,
+    "y": 1858.6359510421753,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2f1d0b59.a2f164",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2132.334228515625,
+    "y": 1238.968747138977,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "57a73c1e.aeb484",
+        "815939d8.db2788",
+        "d298818e.120b",
+        "bc0801cd.444e3",
+        "cf6c45e0.a382b8",
+        "380e9d46.aac952",
+        "150f28bb.9cebb7"
+      ]
+    ]
+  },
+  {
+    "id": "bc0801cd.444e3",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2387.333984375,
+    "y": 1375.3021211624146,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "cb874e53.482c8",
+        "50e86192.f47ba",
+        "971c87ae.5fde98"
+      ]
+    ]
+  },
+  {
+    "id": "3d53e5a5.8f912a",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2381.3349609375,
+    "y": 1747.6356172561646,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "49f7ab80.b2f444",
+        "d7805819.9cd108",
+        "4ed5eacf.f6a1c4",
+        "927db1a6.0967b",
+        "9c607856.359088"
+      ]
+    ]
+  },
+  {
+    "id": "a6ca66b6.132b88",
+    "type": "switchNode",
+    "name": "switch providerIpAddress",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'providerIpAddress'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3128.5319747924805,
+    "y": 1501.8334050178528,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "22164d6f.99a622"
+      ]
+    ]
+  },
+  {
+    "id": "22164d6f.99a622",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3304.532958984375,
+    "y": 1501.8335275650024,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "46635360.d5dd9c"
+      ]
+    ]
+  },
+  {
+    "id": "46635360.d5dd9c",
+    "type": "set",
+    "name": "set prop.hub.providerIpAddress",
+    "xml": "<set>\n<parameter name='prop.hub.providerIpAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\n",
+    "comments": "",
+    "x": 3506.5329971313477,
+    "y": 1502.4334478378296,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "f8ad0824.756498",
+    "type": "switchNode",
+    "name": "switch ipAddress",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'ipAddress'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3101.0320568084717,
+    "y": 1539.333490371704,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ae5c5a08.535ae8"
+      ]
+    ]
+  },
+  {
+    "id": "ae5c5a08.535ae8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3305.0329971313477,
+    "y": 1539.3334422111511,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "a2ccd569.27b3a8"
+      ]
+    ]
+  },
+  {
+    "id": "a2ccd569.27b3a8",
+    "type": "set",
+    "name": "set prop.hub.ipAddress",
+    "xml": "<set>\n<parameter name='prop.hub.ipAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\n",
+    "comments": "",
+    "x": 3500.033000946045,
+    "y": 1538.9334177970886,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "7ec8de50.abc7a",
+    "type": "set",
+    "name": "Add prop.spoke.route",
+    "xml": "<set>\n<parameter name='prop.route.id' value='`$prop.spokeRouteId`' />\n<parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\n<parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\n<parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\n<parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\n<parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\n<parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\n\n\n\n\n",
+    "comments": "",
+    "x": 3424.533250808716,
+    "y": 2251.334452390671,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "383a5f3d.e4cb2",
+    "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": 357.3343048095703,
+    "y": 1113.3343391418457,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "66dd18ab.e48f08",
+    "type": "execute",
+    "name": "generate connection attachment 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-connection\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar.allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1406.6672058105469,
+    "y": 175.30183696746826,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "8e4434c9.93e608",
+    "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-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-ar\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1533.667236328125,
+    "y": 223.3018274307251,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "90cd3398.44586",
+        "259f1fc9.28f91"
+      ]
+    ]
+  },
+  {
+    "id": "b50f711c.f7671",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get 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-parent-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-psd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1759.0013122558594,
+    "y": 537.3021445274353,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "dab3ccab.cce12",
+        "4c1ffccd.7a1ed4"
+      ]
+    ]
+  },
+  {
+    "id": "4176c827.c206f8",
+    "type": "execute",
+    "name": "generate connection attachment parent 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-parent-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.parent-service-instance-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1735.0010375976562,
+    "y": 503.30206871032715,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "38bc1f98.0d705",
+    "type": "comment",
+    "name": "full mesh do nothing",
+    "info": "",
+    "comments": "",
+    "x": 1569.667839050293,
+    "y": 714.3021068572998,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "d2bafee.be2ed",
+    "type": "comment",
+    "name": "hub-spoke",
+    "info": "",
+    "comments": "",
+    "x": 2570.6672401428223,
+    "y": 811.3019967079163,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "74cd5045.40831",
+    "type": "execute",
+    "name": "generate connection attachment 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-connection\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar.provided-allotted-resource-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2243.0003929138184,
+    "y": 962.3019919395447,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "447d9e5f.d5a82",
+    "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-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-providedAr\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2374.000473022461,
+    "y": 1001.9686217308044,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "8fa9655b.7c6ef8",
+        "3a2551b1.4f0ace"
+      ]
+    ]
+  },
+  {
+    "id": "380e9d46.aac952",
+    "type": "execute",
+    "name": "generate 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-connection\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$prop.ar-service-instance-id`\"/>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2424.504367828369,
+    "y": 1203.3058919906616,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "150f28bb.9cebb7",
+    "type": "execute",
+    "name": "execute RestApiCallNode - get service data of 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-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-arsd\" />\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2540.5045013427734,
+    "y": 1240.3057832717896,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "77da5adf.834034",
+        "8429ea0a.844dc8"
+      ]
+    ]
+  },
+  {
+    "id": "f3be5614.599b68",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2304.5000648498535,
+    "y": 1125.8018560409546,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2f1d0b59.a2f164"
+      ]
+    ]
+  },
+  {
+    "id": "145fa94e.f27887",
+    "type": "outcomeFalse",
+    "name": "false",
+    "xml": "<outcome value='false'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2310.500312805176,
+    "y": 1082.801947593689,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "da4408c3.f5c0d8"
+      ]
+    ]
+  },
+  {
+    "id": "dc60366a.2e9048",
+    "type": "for",
+    "name": "for loop roleidx - Get role from allotted resource",
+    "xml": "<for index=\"roleidx\" start=\"0\" end=\"`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2885.5008697509766,
+    "y": 230.30177307128906,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "b2e56fad.1ec69"
+      ]
+    ]
+  },
+  {
+    "id": "b2e56fad.1ec69",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3144.5011825561523,
+    "y": 229.3020887374878,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "694d9509.75a9ec"
+      ]
+    ]
+  },
+  {
+    "id": "694d9509.75a9ec",
+    "type": "switchNode",
+    "name": "switch Role",
+    "xml": "<switch test=\"`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3293.501194000244,
+    "y": 230.3019256591797,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "7d090fc5.01ae4"
+      ]
+    ]
+  },
+  {
+    "id": "c3f6a3e4.765a9",
+    "type": "set",
+    "name": "set prop.spoke.role",
+    "xml": "<set>\n<parameter name='prop.spoke.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />\n",
+    "comments": "",
+    "x": 3598.501754760742,
+    "y": 227.90183353424072,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "7d090fc5.01ae4",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3429.00101852417,
+    "y": 227.30176544189453,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c3f6a3e4.765a9"
+      ]
+    ]
+  },
+  {
+    "id": "64901ca2.c8fd44",
+    "type": "switchNode",
+    "name": "switch spoke",
+    "xml": "<switch test=\"`$prop.spoke.role == 'spoke'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1321.000373840332,
+    "y": 374.301700592041,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3df0d9b2.5cda06"
+      ]
+    ]
+  },
+  {
+    "id": "3df0d9b2.5cda06",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1462.000129699707,
+    "y": 375.30173778533936,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e7d060c2.d5397"
+      ]
+    ]
+  },
+  {
+    "id": "51f4030a.ed3f5c",
+    "type": "for",
+    "name": "for i.. service-data.vnfs.vnf_length[]",
+    "xml": "<for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1734.5006561279297,
+    "y": 429.3017330169678,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "62a2db1c.5168f4"
+      ]
+    ]
+  },
+  {
+    "id": "62a2db1c.5168f4",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2068.166847229004,
+    "y": 373.3016633987427,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "5123e57d.8bae0c",
+        "23b51d10.325942",
+        "e569fce4.0fcf9"
+      ]
+    ]
+  },
+  {
+    "id": "5123e57d.8bae0c",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANPortInstance",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2339.1668853759766,
+    "y": 319.3025498390198,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "6db9ff05.77666"
+      ]
+    ]
+  },
+  {
+    "id": "6db9ff05.77666",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2552.166648864746,
+    "y": 320.3025527000427,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "277a3bfe.22cd04"
+      ]
+    ]
+  },
+  {
+    "id": "277a3bfe.22cd04",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2701.0003929138184,
+    "y": 322.3017420768738,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "342216f2.a96c5a"
+      ]
+    ]
+  },
+  {
+    "id": "342216f2.a96c5a",
+    "type": "for",
+    "name": "for loop widx - Get wan port ID from servicedata",
+    "xml": "<for index=\"widx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2974.000343322754,
+    "y": 320.6689600944519,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "bd426655.141608"
+      ]
+    ]
+  },
+  {
+    "id": "bd426655.141608",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3243.0012702941895,
+    "y": 319.66920614242554,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "d3ada690.01d678",
+        "daf81956.349368",
+        "5bef4443.c838fc",
+        "a4bd0e48.6d82f"
+      ]
+    ]
+  },
+  {
+    "id": "d3ada690.01d678",
+    "type": "switchNode",
+    "name": "switch transportNetworkName",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'transportNetworkName'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3486.0023040771484,
+    "y": 274.6697793006897,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "894b8be3.a2d3b8"
+      ]
+    ]
+  },
+  {
+    "id": "894b8be3.a2d3b8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3686.0020790100098,
+    "y": 274.6699414253235,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "4cf3ccb2.4c44b4"
+      ]
+    ]
+  },
+  {
+    "id": "4cf3ccb2.4c44b4",
+    "type": "set",
+    "name": "set prop.spoke.transportNetworkName",
+    "xml": "<set>\n<parameter name='prop.spoke.transportNetworkName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\n",
+    "comments": "",
+    "x": 3913.002815246582,
+    "y": 276.2705235481262,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "e7d060c2.d5397",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1214.9694213867188,
+    "y": 685.2706489562988,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "51f4030a.ed3f5c",
+        "4176c827.c206f8",
+        "b50f711c.f7671",
+        "c5126628.a1afc8",
+        "cf236aa.4478b98",
+        "f19570ac.55187"
+      ]
+    ]
+  },
+  {
+    "id": "23b51d10.325942",
+    "type": "switchNode",
+    "name": "switch ActivateSDWANDeviceInstance",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2331.5003204345703,
+    "y": 393.3017544746399,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "14d0bfc7.55b7a"
+      ]
+    ]
+  },
+  {
+    "id": "14d0bfc7.55b7a",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2550.5000705718994,
+    "y": 394.30173921585083,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "da1c13db.62f86"
+      ]
+    ]
+  },
+  {
+    "id": "da1c13db.62f86",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2701.3340606689453,
+    "y": 400.3009305000305,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e71b7f46.84637"
+      ]
+    ]
+  },
+  {
+    "id": "e71b7f46.84637",
+    "type": "for",
+    "name": "for loop didx - Get device ID from servicedata",
+    "xml": "<for index=\"didx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2960.334312438965,
+    "y": 402.66822576522827,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ae18d850.3d05e8"
+      ]
+    ]
+  },
+  {
+    "id": "ae18d850.3d05e8",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3246.334819793701,
+    "y": 435.66841077804565,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "1383d6a4.a044c9"
+      ]
+    ]
+  },
+  {
+    "id": "1383d6a4.a044c9",
+    "type": "switchNode",
+    "name": "switch deviceId",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].name == 'deviceId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3429.3357315063477,
+    "y": 435.66902112960815,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "cbbd7b54.04add8"
+      ]
+    ]
+  },
+  {
+    "id": "cbbd7b54.04add8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3629.335506439209,
+    "y": 435.66918325424194,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2002292c.f851e6"
+      ]
+    ]
+  },
+  {
+    "id": "2002292c.f851e6",
+    "type": "set",
+    "name": "set prop.spoke.deviceId",
+    "xml": "<set>\n<parameter name='prop.spoke.deviceId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].value`' />\n",
+    "comments": "",
+    "x": 3824.3361892700195,
+    "y": 432.26976442337036,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "e569fce4.0fcf9",
+    "type": "switchNode",
+    "name": "switch ActivateSiteInstance",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSiteInstance'`\">\n    \n    \n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2310.5004348754883,
+    "y": 454.30178594589233,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2c51cabd.1c1bf6"
+      ]
+    ]
+  },
+  {
+    "id": "2c51cabd.1c1bf6",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2544.500072479248,
+    "y": 455.3017258644104,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "4b1a4a05.7589d4"
+      ]
+    ]
+  },
+  {
+    "id": "4b1a4a05.7589d4",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2696.3340606689453,
+    "y": 477.30096197128296,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "bfdd7dbc.be644"
+      ]
+    ]
+  },
+  {
+    "id": "bfdd7dbc.be644",
+    "type": "for",
+    "name": "for loop widx - Get wan site ID from servicedata",
+    "xml": "<for index=\"sidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`\">\n    \n    \n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2977.3338928222656,
+    "y": 476.668164730072,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "86ec8da.eb7757"
+      ]
+    ]
+  },
+  {
+    "id": "86ec8da.eb7757",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3246.334819793701,
+    "y": 475.66841077804565,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ea6a5ab7.abd8e8",
+        "b2aac804.e6f348"
+      ]
+    ]
+  },
+  {
+    "id": "ea6a5ab7.abd8e8",
+    "type": "switchNode",
+    "name": "switch name",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'siteId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3435.335723876953,
+    "y": 513.6690349578857,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "46e734ca.67fa0c"
+      ]
+    ]
+  },
+  {
+    "id": "46e734ca.67fa0c",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3635.3354988098145,
+    "y": 513.6691970825195,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "f2397edb.062c5"
+      ]
+    ]
+  },
+  {
+    "id": "f2397edb.062c5",
+    "type": "set",
+    "name": "set prop.spoke.siteId",
+    "xml": "<set>\n<parameter name='prop.spoke.siteId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\n",
+    "comments": "",
+    "x": 3823.3363037109375,
+    "y": 512.2698106765747,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "daf81956.349368",
+    "type": "switchNode",
+    "name": "switch wanPortId",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'wanPortId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3459.5,
+    "y": 311.3018355369568,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "34972355.9c297c"
+      ]
+    ]
+  },
+  {
+    "id": "34972355.9c297c",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3689.5000038146973,
+    "y": 311.3019471168518,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "6f9ff7e2.2957f8"
+      ]
+    ]
+  },
+  {
+    "id": "6f9ff7e2.2957f8",
+    "type": "set",
+    "name": "set prop.spoke.wanPortId",
+    "xml": "<set>\n<parameter name='prop.spoke.wanPortId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\n",
+    "comments": "",
+    "x": 3916.5007400512695,
+    "y": 312.90252923965454,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "5bef4443.c838fc",
+    "type": "switchNode",
+    "name": "switch providerIpAddress",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'providerIpAddress'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3477.500160217285,
+    "y": 355.30178594589233,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "9220a2ce.263ec"
+      ]
+    ]
+  },
+  {
+    "id": "9220a2ce.263ec",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3677.4999351501465,
+    "y": 355.3019480705261,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "95bab342.b39b3"
+      ]
+    ]
+  },
+  {
+    "id": "95bab342.b39b3",
+    "type": "set",
+    "name": "set prop.spoke.providerIpAddress",
+    "xml": "<set>\n<parameter name='prop.spoke.providerIpAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\n",
+    "comments": "",
+    "x": 3904.5006713867188,
+    "y": 356.90253019332886,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "a4bd0e48.6d82f",
+    "type": "switchNode",
+    "name": "switch ipAddress",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'ipAddress'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3457.499988555908,
+    "y": 394.30182218551636,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "511d5688.773858"
+      ]
+    ]
+  },
+  {
+    "id": "511d5688.773858",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3681.4998168945312,
+    "y": 394.3019394874573,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "fc2e69a1.2d4298"
+      ]
+    ]
+  },
+  {
+    "id": "fc2e69a1.2d4298",
+    "type": "set",
+    "name": "set prop.spoke.ipAddress",
+    "xml": "<set>\n<parameter name='prop.spoke.ipAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\n",
+    "comments": "",
+    "x": 3908.5005531311035,
+    "y": 395.90252161026,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "e9598182.81589",
+    "type": "block",
+    "name": "block: atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1024.999900817871,
+    "y": 253.50004196166992,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "be430b5e.14a828",
+        "66dd18ab.e48f08",
+        "8e4434c9.93e608",
+        "64901ca2.c8fd44"
+      ]
+    ]
+  },
+  {
+    "id": "813e415f.e07c",
+    "type": "comment",
+    "name": "get spoke device,site,wanport info",
+    "info": "",
+    "comments": "",
+    "x": 1781.96875,
+    "y": 376.96874713897705,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2db9ead7.c2b4b6",
+    "type": "comment",
+    "name": "Add routes only on activation of spoke Attach site",
+    "info": "",
+    "comments": "",
+    "x": 1418.4998245239258,
+    "y": 336.0000162124634,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2dcb0ef7.828042",
+    "type": "comment",
+    "name": "Loop for all the hub allotted resources, get respective service data and get vnfs info",
+    "info": "",
+    "comments": "",
+    "x": 2198.5,
+    "y": 815.500057220459,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "c6190b7b.0c6f78",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2954.4997177124023,
+    "y": 1796.9999589920044,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c9e1f848.8aa118",
+        "f616545c.e692d8",
+        "dcfe4dc9.3d83d",
+        "edcfc449.815b98"
+      ]
+    ]
+  },
+  {
+    "id": "82cf7632.68ed28",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3004.4997749328613,
+    "y": 1669.999843597412,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2060fdef.b0b7d2"
+      ]
+    ]
+  },
+  {
+    "id": "dcfe4dc9.3d83d",
+    "type": "switchNode",
+    "name": "switch hubRouteId",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'hubRouteId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3159.4996376037598,
+    "y": 1784.9998378753662,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "4b1456a4.ed61c8"
+      ]
+    ]
+  },
+  {
+    "id": "4b1456a4.ed61c8",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3322.5000228881836,
+    "y": 1784.000150680542,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "71be6aaa.93fe04"
+      ]
+    ]
+  },
+  {
+    "id": "71be6aaa.93fe04",
+    "type": "set",
+    "name": "set prop.hubRouteId",
+    "xml": "<set>\n<parameter name='prop.hubRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n",
+    "comments": "",
+    "x": 3482.500015258789,
+    "y": 1781.6005897521973,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "f616545c.e692d8",
+    "type": "switchNode",
+    "name": "switch siteId",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3141.4996185302734,
+    "y": 1749.9998207092285,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3ef84487.f4b53c"
+      ]
+    ]
+  },
+  {
+    "id": "3ef84487.f4b53c",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3292.499988555908,
+    "y": 1749.0000038146973,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "97d8673.5139598"
+      ]
+    ]
+  },
+  {
+    "id": "97d8673.5139598",
+    "type": "set",
+    "name": "set prop.hub.siteId",
+    "xml": "<set>\n<parameter name='prop.hub.siteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n",
+    "comments": "",
+    "x": 3464.4999961853027,
+    "y": 1746.6005725860596,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "927db1a6.0967b",
+    "type": "switchNode",
+    "name": "switch request-action",
+    "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2619.9996948242188,
+    "y": 2002.0004615783691,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "1a118523.efe04b",
+        "3baee628.49c52a"
+      ]
+    ]
+  },
+  {
+    "id": "1a118523.efe04b",
+    "type": "outcome",
+    "name": "ActivateSDWANAttachmentInstance",
+    "xml": "<outcome value='ActivateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2886.0271530151367,
+    "y": 1971.0314779281616,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "78365f62.f88ae"
+      ]
+    ]
+  },
+  {
+    "id": "d881cca6.da522",
+    "type": "execute",
+    "name": "execute RestApiCallNode underlay route",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayHubResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 3480.4997940063477,
+    "y": 1892.000228881836,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "e1ec68ab.cefaf8",
+        "62d40a0d.8230b4"
+      ]
+    ]
+  },
+  {
+    "id": "62d40a0d.8230b4",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3721.499927520752,
+    "y": 1879.0002145767212,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "e1ec68ab.cefaf8",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3719.4996070861816,
+    "y": 1835.000205039978,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "93f8ad33.2f9f3"
+      ]
+    ]
+  },
+  {
+    "id": "93f8ad33.2f9f3",
+    "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 sdwan hub route underlay rest api\" />\n",
+    "comments": "",
+    "x": 3861.5002937316895,
+    "y": 1833.0002880096436,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2cb0acf9.dc8014",
+    "type": "set",
+    "name": "Add prop.hub.route",
+    "xml": "<set>\n<parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\n<parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\n<parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\n<parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\n<parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\n<parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\n\n\n",
+    "comments": "",
+    "x": 3411.8334980010986,
+    "y": 1855.6669273376465,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "a3cb5620.778698",
+    "type": "execute",
+    "name": "execute RestApiCallNode underlay route",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayspokeResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 3486.8334980010986,
+    "y": 1997.6673924922943,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "da8f9dd5.0d7f2",
+        "54a9a5c9.a84bec"
+      ]
+    ]
+  },
+  {
+    "id": "54a9a5c9.a84bec",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3732.833745956421,
+    "y": 1991.6674008369446,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "da8f9dd5.0d7f2",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3730.8334255218506,
+    "y": 1947.6673913002014,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "405d037f.766c0c"
+      ]
+    ]
+  },
+  {
+    "id": "405d037f.766c0c",
+    "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 sdwan spoke route underlay rest api\" />\n",
+    "comments": "",
+    "x": 3872.8341121673584,
+    "y": 1945.667474269867,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "cf64a525.59cc78",
+    "type": "set",
+    "name": "Add prop.spoke.route",
+    "xml": "<set>\n<parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\n<parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\n<parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\n<parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\n<parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\n<parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\n\n\n",
+    "comments": "",
+    "x": 3421.6975135803223,
+    "y": 1966.364153623581,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "986185e9.8eec08",
+    "type": "set",
+    "name": "set route Id's in site parameters",
+    "xml": "<set>\n<parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value='hubRouteId' />\n<parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$underlayHubResp[0].id`' />\n<parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].name' value='spokeRouteId' />\n<parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].value' value='`$underlayspokeResp[0].id`' />\n<parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 2`' />\n\n\n\n\n",
+    "comments": "",
+    "x": 3446.6644744873047,
+    "y": 2054.0307354927063,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "78365f62.f88ae",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3121.999671936035,
+    "y": 1968.4999113082886,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2cb0acf9.dc8014",
+        "cf64a525.59cc78",
+        "986185e9.8eec08",
+        "a3cb5620.778698",
+        "d881cca6.da522"
+      ]
+    ]
+  },
+  {
+    "id": "105d9963.f193b7",
+    "type": "block",
+    "name": "block atomic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3142.999668121338,
+    "y": 2046.5001020431519,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "f88633ef.4a895",
+        "7ec8de50.abc7a",
+        "e429ce4e.ff4d3",
+        "9c47cd10.cba71"
+      ]
+    ]
+  },
+  {
+    "id": "3baee628.49c52a",
+    "type": "outcome",
+    "name": "DeactivateSDWANAttachmentInstance",
+    "xml": "<outcome value='DeactivateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2891.499725341797,
+    "y": 2040.4999132156372,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "105d9963.f193b7"
+      ]
+    ]
+  },
+  {
+    "id": "9c607856.359088",
+    "type": "set",
+    "name": "Add sites to list and update length",
+    "xml": "<set>\n<parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\n<parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\n<parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\n<parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\n<parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n",
+    "comments": "",
+    "x": 2636.030891418457,
+    "y": 2295.031482696533,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "5323bc16.bbf554",
+    "type": "comment",
+    "name": "save hubsiteIds and spoke siteIds for provision",
+    "info": "",
+    "comments": "",
+    "x": 2668.031265258789,
+    "y": 2251.0313568115234,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "b2aac804.e6f348",
+    "type": "switchNode",
+    "name": "switch name",
+    "xml": "<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'name'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3436.031005859375,
+    "y": 475.03125,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "2e9ab920.c2df16"
+      ]
+    ]
+  },
+  {
+    "id": "2e9ab920.c2df16",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3636.0307807922363,
+    "y": 475.0314121246338,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "3bc80b86.299434"
+      ]
+    ]
+  },
+  {
+    "id": "3bc80b86.299434",
+    "type": "set",
+    "name": "set prop.spoke.siteName",
+    "xml": "<set>\n<parameter name='prop.spoke.siteName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\n",
+    "comments": "",
+    "x": 3824.0315856933594,
+    "y": 473.63202571868896,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "edcfc449.815b98",
+    "type": "switchNode",
+    "name": "switch name",
+    "xml": "<switch test=\"`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'name'`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3140.031005859375,
+    "y": 1716.5311279296875,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "47785d0f.321164"
+      ]
+    ]
+  },
+  {
+    "id": "47785d0f.321164",
+    "type": "outcomeTrue",
+    "name": "true",
+    "xml": "<outcome value='true'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3291.0313758850098,
+    "y": 1715.5313110351562,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "36650635.dab3aa"
+      ]
+    ]
+  },
+  {
+    "id": "36650635.dab3aa",
+    "type": "set",
+    "name": "set prop.hub.siteName",
+    "xml": "<set>\n<parameter name='prop.hub.siteName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\n",
+    "comments": "",
+    "x": 3463.0313835144043,
+    "y": 1713.1318798065186,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "70ceaafc.e0d3f4",
+    "type": "set",
+    "name": "set prop.provision.siteIds_length=0",
+    "xml": "<set>\n<parameter name='prop.provision.siteIds_length' value='0' />\n\n\n\n",
+    "comments": "",
+    "x": 461.03126525878906,
+    "y": 361.0312547683716,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "2ebcd1d4.0c3f8e",
+    "type": "execute",
+    "name": "execute RestApiCallNode site provision urls",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-site-provision.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/provision-urls'`\" />\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=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"provisionUrlRsp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.openecomp.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": 813.0312957763672,
+    "y": 793.0314712524414,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "ad0b5373.47c4b",
+        "2423f336.bee55c"
+      ]
+    ]
+  },
+  {
+    "id": "2423f336.bee55c",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1077.0315551757812,
+    "y": 815.0315160751343,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "ad0b5373.47c4b",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1078.0313415527344,
+    "y": 772.0314540863037,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "21440771.f9b178"
+      ]
+    ]
+  },
+  {
+    "id": "21440771.f9b178",
+    "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 provision url rest api\" />\n",
+    "comments": "",
+    "x": 1257.0318984985352,
+    "y": 770.0315053462982,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "c880f4e9.6d6098",
+    "type": "for",
+    "name": "for providx..prop.provision.siteIds[]",
+    "xml": "<for index='providx' start='0' end='`$prop.provision.siteIds_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 454.0312957763672,
+    "y": 565.0312948226929,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "6ab9e97f.2340e8"
+      ]
+    ]
+  },
+  {
+    "id": "6ab9e97f.2340e8",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 478.0313377380371,
+    "y": 775.031268119812,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "5392610f.9b85f",
+        "2ebcd1d4.0c3f8e",
+        "e83cbadb.6b3148"
+      ]
+    ]
+  },
+  {
+    "id": "5392610f.9b85f",
+    "type": "set",
+    "name": "set prop.spoke.hubSiteId, spokeSiteId",
+    "xml": "<set>\n<parameter name='prop.provision.hubSitename' value='`$prop.provision.siteIds[$providx].hubSiteName`' />\n<parameter name='prop.provision.spokeSitename' value='`$prop.provision.siteIds[$providx].spokeSiteName`' />\n<parameter name='prop.provision.hubspokesite[0]' value='`$prop.provision.siteIds[$providx].hubSiteId`' />\n<parameter name='prop.provision.hubspokesite[1]' value='`$prop.provision.siteIds[$providx].spokeSiteId`' />\n<parameter name='prop.provision.hubspokesite_length' value='2' />\n",
+    "comments": "",
+    "x": 789.0339965820312,
+    "y": 651.6329832077026,
+    "z": "33eaf422.44290c",
+    "wires": []
+  },
+  {
+    "id": "e83cbadb.6b3148",
+    "type": "record",
+    "name": "record provision url response to the file",
+    "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value='`$provisionUrlRsp`'/>\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 785.0313720703125,
+    "y": 887.0313358306885,
+    "z": "33eaf422.44290c",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "1e03ba47.0fb3f6",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2527.031482696533,
+    "y": 1042.0313262939453,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "a525e63a.cc2b38"
+      ]
+    ]
+  },
+  {
+    "id": "84a7b7df.1615b8",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2007.0311584472656,
+    "y": 605.0313091278076,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "c8ac708.b0a709",
+        "b9ac21ad.456c9"
+      ]
+    ]
+  },
+  {
+    "id": "8e2c0789.42db78",
+    "type": "block",
+    "name": "block atmoic",
+    "xml": "<block atomic=\"true\">\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2014.0312194824219,
+    "y": 680.0311765670776,
+    "z": "33eaf422.44290c",
+    "wires": [
+      [
+        "5a69b1be.1055d",
+        "e66f705e.b1887"
+      ]
+    ]
+  }
+]
index 4f6b2fd..bd49cd7 100644 (file)
@@ -1,20 +1,20 @@
 [
   {
-    "id": "d55e5da1.6e0d9",
+    "id": "42b2c3b5.1de40c",
     "type": "dgstart",
     "name": "DGSTART",
     "outputs": 1,
-    "x": 120.00390625,
-    "y": 81.00390625,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 164,
+    "y": 153.7469038963318,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "30ea7403.a4dabc"
+        "26ae5f8e.852bd"
       ]
     ]
   },
   {
-    "id": "30ea7403.a4dabc",
+    "id": "26ae5f8e.852bd",
     "type": "service-logic",
     "name": "GENERIC-RESOURCE-API ${project.version}",
     "module": "GENERIC-RESOURCE-API",
     "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": 249.2896270751953,
-    "y": 176.24197959899902,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 293.2857208251953,
+    "y": 248.9849772453308,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "8e089853.9ab118"
+        "9c9331e1.ef348"
       ]
     ]
   },
   {
-    "id": "8e089853.9ab118",
+    "id": "9c9331e1.ef348",
     "type": "method",
     "name": "method validate-connection-attachment-input",
     "xml": "<method rpc='validate-connection-attachment-input' mode='sync'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 245.92059326171875,
-    "y": 272.25693464279175,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 289.91668701171875,
+    "y": 344.99993228912354,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "592d05ce.3188dc"
+        "e30434d.72586c8"
       ]
     ]
   },
   {
-    "id": "592d05ce.3188dc",
+    "id": "e30434d.72586c8",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 252.92064666748047,
-    "y": 390.25694274902344,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 637.9167785644531,
+    "y": 344,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "53e1d116.7a486",
-        "e5f15950.d2b488",
-        "f3bdd2ba.fa4b4",
-        "19ed1ade.774285"
+        "a24e3968.f0f898",
+        "213180a5.dcdf2",
+        "6da46309.e8b25c",
+        "97be0dfc.a49b"
       ]
     ]
   },
   {
-    "id": "53e1d116.7a486",
+    "id": "a24e3968.f0f898",
     "type": "switchNode",
     "name": "switch  svc-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 680.9205856323242,
-    "y": 138.25693607330322,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1011.9167556762695,
+    "y": 93.99999618530273,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "e201ddb1.b905"
+        "1a960cf7.459883"
       ]
     ]
   },
   {
-    "id": "e201ddb1.b905",
+    "id": "1a960cf7.459883",
     "type": "outcome",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 890.6349487304688,
-    "y": 137.25694751739502,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1221.631118774414,
+    "y": 93.00000762939453,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "2d1ab943.03f3d6"
+        "87e1fc25.19dd7"
       ]
     ]
   },
   {
-    "id": "2d1ab943.03f3d6",
+    "id": "87e1fc25.19dd7",
     "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=\"sdnc-request-header.svc-request-id is a required input\" />\n",
     "comments": "",
-    "x": 1065.0634994506836,
-    "y": 136.2569398880005,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1396.059669494629,
+    "y": 92,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "e5f15950.d2b488",
+    "id": "213180a5.dcdf2",
     "type": "switchNode",
     "name": "switch svc-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 464.92047119140625,
-    "y": 389.2569742202759,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 816.9165649414062,
+    "y": 625.9999570846558,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "4fc16b2d.fa1904",
-        "2374157d.59a87a",
-        "1cb25e54.ccc152",
-        "8cd348c0.4aba88",
-        "7e69dc53.dacb04"
+        "2a3d4b0.69b81b6",
+        "38a5e948.46f696",
+        "249ed1d3.9ca2fe",
+        "7a022b30.b2a354",
+        "675a28ba.66ea98"
       ]
     ]
   },
   {
-    "id": "4fc16b2d.fa1904",
+    "id": "2a3d4b0.69b81b6",
     "type": "outcome",
     "name": "create",
     "xml": "<outcome value='create'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 646.4206275939941,
-    "y": 300.25702476501465,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1054.416690826416,
+    "y": 374.99999380111694,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "62f2f74b.222b28"
+        "eb01319b.f11ab"
       ]
     ]
   },
   {
-    "id": "2374157d.59a87a",
+    "id": "38a5e948.46f696",
     "type": "outcome",
     "name": "delete",
     "xml": "<outcome value='delete'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 651.4328269958496,
-    "y": 582.1471920013428,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1059.428897857666,
+    "y": 923.890193939209,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "bf7c4189.d4114"
+        "ae84fe26.14305"
       ]
     ]
   },
   {
-    "id": "1cb25e54.ccc152",
+    "id": "249ed1d3.9ca2fe",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 648.1945915222168,
-    "y": 654.5756464004517,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1056.1906623840332,
+    "y": 996.3186483383179,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "14bee845.382418"
+        "a59dcb2c.5f74a8"
       ]
     ]
   },
   {
-    "id": "14bee845.382418",
+    "id": "a59dcb2c.5f74a8",
     "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=\"`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
     "comments": "",
-    "x": 831.7661247253418,
-    "y": 655.1947870254517,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1239.7621955871582,
+    "y": 996.9377889633179,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "bf7c4189.d4114",
+    "id": "ae84fe26.14305",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 833.5756530761719,
-    "y": 582.813642501831,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1241.5717239379883,
+    "y": 924.5566444396973,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "93839262.d70fa"
+        "c8402cf9.c3498"
       ]
     ]
   },
   {
-    "id": "11d0fd2e.8d1473",
+    "id": "e9d0bfa.0872f4",
     "type": "other",
     "name": "DeleteSOTNAttachmentInstance",
     "xml": "<outcome value='DeleteSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1298.2901344299316,
-    "y": 551.8136596679688,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1706.286205291748,
+    "y": 893.556661605835,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "bede7ad6.c52858"
+        "c007bb78.bad198"
       ]
     ]
   },
   {
-    "id": "25e7d254.79a53e",
+    "id": "a0c47385.decaa",
     "type": "other",
     "name": "Other",
     "xml": "<outcome value='Other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1220.2902450561523,
-    "y": 601.8138084411621,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1629.2864608764648,
+    "y": 974.5568246841431,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "58f1ca81.4b3774"
+        "e6af92d5.15652"
       ]
     ]
   },
   {
-    "id": "58f1ca81.4b3774",
+    "id": "e6af92d5.15652",
     "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=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete\" />\n",
     "comments": "",
-    "x": 1407.2902450561523,
-    "y": 602.8138084411621,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1816.2864608764648,
+    "y": 975.5568246841431,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "bede7ad6.c52858",
+    "id": "c007bb78.bad198",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1561.2900390625,
-    "y": 440.8136692047119,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2097.2862243652344,
+    "y": 716.5566501617432,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "9003dc0.c133528",
-        "eba16a4b.e63458"
+        "52c40ba.0b16af4",
+        "eaa23038.207b"
       ]
     ]
   },
   {
-    "id": "9003dc0.c133528",
+    "id": "52c40ba.0b16af4",
     "type": "switchNode",
     "name": "switch allotted-resource-id",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1784.2896137237549,
-    "y": 439.8135929107666,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2320.2857990264893,
+    "y": 715.5565738677979,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "ce15a307.ea6db"
+        "5a95e1d3.c70c9"
       ]
     ]
   },
   {
-    "id": "ce15a307.ea6db",
+    "id": "5a95e1d3.c70c9",
     "type": "outcome",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 1964.2896766662598,
-    "y": 438.81360816955566,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2500.285861968994,
+    "y": 714.5565891265869,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "d45df1e5.8c102"
+        "21b4438a.8ae7ac"
       ]
     ]
   },
   {
-    "id": "d45df1e5.8c102",
+    "id": "21b4438a.8ae7ac",
     "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=\"network-request-input.network-input-parameters.name is a required input\" />\n",
     "comments": "",
-    "x": 1996.7183303833008,
-    "y": 494.81362438201904,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2532.714515686035,
+    "y": 770.5566053390503,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "eba16a4b.e63458",
+    "id": "eaa23038.207b",
     "type": "execute",
     "name": "execute requiredParameter",
     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id\" value=\"$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id\"/>\n\n",
     "comments": "",
     "outputs": 1,
-    "x": 1788.004093170166,
-    "y": 401.9564437866211,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2324.0002784729004,
+    "y": 677.6994247436523,
+    "z": "d21b8423.410b48",
     "wires": [
       []
     ]
   },
   {
-    "id": "f3bdd2ba.fa4b4",
+    "id": "6da46309.e8b25c",
     "type": "switchNode",
     "name": "switch service-instance-id",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.service-information.service-instance-id`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 704.0039215087891,
-    "y": 180.96665382385254,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1035.0000915527344,
+    "y": 136.70971393585205,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "840d370d.dae7a8"
+        "9eae7e15.c32b3"
       ]
     ]
   },
   {
-    "id": "840d370d.dae7a8",
+    "id": "9eae7e15.c32b3",
     "type": "other",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 920.4325103759766,
-    "y": 181.96665382385254,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1251.4286804199219,
+    "y": 137.70971393585205,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "78d3f021.91704"
+        "1cff38a0.3251b7"
       ]
     ]
   },
   {
-    "id": "78d3f021.91704",
+    "id": "1cff38a0.3251b7",
     "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=\"service-information.service-instance-id is a required input\" />\n",
     "comments": "",
-    "x": 1078.8610382080078,
-    "y": 180.96665382385254,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1409.8572082519531,
+    "y": 136.70971393585205,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "62f2f74b.222b28",
+    "id": "eb01319b.f11ab",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 811.2262687683105,
-    "y": 297.966703414917,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1219.2223320007324,
+    "y": 372.7096724510193,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "b9263adf.a79a98"
+        "2a814298.4379ee"
       ]
     ]
   },
   {
-    "id": "b9263adf.a79a98",
+    "id": "2a814298.4379ee",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1001.4617919921875,
-    "y": 299.4719018936157,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1409.4578552246094,
+    "y": 374.214870929718,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "daaeed0a.68f55",
-        "32fc1c5a.a1c7a4"
+        "9a24d7c1.7f41b8",
+        "31edce78.f55fe2",
+        "76132be7.8874c4"
       ]
     ]
   },
   {
-    "id": "daaeed0a.68f55",
+    "id": "9a24d7c1.7f41b8",
     "type": "outcome",
     "name": "CreateSOTNAttachmentInstance",
     "xml": "<outcome value='CreateSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1282.7950744628906,
-    "y": 278.47163105010986,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1690.7911376953125,
+    "y": 353.21460008621216,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "1d50a6f4.652229"
+        "ddc52a14.b68028"
       ]
     ]
   },
   {
-    "id": "32fc1c5a.a1c7a4",
+    "id": "31edce78.f55fe2",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1201.7950973510742,
-    "y": 326.1383662223816,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1609.7912330627441,
+    "y": 442.88133573532104,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "ab38e26c.3455"
+        "a1422df.b222fd"
       ]
     ]
   },
   {
-    "id": "ab38e26c.3455",
+    "id": "a1422df.b222fd",
     "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=\"sdnc-request-header.request-action is invalid\" />\n",
     "comments": "",
-    "x": 1400.3509330749512,
-    "y": 325.58302307128906,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1808.347068786621,
+    "y": 442.3259925842285,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "1d50a6f4.652229",
+    "id": "ddc52a14.b68028",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1514.6704368591309,
-    "y": 280.85553073883057,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1922.6665000915527,
+    "y": 355.59849977493286,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "15baa2b8.a5423d"
+        "4d02f123.5c1cd"
       ]
     ]
   },
   {
-    "id": "15baa2b8.a5423d",
+    "id": "4d02f123.5c1cd",
     "type": "for",
     "name": "for loop i - Sotn input param",
     "xml": "<for index=\"i\" start=\"0\" end=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`\">\n",
     "comments": "",
     "outputs": 1,
-    "x": 1720.3014526367188,
-    "y": 276.15617847442627,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2145.297737121582,
+    "y": 259.89916610717773,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "1411c83d.30f948"
+        "3c0f8442.38d8dc"
       ]
     ]
   },
   {
-    "id": "1411c83d.30f948",
+    "id": "3c0f8442.38d8dc",
     "type": "block",
     "name": "block",
     "xml": "<block>\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 1882.384853363037,
-    "y": 233.90312957763672,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2336.3809661865234,
+    "y": 258.6460943222046,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "8cd60ce0.f328b",
-        "7c6899b1.f878f8",
-        "a0ef1495.11fa68"
+        "d39cca26.839578",
+        "16b1f4f7.435bcb",
+        "1d34c439.601edc"
       ]
     ]
   },
   {
-    "id": "8cd60ce0.f328b",
+    "id": "d39cca26.839578",
     "type": "set",
     "name": "clear tmp-data",
     "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",
     "comments": "",
-    "x": 2041.3849601745605,
-    "y": 188.14123916625977,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2495.381072998047,
+    "y": 212.88420391082764,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "7c6899b1.f878f8",
+    "id": "16b1f4f7.435bcb",
     "type": "set",
     "name": "set tmp-data",
     "xml": "<set>\n<parameter name='tmp.name' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`\"/>\n",
     "comments": "",
-    "x": 2039.3848342895508,
-    "y": 220.14124202728271,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2493.380947113037,
+    "y": 244.8842067718506,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "a0ef1495.11fa68",
+    "id": "1d34c439.601edc",
     "type": "switchNode",
     "name": "switch name",
     "xml": "<switch test=\"`$tmp.name`\">\n",
     "comments": "",
     "outputs": 1,
-    "x": 2036.3849563598633,
-    "y": 260.1412477493286,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2490.3810691833496,
+    "y": 284.8842124938965,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "58732708.c19e68",
-        "2b1a4a1c.736d86",
-        "ac680bd3.a5c298",
-        "38c84211.606bbe",
-        "668e89b6.3edf98",
-        "eee3ac82.081b3",
-        "232cba3c.20f5a6",
-        "553b7c39.9758e4"
+        "a88c8435.38b638",
+        "3bbf5338.a951ec",
+        "1635afc2.b6de7",
+        "cff6db4f.b87538",
+        "9335d38b.7ca52",
+        "f2781f65.360cc",
+        "6bb67fb6.e8d0c",
+        "497eac21.19f344"
       ]
     ]
   },
   {
-    "id": "58732708.c19e68",
+    "id": "a88c8435.38b638",
     "type": "outcome",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 2243.449363708496,
-    "y": 397.96692180633545,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2697.4454765319824,
+    "y": 422.7098865509033,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "9929f9d1.8bdb78"
+        "f001e245.7813a"
       ]
     ]
   },
   {
-    "id": "9929f9d1.8bdb78",
+    "id": "f001e245.7813a",
     "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=\"`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",
     "comments": "",
-    "x": 2395.4495735168457,
-    "y": 392.9669542312622,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2849.445686340332,
+    "y": 417.7099189758301,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "93839262.d70fa",
+    "id": "c8402cf9.c3498",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1031.6709442138672,
-    "y": 584.966794013977,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1439.6670150756836,
+    "y": 926.7097959518433,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "11d0fd2e.8d1473",
-        "25e7d254.79a53e"
+        "e9d0bfa.0872f4",
+        "a0c47385.decaa",
+        "9e1c0985.ac54a8"
       ]
     ]
   },
   {
-    "id": "2b1a4a1c.736d86",
+    "id": "3bbf5338.a951ec",
     "type": "other",
     "name": "sotnVpnName",
     "xml": "<outcome value='sotnVpnName'>",
     "comments": "",
     "outputs": 1,
-    "x": 2263.44863986969,
-    "y": 142.1666374206543,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2717.4447526931763,
+    "y": 166.90960216522217,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "938831fe.ccb6b",
+    "id": "524ca1b7.a929c",
     "type": "switchNode",
     "name": "switch value",
     "xml": "<switch test=\"`$tmp.value`\">\n",
     "comments": "",
     "outputs": 1,
-    "x": 2526.3655128479004,
-    "y": 257.18157863616943,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2980.3616256713867,
+    "y": 281.9245433807373,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "bbabb9a8.e7fa88"
+        "76a5bf3b.12c31"
       ]
     ]
   },
   {
-    "id": "bbabb9a8.e7fa88",
+    "id": "76a5bf3b.12c31",
     "type": "outcome",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 2664.3654823303223,
-    "y": 252.18159866333008,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 3118.3615951538086,
+    "y": 276.92456340789795,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "7d365ba9.43c364"
+        "6d73498b.516f18"
       ]
     ]
   },
   {
-    "id": "7d365ba9.43c364",
+    "id": "6d73498b.516f18",
     "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=\"`'$tmp.name +' is a required input'`\" />\n",
     "comments": "",
-    "x": 2786.7941932678223,
-    "y": 289.1815767288208,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 3240.7903060913086,
+    "y": 313.9245414733887,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "ac680bd3.a5c298",
+    "id": "1635afc2.b6de7",
     "type": "other",
     "name": "clientSignal",
     "xml": "<outcome value='clientSignal'>",
     "comments": "",
     "outputs": 1,
-    "x": 2256.4488105773926,
-    "y": 179.16665935516357,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2710.444923400879,
+    "y": 203.90962409973145,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "38c84211.606bbe",
+    "id": "cff6db4f.b87538",
     "type": "other",
     "name": "access-provider-id",
     "xml": "<outcome value='access-provider-id'>",
     "comments": "",
     "outputs": 1,
-    "x": 2276.3377571105957,
-    "y": 215.16660690307617,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2730.333869934082,
+    "y": 239.90957164764404,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "668e89b6.3edf98",
+    "id": "9335d38b.7ca52",
     "type": "other",
     "name": "access-client-id",
     "xml": "<outcome value='access-client-id'>",
     "comments": "",
     "outputs": 1,
-    "x": 2265.337661743164,
-    "y": 254.16663455963135,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2719.3337745666504,
+    "y": 278.9095993041992,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "eee3ac82.081b3",
+    "id": "f2781f65.360cc",
     "type": "other",
     "name": "access-topology-id",
     "xml": "<outcome value='access-topology-id'>",
     "comments": "",
     "outputs": 1,
-    "x": 2274.3377532958984,
-    "y": 289.16660594940186,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2728.3338661193848,
+    "y": 313.9095706939697,
+    "z": "d21b8423.410b48",
     "wires": [
       []
     ]
   },
   {
-    "id": "232cba3c.20f5a6",
+    "id": "6bb67fb6.e8d0c",
     "type": "other",
     "name": "access-node-id",
     "xml": "<outcome value='access-node-id'>",
     "comments": "",
     "outputs": 1,
-    "x": 2265.3377571105957,
-    "y": 325.1666440963745,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2719.333869934082,
+    "y": 349.9096088409424,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "553b7c39.9758e4",
+    "id": "497eac21.19f344",
     "type": "other",
     "name": "cVLAN",
     "xml": "<outcome value='cVLAN'>",
     "comments": "",
     "outputs": 1,
-    "x": 2240.338275909424,
-    "y": 360.72238540649414,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 2694.33438873291,
+    "y": 385.465350151062,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "938831fe.ccb6b"
+        "524ca1b7.a929c"
       ]
     ]
   },
   {
-    "id": "8cd348c0.4aba88",
+    "id": "7a022b30.b2a354",
     "type": "outcome",
     "name": "activate",
     "xml": "<outcome value='activate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 646.5038909912109,
-    "y": 387.5039529800415,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1058.4999771118164,
+    "y": 563.2469110488892,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "55079242.de61dc"
+        "69f0bb77.157344"
       ]
     ]
   },
   {
-    "id": "55079242.de61dc",
+    "id": "69f0bb77.157344",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 827.3095626831055,
-    "y": 388.2136697769165,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1239.305648803711,
+    "y": 563.9566278457642,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "4e961c0d.873094"
+        "18ee795e.66d7e7"
       ]
     ]
   },
   {
-    "id": "4e961c0d.873094",
+    "id": "18ee795e.66d7e7",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1015.5450439453125,
-    "y": 389.7188367843628,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1427.541130065918,
+    "y": 565.4617948532104,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "5f2b72b3.993c4c",
-        "80608f20.06ea9"
+        "e08a9821.e97b18",
+        "ee585f2d.5f4db",
+        "e7496e1a.f100e"
       ]
     ]
   },
   {
-    "id": "5f2b72b3.993c4c",
+    "id": "e08a9821.e97b18",
     "type": "outcome",
     "name": "ActivateSOTNAttachmentInstance",
     "xml": "<outcome value='ActivateSOTNAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1284.8783226013184,
-    "y": 363.71854877471924,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1696.8744087219238,
+    "y": 539.4615068435669,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "bede7ad6.c52858"
+        "c007bb78.bad198"
       ]
     ]
   },
   {
-    "id": "80608f20.06ea9",
+    "id": "ee585f2d.5f4db",
     "type": "outcome",
     "name": "other",
     "xml": "<outcome value='other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1200.8781394958496,
-    "y": 413.3853511810303,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1612.874210357666,
+    "y": 620.1283292770386,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "cc018098.4c869"
+        "f1ebc9ca.bda2a8"
       ]
     ]
   },
   {
-    "id": "cc018098.4c869",
+    "id": "f1ebc9ca.bda2a8",
     "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=\"sdnc-request-header.request-action is invalid\" />\n",
     "comments": "",
-    "x": 1340.434097290039,
-    "y": 416.8300075531006,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1752.4301681518555,
+    "y": 623.5729856491089,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "7e69dc53.dacb04",
+    "id": "675a28ba.66ea98",
     "type": "outcome",
     "name": "deactivate",
     "xml": "<outcome value='deactivate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 659.5039253234863,
-    "y": 487.5039005279541,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1074.5,
+    "y": 734.2469053268433,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "5e98d5e.da18e2c"
+        "fd017ad9.8950a8"
       ]
     ]
   },
   {
-    "id": "5e98d5e.da18e2c",
+    "id": "fd017ad9.8950a8",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 841.6467514038086,
-    "y": 488.1703510284424,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1256.6428260803223,
+    "y": 734.9133558273315,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "e876eace.fbc408"
+        "6e494400.e2627c"
       ]
     ]
   },
   {
-    "id": "674c6e42.5758f",
+    "id": "4445cab3.35a8c4",
     "type": "other",
-    "name": "DeactivateSOTNAttachmentInstance",
-    "xml": "<outcome value='DeactivateSOTNAttachmentInstance'>",
+    "name": "DeactivateSDWANAttachmentInstance",
+    "xml": "<outcome value='DeactivateSDWANAttachmentInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1303.3611869812012,
-    "y": 459.1703567504883,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1718.3572616577148,
+    "y": 705.9133615493774,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "bede7ad6.c52858"
+        "c007bb78.bad198"
       ]
     ]
   },
   {
-    "id": "3d6789d5.968686",
+    "id": "6c144aae.b65964",
     "type": "other",
     "name": "Other",
     "xml": "<outcome value='Other'>",
     "comments": "",
     "outputs": 1,
-    "x": 1207.3614921569824,
-    "y": 508.17051124572754,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1621.357566833496,
+    "y": 781.9135341644287,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "7dd7d50b.2e0d4c"
+        "d4bf5522.da0cd8"
       ]
     ]
   },
   {
-    "id": "7dd7d50b.2e0d4c",
+    "id": "d4bf5522.da0cd8",
     "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=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete\" />\n",
     "comments": "",
-    "x": 1394.3614921569824,
-    "y": 509.17051124572754,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1779.3575057983398,
+    "y": 784.9135570526123,
+    "z": "d21b8423.410b48",
     "wires": []
   },
   {
-    "id": "e876eace.fbc408",
+    "id": "6e494400.e2627c",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1028.7420654296875,
-    "y": 487.3234739303589,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1443.7381401062012,
+    "y": 734.066478729248,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "674c6e42.5758f",
-        "3d6789d5.968686"
+        "4445cab3.35a8c4",
+        "6c144aae.b65964",
+        "adb5b0a4.b36d9"
       ]
     ]
   },
   {
-    "id": "19ed1ade.774285",
+    "id": "97be0dfc.a49b",
     "type": "switchNode",
     "name": "switch parent-service-instance-id",
     "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 719.9830474853516,
-    "y": 226.9830780029297,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1050.9792175292969,
+    "y": 182.7261381149292,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "6bc4dd76.e36a44"
+        "97c55ba1.1ffe98"
       ]
     ]
   },
   {
-    "id": "6bc4dd76.e36a44",
+    "id": "97c55ba1.1ffe98",
     "type": "other",
     "name": "NULL",
     "xml": "<outcome value=''>",
     "comments": "",
     "outputs": 1,
-    "x": 926.4116134643555,
-    "y": 230.98307037353516,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1257.4077835083008,
+    "y": 186.72613048553467,
+    "z": "d21b8423.410b48",
     "wires": [
       [
-        "a93ef8b3.222ac8"
+        "18a36e30.d0c222"
       ]
     ]
   },
   {
-    "id": "a93ef8b3.222ac8",
+    "id": "18a36e30.d0c222",
     "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=\"service-information.parent-service-instance-id is a required input\" />\n",
     "comments": "",
-    "x": 1084.8401412963867,
-    "y": 229.98307037353516,
-    "z": "2bd9a7ae.9f12a8",
+    "x": 1415.836311340332,
+    "y": 185.72613048553467,
+    "z": "d21b8423.410b48",
+    "wires": []
+  },
+  {
+    "id": "76132be7.8874c4",
+    "type": "outcome",
+    "name": "CreateSDWANAttachmentInstance",
+    "xml": "<outcome value='CreateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1700.4999694824219,
+    "y": 400.75078296661377,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "9256a59d.20fae8"
+      ]
+    ]
+  },
+  {
+    "id": "9256a59d.20fae8",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 1932.375331878662,
+    "y": 403.1346826553345,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "6c1d4efc.ef28b"
+      ]
+    ]
+  },
+  {
+    "id": "e7496e1a.f100e",
+    "type": "outcome",
+    "name": "ActivateSDWANAttachmentInstance",
+    "xml": "<outcome value='ActivateSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1696.4999694824219,
+    "y": 579.7507829666138,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "c007bb78.bad198"
+      ]
+    ]
+  },
+  {
+    "id": "adb5b0a4.b36d9",
+    "type": "other",
+    "name": "DeactivateSOTNAttachmentInstance",
+    "xml": "<outcome value='DeactivateSOTNAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1719.4999694824219,
+    "y": 743.7507829666138,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "c007bb78.bad198"
+      ]
+    ]
+  },
+  {
+    "id": "9e1c0985.ac54a8",
+    "type": "other",
+    "name": "DeleteSDWANAttachmentInstance",
+    "xml": "<outcome value='DeleteSDWANAttachmentInstance'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 1714.4999694824219,
+    "y": 937.7507829666138,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "c007bb78.bad198"
+      ]
+    ]
+  },
+  {
+    "id": "6c1d4efc.ef28b",
+    "type": "for",
+    "name": "for loop i - sdwan input param",
+    "xml": "<for index=\"i\" start=\"0\" end=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2126.250068664551,
+    "y": 496.75078296661377,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "71678c48.443894"
+      ]
+    ]
+  },
+  {
+    "id": "71678c48.443894",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 2324.333263397217,
+    "y": 496.497745513916,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "e79077b3.099788",
+        "a4baf31b.1b5de",
+        "210d76b8.7beafa"
+      ]
+    ]
+  },
+  {
+    "id": "e79077b3.099788",
+    "type": "set",
+    "name": "clear tmp-data",
+    "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",
+    "comments": "",
+    "x": 2493.333393096924,
+    "y": 473.7358207702637,
+    "z": "d21b8423.410b48",
     "wires": []
+  },
+  {
+    "id": "a4baf31b.1b5de",
+    "type": "set",
+    "name": "set tmp-data",
+    "xml": "<set>\n<parameter name='tmp.name' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`\"/>\n",
+    "comments": "",
+    "x": 2491.333267211914,
+    "y": 505.7358236312866,
+    "z": "d21b8423.410b48",
+    "wires": []
+  },
+  {
+    "id": "210d76b8.7beafa",
+    "type": "switchNode",
+    "name": "switch name",
+    "xml": "<switch test=\"`$tmp.name`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2488.3333892822266,
+    "y": 545.7358293533325,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "abd03293.cd18",
+        "7be5406a.1ccb4",
+        "47286f93.87dbf"
+      ]
+    ]
+  },
+  {
+    "id": "abd03293.cd18",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2722.3977546691895,
+    "y": 559.5615439414978,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "968ac01f.99f6c"
+      ]
+    ]
+  },
+  {
+    "id": "968ac01f.99f6c",
+    "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=\"`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",
+    "comments": "",
+    "x": 2887.3979988098145,
+    "y": 722.5615291595459,
+    "z": "d21b8423.410b48",
+    "wires": []
+  },
+  {
+    "id": "7be5406a.1ccb4",
+    "type": "other",
+    "name": "sdwanVpnName",
+    "xml": "<outcome value='sdwanVpnName'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2755.3970651626587,
+    "y": 471.761212348938,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "a3e64284.5a573"
+      ]
+    ]
+  },
+  {
+    "id": "a3e64284.5a573",
+    "type": "switchNode",
+    "name": "switch value",
+    "xml": "<switch test=\"`$tmp.value`\">\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2933.3140869140625,
+    "y": 502.77617168426514,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "fe0135a8.011198"
+      ]
+    ]
+  },
+  {
+    "id": "fe0135a8.011198",
+    "type": "outcome",
+    "name": "NULL",
+    "xml": "<outcome value=''>",
+    "comments": "",
+    "outputs": 1,
+    "x": 3085.3139991760254,
+    "y": 502.77619457244873,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "f390d6c6.2ff848"
+      ]
+    ]
+  },
+  {
+    "id": "f390d6c6.2ff848",
+    "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=\"`'$tmp.name +' is a required input'`\" />\n",
+    "comments": "",
+    "x": 3229.7427139282227,
+    "y": 501.7762041091919,
+    "z": "d21b8423.410b48",
+    "wires": []
+  },
+  {
+    "id": "47286f93.87dbf",
+    "type": "other",
+    "name": "role",
+    "xml": "<outcome value='role'>",
+    "comments": "",
+    "outputs": 1,
+    "x": 2725.397331237793,
+    "y": 511.7612247467041,
+    "z": "d21b8423.410b48",
+    "wires": [
+      [
+        "a3e64284.5a573"
+      ]
+    ]
   }
-]
\ No newline at end of file
+]
index d0ccec9..1502a4d 100644 (file)
@@ -1,20 +1,20 @@
 [
   {
-    "id": "41d1eb7e.d42df4",
+    "id": "7bde6af5.3548a4",
     "type": "dgstart",
     "name": "DGSTART",
     "outputs": 1,
-    "x": 132,
-    "y": 174.4136562347412,
-    "z": "4375a986.58da58",
+    "x": 101.71429443359375,
+    "y": 102.41365432739258,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "b80f4569.cfd668"
+        "e157b5ae.b89b18"
       ]
     ]
   },
   {
-    "id": "b80f4569.cfd668",
+    "id": "e157b5ae.b89b18",
     "type": "service-logic",
     "name": "GENERIC-RESOURCE-API ${project.version}",
     "module": "GENERIC-RESOURCE-API",
     "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": 207.28570556640625,
-    "y": 214.6517677307129,
-    "z": "4375a986.58da58",
+    "x": 177,
+    "y": 142.65176582336426,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "ce452a31.2d7d48"
+        "48440c73.4b21e4"
       ]
     ]
   },
   {
-    "id": "ce452a31.2d7d48",
+    "id": "48440c73.4b21e4",
     "type": "method",
     "name": "method vnf-topology-operation",
     "xml": "<method rpc='vnf-topology-operation' mode='sync'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 200.42862701416016,
-    "y": 254.4136505126953,
-    "z": "4375a986.58da58",
+    "x": 170.1429214477539,
+    "y": 182.41364860534668,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "fddedb90.e69728"
+        "22b966ec.08b71a"
       ]
     ]
   },
   {
-    "id": "8ff57105.db631",
+    "id": "ddc89afc.a79548",
     "type": "comment",
     "name": "vnf-topology-operation",
     "info": "",
     "comments": "",
-    "x": 526.344856262207,
-    "y": 122,
-    "z": "4375a986.58da58",
+    "x": 496.0591506958008,
+    "y": 49.99999809265137,
+    "z": "d01dd033.8ac4a",
     "wires": []
   },
   {
-    "id": "fddedb90.e69728",
+    "id": "22b966ec.08b71a",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 216.16676330566406,
-    "y": 441.10718727111816,
-    "z": "4375a986.58da58",
+    "x": 185.8810577392578,
+    "y": 369.10718536376953,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "ac9bf788.c56fa8",
-        "88cf203d.250b4",
-        "2346097e.a3b566"
+        "c63a8d0b.7cd2d",
+        "9a9f4c36.42c6e",
+        "63014890.7d3f18"
       ]
     ]
   },
   {
-    "id": "ac9bf788.c56fa8",
+    "id": "c63a8d0b.7cd2d",
     "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": 508.6667175292969,
-    "y": 591.2712202072144,
-    "z": "4375a986.58da58",
+    "x": 478.3810119628906,
+    "y": 519.2712182998657,
+    "z": "d01dd033.8ac4a",
     "wires": []
   },
   {
-    "id": "88cf203d.250b4",
+    "id": "9a9f4c36.42c6e",
     "type": "switchNode",
     "name": "switch svc-action",
     "xml": "<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 511.5714340209961,
-    "y": 439.31843090057373,
-    "z": "4375a986.58da58",
+    "x": 481.28572845458984,
+    "y": 367.3184289932251,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "b29425ac.0e6b88",
-        "efa0b97f.2c8418",
-        "a699d525.8a5fb8",
-        "4c0d9e23.ae0fa",
-        "7e03d2fb.a3855c",
-        "c854e634.dbefd8",
-        "97cbf81.e321b08"
+        "7166573d.f3e208",
+        "91d66056.0ca95",
+        "37b3898c.305b16",
+        "e44be482.faad98",
+        "746a31a7.54817",
+        "43b3d6b0.c09de8",
+        "7acd2ca5.9b68c4"
       ]
     ]
   },
   {
-    "id": "b29425ac.0e6b88",
+    "id": "7166573d.f3e208",
     "type": "outcome",
     "name": "assign",
     "xml": "<outcome value='assign'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 923.3809661865234,
-    "y": 149.93756771087646,
-    "z": "4375a986.58da58",
+    "x": 893.0952606201172,
+    "y": 77.93756580352783,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "ecd39eee.bd2f6"
+        "16b2d01e.2203e"
       ]
     ]
   },
   {
-    "id": "efa0b97f.2c8418",
+    "id": "91d66056.0ca95",
     "type": "outcome",
     "name": "unassign",
     "xml": "<outcome value='unassign'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 940.4287643432617,
-    "y": 711.1283483505249,
-    "z": "4375a986.58da58",
+    "x": 910.1430587768555,
+    "y": 639.1283464431763,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "91a6f5ca.5e21e8"
+        "18d76be8.6f0684"
       ]
     ]
   },
   {
-    "id": "4c0d9e23.ae0fa",
+    "id": "e44be482.faad98",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 929.1430358886719,
-    "y": 1303.3186073303223,
-    "z": "4375a986.58da58",
+    "x": 898.8573303222656,
+    "y": 1231.3186054229736,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "b067ec27.e84b4"
+        "7c46c4a8.c5114c"
       ]
     ]
   },
   {
-    "id": "b067ec27.e84b4",
+    "id": "7c46c4a8.c5114c",
     "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=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
     "comments": "",
-    "x": 1162.3334655761719,
-    "y": 1303.3186683654785,
-    "z": "4375a986.58da58",
+    "x": 1132.0477600097656,
+    "y": 1231.3186664581299,
+    "z": "d01dd033.8ac4a",
     "wires": []
   },
   {
-    "id": "2346097e.a3b566",
+    "id": "63014890.7d3f18",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:validate-vnf-input",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 617.4166870117188,
-    "y": 330.79471588134766,
-    "z": "4375a986.58da58",
+    "x": 587.1309814453125,
+    "y": 258.794713973999,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "ecd39eee.bd2f6",
+    "id": "16b2d01e.2203e",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-assign",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1265.5238189697266,
-    "y": 149.50902843475342,
-    "z": "4375a986.58da58",
+    "x": 1235.2381134033203,
+    "y": 77.50902652740479,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "960e9019.0d07b",
+    "id": "20a6f0ca.ebd98",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-deactivate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1740.8572721481323,
-    "y": 655.8424282073975,
-    "z": "4375a986.58da58",
+    "x": 1710.571566581726,
+    "y": 583.8424263000488,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "91a6f5ca.5e21e8",
+    "id": "18d76be8.6f0684",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-unassign",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1304.5238952636719,
-    "y": 715.8424291610718,
-    "z": "4375a986.58da58",
+    "x": 1274.2381896972656,
+    "y": 643.8424272537231,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "a699d525.8a5fb8",
+    "id": "37b3898c.305b16",
     "type": "outcome",
     "name": "deactivate",
     "xml": "<outcome value='deactivate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 930.5238723754883,
-    "y": 519.5090370178223,
-    "z": "4375a986.58da58",
+    "x": 900.238166809082,
+    "y": 447.50903511047363,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "65d7cc2b.f72464"
+        "3399642f.f8978c"
       ]
     ]
   },
   {
-    "id": "a260cf56.f0217",
+    "id": "7bd14237.45986c",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-activate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1754.666904449463,
-    "y": 375.41370582580566,
-    "z": "4375a986.58da58",
+    "x": 1724.3811988830566,
+    "y": 303.41370391845703,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "7e03d2fb.a3855c",
+    "id": "746a31a7.54817",
     "type": "outcome",
     "name": "activate",
     "xml": "<outcome value='activate'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 926.3333053588867,
-    "y": 241.08033561706543,
-    "z": "4375a986.58da58",
+    "x": 896.0475997924805,
+    "y": 169.0803337097168,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "cb9db39e.3efd"
+        "82bdf0ff.efdf4"
       ]
     ]
   },
   {
-    "id": "c854e634.dbefd8",
+    "id": "43b3d6b0.c09de8",
     "type": "outcome",
     "name": "create",
     "xml": "<outcome value='create'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 942.0001945495605,
-    "y": 843.5000152587891,
-    "z": "4375a986.58da58",
+    "x": 911.7144889831543,
+    "y": 771.5000133514404,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "32894e90.6b0c32"
+        "45a0dc92.069df4"
       ]
     ]
   },
   {
-    "id": "97cbf81.e321b08",
+    "id": "7acd2ca5.9b68c4",
     "type": "outcome",
     "name": "delete",
     "xml": "<outcome value='delete'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 940.0002288818359,
-    "y": 1058.5000567436218,
-    "z": "4375a986.58da58",
+    "x": 909.7145233154297,
+    "y": 986.5000548362732,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "6dc15b04.91f744"
+        "15d3bdce.a379d2"
       ]
     ]
   },
   {
-    "id": "7bb307b0.304958",
+    "id": "d48650ef.7c891",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1168.0000762939453,
-    "y": 291.5000123977661,
-    "z": "4375a986.58da58",
+    "x": 1137.714370727539,
+    "y": 219.50001049041748,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "c9e81f54.ac68b",
-        "d05da9c5.f500d8",
-        "798897d0.7131b8",
-        "ca8cee25.05298"
+        "d11685a9.f62eb8",
+        "d06a8d19.4d6d1",
+        "4d5727ac.a53ee8",
+        "a770a856.f607b8"
       ]
     ]
   },
   {
-    "id": "d05da9c5.f500d8",
+    "id": "d06a8d19.4d6d1",
     "type": "outcome",
     "name": "ActivateSiteInstance",
     "xml": "<outcome value='ActivateSiteInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1417.476333618164,
-    "y": 240.97925567626953,
-    "z": "4375a986.58da58",
+    "x": 1387.1906280517578,
+    "y": 168.9792537689209,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "4a2d9e9d.93099"
+        "f4ae7362.f5fcf"
       ]
     ]
   },
   {
-    "id": "c9e81f54.ac68b",
+    "id": "d11685a9.f62eb8",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1376.381145477295,
-    "y": 376.3572578430176,
-    "z": "4375a986.58da58",
+    "x": 1346.0954399108887,
+    "y": 304.35725593566895,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "a260cf56.f0217"
+        "7bd14237.45986c"
       ]
     ]
   },
   {
-    "id": "cb9db39e.3efd",
+    "id": "82bdf0ff.efdf4",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1107.0000762939453,
-    "y": 236.5000123977661,
-    "z": "4375a986.58da58",
+    "x": 1076.714370727539,
+    "y": 164.50001049041748,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "7bb307b0.304958"
+        "d48650ef.7c891"
       ]
     ]
   },
   {
-    "id": "4a2d9e9d.93099",
+    "id": "f4ae7362.f5fcf",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:site-vnf-topology-operation-activate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-activate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1791.0001373291016,
-    "y": 239.50003814697266,
-    "z": "4375a986.58da58",
+    "x": 1760.7144317626953,
+    "y": 167.50003623962402,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "fef45f01.3fce6",
+    "id": "fd14ed12.5d0ad",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1193.0001907348633,
-    "y": 552.5000038146973,
-    "z": "4375a986.58da58",
+    "x": 1162.714485168457,
+    "y": 480.50000190734863,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "f6ce8f15.087c8",
-        "6a7a4689.125ee8",
-        "6e2dfa7d.37fff4",
-        "391009ec.e35256"
+        "58b64587.59c5ec",
+        "212999d2.74fa56",
+        "dac41099.6c197",
+        "eb0736e3.b5ac48"
       ]
     ]
   },
   {
-    "id": "6a7a4689.125ee8",
+    "id": "212999d2.74fa56",
     "type": "outcome",
     "name": "DeactivateSiteInstance",
     "xml": "<outcome value='DeactivateSiteInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1436.4763870239258,
-    "y": 503.9792523384094,
-    "z": "4375a986.58da58",
+    "x": 1406.1906814575195,
+    "y": 431.9792504310608,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "b4232a97.fef598"
+        "cbe77765.242be8"
       ]
     ]
   },
   {
-    "id": "f6ce8f15.087c8",
+    "id": "58b64587.59c5ec",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1385.3811445236206,
-    "y": 654.3572940826416,
-    "z": "4375a986.58da58",
+    "x": 1355.0954389572144,
+    "y": 582.357292175293,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "960e9019.0d07b"
+        "20a6f0ca.ebd98"
       ]
     ]
   },
   {
-    "id": "65d7cc2b.f72464",
+    "id": "3399642f.f8978c",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1132.0001907348633,
-    "y": 497.50000381469727,
-    "z": "4375a986.58da58",
+    "x": 1101.714485168457,
+    "y": 425.50000190734863,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "fef45f01.3fce6"
+        "fd14ed12.5d0ad"
       ]
     ]
   },
   {
-    "id": "b4232a97.fef598",
+    "id": "cbe77765.242be8",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:site-vnf-topology-operation-deactivate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-deactivate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1806.0001907348633,
-    "y": 501.50003480911255,
-    "z": "4375a986.58da58",
+    "x": 1775.714485168457,
+    "y": 429.5000329017639,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "49a6d604.e73918",
+    "id": "c2f6d68e.0458f8",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1185.3336791992188,
-    "y": 896.0863828659058,
-    "z": "4375a986.58da58",
+    "x": 1155.0479736328125,
+    "y": 824.0863809585571,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "92af337f.f9091",
-        "2260291f.e97ce6",
-        "7dd9dcbc.7f2444",
-        "4129d032.78404"
+        "a9b7bffc.aa2b4",
+        "6b318116.5323d",
+        "42a23b75.158384",
+        "9c7e9e79.a7d92"
       ]
     ]
   },
   {
-    "id": "2260291f.e97ce6",
+    "id": "6b318116.5323d",
     "type": "outcome",
     "name": "CreateSiteInstance",
     "xml": "<outcome value='CreateSiteInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1395.8100814819336,
-    "y": 782.5656590461731,
-    "z": "4375a986.58da58",
+    "x": 1365.5243759155273,
+    "y": 710.5656571388245,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "a7e96e7.da3759"
+        "55240075.eb5d6"
       ]
     ]
   },
   {
-    "id": "92af337f.f9091",
+    "id": "a9b7bffc.aa2b4",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1367.7146072387695,
-    "y": 918.9435949325562,
-    "z": "4375a986.58da58",
+    "x": 1337.4289016723633,
+    "y": 846.9435930252075,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "7a7968b7.86bdd8"
+        "298a6339.0b800c"
       ]
     ]
   },
   {
-    "id": "32894e90.6b0c32",
+    "id": "45a0dc92.069df4",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1124.3336791992188,
-    "y": 841.0863828659058,
-    "z": "4375a986.58da58",
+    "x": 1094.0479736328125,
+    "y": 769.0863809585571,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "49a6d604.e73918"
+        "c2f6d68e.0458f8"
       ]
     ]
   },
   {
-    "id": "a7e96e7.da3759",
+    "id": "55240075.eb5d6",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:site-vnf-topology-operation-create",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-create' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1772.3337860107422,
-    "y": 781.0864176750183,
-    "z": "4375a986.58da58",
+    "x": 1742.048080444336,
+    "y": 709.0864157676697,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "7a7968b7.86bdd8",
+    "id": "298a6339.0b800c",
     "type": "block",
     "name": "block",
     "xml": "<block>\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 1508.0001831054688,
-    "y": 920.000018119812,
-    "z": "4375a986.58da58",
+    "x": 1477.7144775390625,
+    "y": 848.0000162124634,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "20f9ae9c.019342",
+    "id": "7fc78d60.cae204",
     "type": "switchNode",
     "name": "switch request-action",
     "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1186.000228881836,
-    "y": 1111.0000567436218,
-    "z": "4375a986.58da58",
+    "x": 1155.7145233154297,
+    "y": 1039.0000548362732,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "91de147a.222508",
-        "74446a5b.f474e4",
-        "99ea96e4.0df2a8",
-        "1a0e74cb.e3576b"
+        "598afaf3.9ab664",
+        "ad4f414f.86f22",
+        "80e244cd.d3b9b8",
+        "36b48dbf.e8f152"
       ]
     ]
   },
   {
-    "id": "74446a5b.f474e4",
+    "id": "ad4f414f.86f22",
     "type": "outcome",
     "name": "DeleteSiteInstance",
     "xml": "<outcome value='DeleteSiteInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1399.4764251708984,
-    "y": 1042.4792742729187,
-    "z": "4375a986.58da58",
+    "x": 1369.1907196044922,
+    "y": 970.4792723655701,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "553676c.1a72488"
+        "5ac9f6c1.9461d8"
       ]
     ]
   },
   {
-    "id": "91de147a.222508",
+    "id": "598afaf3.9ab664",
     "type": "other",
     "name": "other",
     "xml": "<outcome value='Other'>\n",
     "comments": "",
     "outputs": 1,
-    "x": 1394.3811988830566,
-    "y": 1230.857343196869,
-    "z": "4375a986.58da58",
+    "x": 1364.0954933166504,
+    "y": 1158.8573412895203,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "55eb587b.78c2a8"
+        "7e90d46d.dd6c8c"
       ]
     ]
   },
   {
-    "id": "6dc15b04.91f744",
+    "id": "15d3bdce.a379d2",
     "type": "block",
     "name": "block : atomic",
     "xml": "<block atomic=\"true\">",
     "atomic": "true",
     "outputs": 1,
-    "x": 1125.000228881836,
-    "y": 1056.0000567436218,
-    "z": "4375a986.58da58",
+    "x": 1094.7145233154297,
+    "y": 984.0000548362732,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "20f9ae9c.019342"
+        "7fc78d60.cae204"
       ]
     ]
   },
   {
-    "id": "553676c.1a72488",
+    "id": "5ac9f6c1.9461d8",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:site-vnf-topology-operation-delete",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-delete' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1773.000228881836,
-    "y": 1041.0000567436218,
-    "z": "4375a986.58da58",
+    "x": 1742.7145233154297,
+    "y": 969.0000548362732,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "55eb587b.78c2a8",
+    "id": "7e90d46d.dd6c8c",
     "type": "block",
     "name": "block",
     "xml": "<block>\n",
     "atomic": "false",
     "comments": "",
     "outputs": 1,
-    "x": 1534.6667747497559,
-    "y": 1231.9137663841248,
-    "z": "4375a986.58da58",
+    "x": 1504.3810691833496,
+    "y": 1159.9137644767761,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "798897d0.7131b8",
+    "id": "4d5727ac.a53ee8",
     "type": "outcome",
     "name": "ActivateSDWANDeviceInstance",
     "xml": "<outcome value='ActivateSDWANDeviceInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1445.6667938232422,
-    "y": 290.0000777244568,
-    "z": "4375a986.58da58",
+    "x": 1415.381088256836,
+    "y": 218.00007581710815,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "a45f59ac.5e3398"
+        "707c6b49.988594"
       ]
     ]
   },
   {
-    "id": "a45f59ac.5e3398",
+    "id": "707c6b49.988594",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-device-activate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-activate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1881.1904907226562,
-    "y": 289.5208501815796,
-    "z": "4375a986.58da58",
+    "x": 1850.90478515625,
+    "y": 217.52084827423096,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "6e2dfa7d.37fff4",
+    "id": "dac41099.6c197",
     "type": "outcome",
     "name": "DeactivateSDWANDeviceInstance",
     "xml": "<outcome value='DeactivateSDWANDeviceInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1477.6666259765625,
-    "y": 552.0000309944153,
-    "z": "4375a986.58da58",
+    "x": 1447.3809204101562,
+    "y": 480.00002908706665,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "c84c03f8.9cd4"
+        "ac8efd87.9dc06"
       ]
     ]
   },
   {
-    "id": "c84c03f8.9cd4",
+    "id": "ac8efd87.9dc06",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-device-deactivate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-deactivate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1934.1903228759766,
-    "y": 551.520866394043,
-    "z": "4375a986.58da58",
+    "x": 1903.9046173095703,
+    "y": 479.52086448669434,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "57576319.5a9afc",
+    "id": "2da816b6.4e7c0a",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-wanport-activate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-activate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1885.6666259765625,
-    "y": 335,
-    "z": "4375a986.58da58",
+    "x": 1855.3809204101562,
+    "y": 262.99999809265137,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "ca8cee25.05298",
+    "id": "a770a856.f607b8",
     "type": "outcome",
     "name": "ActivateSDWANPortInstance",
     "xml": "<outcome value='ActivateSDWANPortInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1450.1429290771484,
-    "y": 335.4792275428772,
-    "z": "4375a986.58da58",
+    "x": 1419.8572235107422,
+    "y": 263.47922563552856,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "57576319.5a9afc"
+        "2da816b6.4e7c0a"
       ]
     ]
   },
   {
-    "id": "391009ec.e35256",
+    "id": "eb0736e3.b5ac48",
     "type": "outcome",
     "name": "DeactivateSDWANPortInstance",
     "xml": "<outcome value='DeactivateSDWANPortInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1487.6666259765625,
-    "y": 607.3333129882812,
-    "z": "4375a986.58da58",
+    "x": 1439.3809661865234,
+    "y": 518.3333444595337,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "f3661d98.5a432"
+        "f22af468.5fba28"
       ]
     ]
   },
   {
-    "id": "f3661d98.5a432",
+    "id": "f22af468.5fba28",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-wanport-deactivate",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-deactivate' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1944.1903228759766,
-    "y": 606.8541483879089,
-    "z": "4375a986.58da58",
+    "x": 1913.9046173095703,
+    "y": 534.8541464805603,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "7dd9dcbc.7f2444",
+    "id": "42a23b75.158384",
     "type": "outcome",
     "name": "CreateSDWANPortInstance",
     "xml": "<outcome value='CreateSDWANPortInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1445.666976928711,
-    "y": 871.3334934711456,
-    "z": "4375a986.58da58",
+    "x": 1415.3812713623047,
+    "y": 799.333491563797,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "68414049.ea046"
+        "589ef7ee.6f2508"
       ]
     ]
   },
   {
-    "id": "68414049.ea046",
+    "id": "589ef7ee.6f2508",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-wanport-create",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-create' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1902.1905975341797,
-    "y": 875.8542728424072,
-    "z": "4375a986.58da58",
+    "x": 1871.9048919677734,
+    "y": 803.8542709350586,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "99ea96e4.0df2a8",
+    "id": "80e244cd.d3b9b8",
     "type": "outcome",
     "name": "DeleteSDWANPortInstance",
     "xml": "<outcome value='DeleteSDWANPortInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1462.3334655761719,
-    "y": 1167.333445072174,
-    "z": "4375a986.58da58",
+    "x": 1432.0477600097656,
+    "y": 1095.3334431648254,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "a5fe3bb.97135c8"
+        "9255592d.86eb88"
       ]
     ]
   },
   {
-    "id": "a5fe3bb.97135c8",
+    "id": "9255592d.86eb88",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-wanport-delete",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-delete' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1918.857162475586,
-    "y": 1166.8542804718018,
-    "z": "4375a986.58da58",
+    "x": 1888.5714569091797,
+    "y": 1094.8542785644531,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "1a0e74cb.e3576b",
+    "id": "36b48dbf.e8f152",
     "type": "outcome",
     "name": "DeleteSDWANDeviceInstance",
     "xml": "<outcome value='DeleteSDWANDeviceInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1471.0316162109375,
-    "y": 1107.5313515663147,
-    "z": "4375a986.58da58",
+    "x": 1440.7459106445312,
+    "y": 1035.531349658966,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "b4d0ce64.19ec1"
+        "fa87fad4.5037b8"
       ]
     ]
   },
   {
-    "id": "b4d0ce64.19ec1",
+    "id": "fa87fad4.5037b8",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-device-delete",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-delete' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1903.5552215576172,
-    "y": 1107.0520648956299,
-    "z": "4375a986.58da58",
+    "x": 1873.269515991211,
+    "y": 1035.0520629882812,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
   },
   {
-    "id": "4129d032.78404",
+    "id": "9c7e9e79.a7d92",
     "type": "outcome",
     "name": "CreateSDWANDeviceInstance",
     "xml": "<outcome value='CreateSDWANDeviceInstance'>",
     "comments": "",
     "outputs": 1,
-    "x": 1461.0313262939453,
-    "y": 827.5314569473267,
-    "z": "4375a986.58da58",
+    "x": 1430.745620727539,
+    "y": 755.531455039978,
+    "z": "d01dd033.8ac4a",
     "wires": [
       [
-        "9003a9fa.c60f08"
+        "42e2eb47.a51c74"
       ]
     ]
   },
   {
-    "id": "9003a9fa.c60f08",
+    "id": "42e2eb47.a51c74",
     "type": "call",
     "name": "call GENERIC-RESOURCE-API:sdwan-vnf-topology-operation-device-create",
     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-create' mode='sync' >\n",
     "comments": "",
     "outputs": 1,
-    "x": 1917.5549926757812,
-    "y": 826.0522708892822,
-    "z": "4375a986.58da58",
+    "x": 1887.269287109375,
+    "y": 754.0522689819336,
+    "z": "d01dd033.8ac4a",
     "wires": [
       []
     ]
index ff587ce..7376942 100644 (file)
@@ -1,82 +1,94 @@
-<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}'>
-    <method rpc='connection-attachment-topology-operation' mode='sync'>
-        <block atomic="true">
-            <call module='GENERIC-RESOURCE-API' rpc='validate-connection-attachment-input' mode='sync' ></call>
-            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value='create'>
-                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                        <outcome value='CreateSOTNAttachmentInstance'>
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-create' mode='sync' ></call>
-                        </outcome>
-                        <outcome value='other'>
-                            <return status='failure'>
-                                <parameter name='ack-final' value='Y'/>
-                                <parameter name="error-code" value="500" />
-                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />
-                            </return>
-                        </outcome>
-                    </switch>
-                </outcome>
-                <outcome value='activate'>
-                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                        <outcome value='ActivateSOTNAttachmentInstance'>
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-activate' mode='sync' ></call>
-                        </outcome>
-                        <outcome value='other'>
-                            <return status='failure'>
-                                <parameter name='ack-final' value='Y'/>
-                                <parameter name="error-code" value="500" />
-                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />
-                            </return>
-                        </outcome>
-                    </switch>
-                </outcome>
-                <outcome value='deactivate'>
-                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                        <outcome value='DeactivateSOTNAttachmentInstance'>
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-deactivate' mode='sync' ></call>
-                        </outcome>
-                        <outcome value='other'>
-                            <return status='failure'>
-                                <parameter name='ack-final' value='Y'/>
-                                <parameter name="error-code" value="500" />
-                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />
-                            </return>
-                        </outcome>
-                    </switch>
-                </outcome>
-                <outcome value='delete'>
-                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                        <outcome value='DeleteSOTNAttachmentInstance'>
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-delete' mode='sync' ></call>
-                        </outcome>
-                        <outcome value='other'>
-                            <return status='failure'>
-                                <parameter name='ack-final' value='Y'/>
-                                <parameter name="error-code" value="500" />
-                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />
-                            </return>
-                        </outcome>
-                    </switch>
-                </outcome>
-                <outcome value='Other'>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="sdnc-request-header.svc-action is invalid" />
-                    </return>
-                </outcome>
-            </switch>
-            <set>
-                <parameter name="ack-final" value="Y"/>
-            </set>
-            <return status='success'>
-                <parameter name="ack-final-indicator" value="Y" />
-                <parameter name="error-code" value="200" />
-                <parameter name="error-message" value="`$error-message`" />
-            </return>
-        </block>
-    </method>
-</service-logic>
\ No newline at end of file
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='connection-attachment-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-connection-attachment-input' mode='sync' ></call>\r
+            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='CreateSOTNAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-create' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='CreateSDWANAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-create' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='ActivateSOTNAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-activate' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='ActivateSDWANAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-activate' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeactivateSOTNAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-deactivate' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='DeactivateSDWANAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-deactivate' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeleteSOTNAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sotn-attachment-topology-operation-delete' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='DeleteSDWANAttachmentInstance'>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-attachment-topology-operation-delete' mode='sync' ></call>\r
+                        </outcome>\r
+                        <outcome value='other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'Provided request-action=' + $connection-attachment-topology-operation-input.request-information.request-action + ' is not supported.'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is invalid" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="ack-final" value="Y"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-activate.xml
new file mode 100644 (file)
index 0000000..585c8b8
--- /dev/null
@@ -0,0 +1,434 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-attachment-topology-operation-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/connection-attachment-topology/'` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='connection-attachment-ar.' value='$mdsal-ar.connection-attachment-allotted-resource[0].' />\r
+                                    </set>\r
+                                    <switch test='`$connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
+                                        <outcome value='Created'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" \r
+    value="`'Existing connection-attachment-allotted-resource with order status of ' + $connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <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`' />\r
+                                        <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-ar.allotted-resource-status.rpc-action`' />\r
+                                        <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`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="Error: Connection attachment resource not exist" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="404" />\r
+                            <parameter name="error-message" value="Error: Connection attachment resource not exist" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <block atomic="true">\r
+                <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' ></call>\r
+            </block>\r
+            <set>\r
+                <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                <parameter name="outputPath" value="tmp.ar-url-psd"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-psd`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-psd" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="Error: Parent service data not available" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='pidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id`' />\r
+                    </set>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                        <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                        <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                        <parameter name="target" value="{allotted-resource-id}"/>\r
+                        <parameter name="replacement" value="`$prop.ar.provided-allotted-resource-id`"/>\r
+                    </execute>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                        <parameter name='format' value='json' />\r
+                        <parameter name='httpMethod' value='GET' />\r
+                        <parameter name="responsePrefix" value="mdsal-providedAr" />\r
+                        <outcome value='Other'>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true">\r
+                                <for index="aridx" start="0" end="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
+                                    <block atomic="true">\r
+                                        <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'role'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'sdwanVpnName'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.name' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                                <set>\r
+                                    <parameter name='prop.ar-parent-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                    <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                    <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                    <parameter name="replacement" value="`$prop.ar-parent-service-instance-id`"/>\r
+                                </execute>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                    <parameter name='format' value='json' />\r
+                                    <parameter name='httpMethod' value='GET' />\r
+                                    <parameter name="responsePrefix" value="mdsal-parentsd" />\r
+                                    <outcome value='Other'>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <for index='pnidx' start='0' end='`$mdsal-parentsd.service-data.networks.network_length`' >\r
+                                                <block atomic="true">\r
+                                                    <switch test="`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.request-information.request-action == ActivateSDWANConnectivityInstance`">\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <for index="paramidx" start="0" end="`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param_length`">\r
+                                                                    <block atomic="true">\r
+                                                                        <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpn-id'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.vpn1Id' value='`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                                <set>\r
+                                                                    <parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.service-information.service-instance-id`' />\r
+                                                                </set>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                    <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                                                    <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                                    <parameter name="replacement" value="`$prop.ar-service-instance-id`"/>\r
+                                                                </execute>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                                    <parameter name='format' value='json' />\r
+                                                                    <parameter name='httpMethod' value='GET' />\r
+                                                                    <parameter name="responsePrefix" value="mdsal-sd" />\r
+                                                                    <outcome value='Other'>\r
+                                                                        <block></block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='success'>\r
+                                                                        <block atomic="true">\r
+                                                                            <for index='arvidx' start='0' end='`$mdsal-sd.service-data.vnfs.vnf_length`' >\r
+                                                                                <block atomic="true">\r
+                                                                                    <switch test="`$mdsal-parentsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block atomic="true">\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='tmp.sitevidx' value='`$arvidx`' />\r
+                                                                                                </set>\r
+                                                                                                <for index="siteidx" start="0" end="`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                                                                    <block atomic="true">\r
+                                                                                                        <switch test="`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <block atomic="true">\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name='prop.attach.siteId' value='`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                                                    </set>\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\r
+                                                                                                                        <parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\r
+                                                                                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\r
+                                                                                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\r
+                                                                                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\r
+                                                                                                                        <parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\r
+                                                                                                                    </set>\r
+                                                                                                                </block>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </execute>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </execute>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWAN-Controller AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/vpn-services'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn topology failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.action' value="`$connection-attachment-topology-operation-input.request-information.request-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value="connection-attachment-topology-operation" />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value="`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$connection-attachment-topology-operation-input.request-information.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$connection-attachment-topology-operation-input.sdnc-request-header.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$connection-attachment-topology-operation-input.service-information.` " />\r
+            </set>\r
+            <set>\r
+                <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.` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\r
+                <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`' />\r
+                <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`' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sdwan-attachment.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\r
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
+        pfx='pfx' local-only='false' force='false'>\r
+                <parameter name="description" value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`" />\r
+                <parameter name="selflink" value="`$tmp.ar.self-link`" />\r
+                <parameter name="model-invariant-id" value="`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid`" />\r
+                <parameter name="model-version-id" value="`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid`" />\r
+                <parameter name="operational-status" value="Active" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-create.xml
new file mode 100644 (file)
index 0000000..1fa6496
--- /dev/null
@@ -0,0 +1,246 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-attachment-topology-operation-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                <outcome value=''>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                        <parameter name="ctx-destination" value="tmp.ar.allotted-resource-id"/>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='' />\r
+                                <parameter name='error-message' value="An error occured while generation allotted resource ID" />\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.ar.allotted-resource-type' value="SDWANAttachmentInstance" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.ar.allotted-resource-type' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/connection-attachment-topology/'` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error: Existing connection attachment allotted resource" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.cidx' value="`0`" />\r
+                        <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='tmp.found-cidx' value="`false`" />\r
+                        </set>\r
+                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource as cosumed allotted resource already exists." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$tmp.found-cidx`'>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>\r
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.parent-ar-url`"/>\r
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="parent" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.action' value="`$connection-attachment-topology-operation-input.request-information.request-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value="connection-attachment-topology-operation" />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value="`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$connection-attachment-topology-operation-input.request-information.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$connection-attachment-topology-operation-input.sdnc-request-header.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$connection-attachment-topology-operation-input.service-information.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$connection-attachment-topology-operation-input.allotted-resource-information.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='connection-attachment-ar-identifiers.consuming-service-instance-id' value="`$connection-attachment-topology-operation-input.service-information.service-instance-id` " />\r
+                <parameter name='connection-attachment-ar-identifiers.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+                <parameter name='connection-attachment-ar-identifiers.allotted-resource-type' value="`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
+                <parameter name='connection-attachment-ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.' \r
+value="`$connection-attachment-ar-identifiers.`" />\r
+            </set>\r
+            <set>\r
+                <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.` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\r
+                <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`' />\r
+                <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`' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <block atomic="true">\r
+                <for index='i' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\r
+                    <block atomic="true">\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                            <parameter name="original_string" value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$i].name`'/>\r
+                            <parameter name="regex" value="_"/>\r
+                            <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name="`connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$i].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                        </set>\r
+                    </block>\r
+                </for>\r
+                <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' ></call>\r
+            </block>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sdwan-attachment.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-deactivate.xml
new file mode 100644 (file)
index 0000000..5f65774
--- /dev/null
@@ -0,0 +1,413 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-attachment-topology-operation-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/connection-attachment-topology/'` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='connection-attachment-ar.' value='$mdsal-ar.connection-attachment-allotted-resource[0].' />\r
+                                    </set>\r
+                                    <switch test='`$connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
+                                        <outcome value='Active'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" \r
+    value="`'Existing connection-attachment-allotted-resource with order status of ' + $connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <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`' />\r
+                                        <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-ar.allotted-resource-status.rpc-action`' />\r
+                                        <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`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="404" />\r
+                            <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <block atomic="true">\r
+                <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-saved-ar-param' mode='sync' ></call>\r
+            </block>\r
+            <set>\r
+                <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                <parameter name="outputPath" value="tmp.ar-url-psd"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-psd`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-psd" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='pidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$prop.ar.provided-allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                    <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                                    <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                    <parameter name="target" value="{allotted-resource-id}"/>\r
+                                    <parameter name="replacement" value="`$prop.ar.provided-allotted-resource-id`"/>\r
+                                </execute>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                    <parameter name='format' value='json' />\r
+                                    <parameter name='httpMethod' value='GET' />\r
+                                    <parameter name="responsePrefix" value="mdsal-providedAr" />\r
+                                    <outcome value='Other'>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <for index="aridx" start="0" end="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
+                                                <block>\r
+                                                    <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'Role'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'sdwanVpnName'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.name' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name='prop.ar-parent-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                                <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                <parameter name="replacement" value="`$prop.ar-parent-service-instance-id`"/>\r
+                                            </execute>\r
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                <parameter name='format' value='json' />\r
+                                                <parameter name='httpMethod' value='GET' />\r
+                                                <parameter name="responsePrefix" value="mdsal-parentsd" />\r
+                                                <outcome value='Other'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <for index='pnidx' start='0' end='`$mdsal-parentsd.service-data.networks.network_length`' >\r
+                                                            <block>\r
+                                                                <switch test="`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`">\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic="true">\r
+                                                                            <for index="paramidx" start="0" end="`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param_length`">\r
+                                                                                <block>\r
+                                                                                    <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.vpn1Id' value='`$mdsal-parentsd.service-data.networks.network[$pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                            <set>\r
+                                                                                <parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.service-information.service-instance-id`' />\r
+                                                                            </set>\r
+                                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                                <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                                                                <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                                                <parameter name="replacement" value="`$prop.ar-service-instance-id`"/>\r
+                                                                            </execute>\r
+                                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                                                                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                                                <parameter name='format' value='json' />\r
+                                                                                <parameter name='httpMethod' value='GET' />\r
+                                                                                <parameter name="responsePrefix" value="mdsal-sd" />\r
+                                                                                <outcome value='Other'>\r
+                                                                                    <block></block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='success'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <for index='arvidx' start='0' end='`$mdsal-sd.service-data.vnfs.vnf_length`' >\r
+                                                                                            <block atomic="true">\r
+                                                                                                <switch test="`$mdsal-parentsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == ActivateSiteInstance`">\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <block atomic="true">\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='tmp.sitevidx' value='`$arvidx`' />\r
+                                                                                                            </set>\r
+                                                                                                            <for index="siteidx" start="0" end="`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                                                                                <block atomic="true">\r
+                                                                                                                    <switch test="`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">\r
+                                                                                                                        <outcome value='true'>\r
+                                                                                                                            <block atomic="true">\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='prop.attach.siteId' value='`$mdsal-parentsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\r
+                                                                                                                                    <parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\r
+                                                                                                                                    <parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\r
+                                                                                                                                    <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\r
+                                                                                                                                    <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\r
+                                                                                                                                    <parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </switch>\r
+                                                                                                                </block>\r
+                                                                                                            </for>\r
+                                                                                                        </block>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                        </for>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </execute>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWAN-Controller AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-tolopogy.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.action' value="`$connection-attachment-topology-operation-input.request-information.request-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value="connection-attachment-topology-operation" />\r
+                <parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value="`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$connection-attachment-topology-operation-input.request-information.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$connection-attachment-topology-operation-input.sdnc-request-header.` " />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$connection-attachment-topology-operation-input.service-information.` " />\r
+            </set>\r
+            <set>\r
+                <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.` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\r
+                <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`' />\r
+                <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`' />\r
+                <parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sdwan-attachment.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-attachment-topology-operation-delete.xml
new file mode 100644 (file)
index 0000000..29e1a5e
--- /dev/null
@@ -0,0 +1,185 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-attachment-topology-operation-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/connection-attachment-topology/'` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='Delete' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for connection-attachment-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.cidx' value='`$cidx`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test="`$tmp.cidx`">\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="resource to be deleted is not available in mdsal" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx]." value="" />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.parent-service-instance-id' value="`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                <parameter name="outputPath" value="tmp.ar-url-psd"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-psd`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-psd" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Resource to be deleted doesn't exist in MDSAL." />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='pidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\r
+                            <switch test="`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$pidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.pidx' value='`$pidx`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test="`$tmp.pidx`">\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="resource to be deleted is not available in mdsal" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="service-data.provided-allotted-resources.consumed-allotted-resource[$pidx]." value="" />\r
+                <parameter name="service-data.provided-allotted-resources.consumed-allotted-resource_length" value='`$service-data.provided-allotted-resources.consumed-allotted-resource_length - 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='connection-attachment-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $connection-attachment-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='allotted-resource'  \r
+               key="customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\r
+                       allotted-resource.id = $tmp.ar.allotted-resource-id">\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+            </delete>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-get-saved-ar-param.xml
new file mode 100644 (file)
index 0000000..d9bce9b
--- /dev/null
@@ -0,0 +1,31 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-get-saved-ar-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index='idx' start='0' end='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`' >\r
+                <block>\r
+                    <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'sdwanVpnName'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.connection-attachment.sdwanVpnName' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].name == 'role'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.connection-attachment.role' value='`$connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
+                        <parameter name="error-message" value="`$error-message`" />\r
+                    </return>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
index e988058..30e2097 100644 (file)
         key= 'service-subscription.service-type = $service-data.networks.network[$tmp.nidx].network-data.service-information.subscription-service-type \r
         AND customer.global-customer-id = $service-data.networks.network[$tmp.nidx].network-data.service-information.global-customer-id'\r
       force="true" pfx="tmp.AnAI-data">\r
-                <switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\r
-                    <outcome value=''>\r
-                        <block atomic="true">\r
-                            <set>\r
-                                <parameter name='prop.customer-id' value='`$ctx.network-data.service-information.global-customer-id`' />\r
-                            </set>\r
-                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                <outcome value='success'>\r
+                    <switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.customer-id' value='`$ctx.network-data.service-information.global-customer-id`' />\r
+                                </set>\r
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="service-subscription" \r
         key= 'service-subscription.service-type = $service-data.networks.network[$tmp.nidx].network-data.service-information.subscription-service-type \r
         AND customer.global-customer-id = $service-data.networks.network[$tmp.nidx].network-data.service-information.global-customer-id'>\r
-                                <parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' />\r
-                            </save>\r
-                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-tenant.json'`" />\r
-                                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats'`" />\r
-                                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
-                                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
-                                <parameter name="format" value="json"/>\r
-                                <parameter name="httpMethod" value="put"/>\r
-                                <parameter name="responsePrefix" value="tenant-result"/>\r
-                                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
-                                <parameter name="trustStorePassword" value="adminadmin"/>\r
-                                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
-                                <parameter name="keyStorePassword" value="adminadmin"/>\r
-                                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
-                            </execute>\r
+                                    <parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' />\r
+                                </save>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-tenant.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats'`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                                <set>\r
+                                    <parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats/authorization/' + $prop.tenant-id`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
                             <set>\r
-                                <parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\r
+                                <parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\r
                             </set>\r
-                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenanats/authorization/' + $prop.tenant-id`" />\r
-                                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
-                                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
-                                <parameter name="format" value="json"/>\r
-                                <parameter name="httpMethod" value="put"/>\r
-                                <parameter name="responsePrefix" value="tenant-result"/>\r
-                                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
-                                <parameter name="trustStorePassword" value="adminadmin"/>\r
-                                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
-                                <parameter name="keyStorePassword" value="adminadmin"/>\r
-                                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
-                            </execute>\r
-                        </block>\r
-                    </outcome>\r
-                    <outcome value='Other'>\r
-                        <set>\r
-                            <parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\r
-                        </set>\r
-                    </outcome>\r
-                </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
             </get-resource>\r
             <block atomic="true">\r
                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                     <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
                 </execute>\r
                 <set>\r
-                    <parameter name='prop.vpn-id' value='`$vpn-result.id`' />\r
-                    <parameter name='prop.vpn1Id' value='`$vpn-result.id`' />\r
+                    <!--parameter name='prop.vpn-id' value='`$vpn-result.id`' /><parameter name='prop.vpn1Id' value='`$vpn-result.id`' /-->\r
+                    <parameter name='prop.vpn-id' value='10' />\r
+                    <parameter name='prop.vpn1Id' value='10' />\r
                 </set>\r
                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
                     <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`" />\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_sdwan-wanport-vnf-topology-operation-underlay.xml
new file mode 100644 (file)
index 0000000..9db916e
--- /dev/null
@@ -0,0 +1,640 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='sdwan-wanport-vnf-topology-operation-underlay' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='prop.provision.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='prop.ar.allotted-resource-id' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id`' />\r
+                    </set>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                        <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                        <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                        <parameter name="target" value="{allotted-resource-id}"/>\r
+                        <parameter name="replacement" value="`$prop.ar.allotted-resource-id`"/>\r
+                    </execute>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                        <parameter name='format' value='json' />\r
+                        <parameter name='httpMethod' value='GET' />\r
+                        <parameter name="responsePrefix" value="mdsal-ar" />\r
+                        <outcome value='success'>\r
+                            <block atomic="true">\r
+                                <switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\r
+                                    <outcome value='1'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='prop.parent-service-instance-id' value='`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.parent-service-instance-id`' />\r
+                                            </set>\r
+                                            <for index="roleidx" start="0" end="`$mdsal-ar.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
+                                                <block>\r
+                                                    <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].name == 'role'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.spoke.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$roleidx].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="404" />\r
+                                            <parameter name="error-message" value="Error: Connection attachement resource not found" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="Error: Connection attachement resource not found" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </execute>\r
+                    <switch test="`$prop.spoke.role == 'spoke'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                                    <block atomic="true">\r
+                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <for index="widx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'transportNetworkName'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.transportNetworkName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'wanPortId'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.wanPortId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'providerIpAddress'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.providerIpAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].name == 'ipAddress'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.ipAddress' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$widx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <for index="didx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].name == 'deviceId'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.deviceId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$didx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <for index="sidx" start="0" end="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'name'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.siteName' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].name == 'siteId'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.spoke.siteId' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-request-input.vnf-input-parameters.param[$sidx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                    <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                    <parameter name="outputPath" value="tmp.ar-url-parent-connection"/>\r
+                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                    <parameter name="replacement" value="`$prop.parent-service-instance-id`"/>\r
+                                </execute>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-parent-connection`' />\r
+                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                    <parameter name='format' value='json' />\r
+                                    <parameter name='httpMethod' value='GET' />\r
+                                    <parameter name="responsePrefix" value="mdsal-psd" />\r
+                                    <outcome value='success'>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="404" />\r
+                                            <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <for index='pnidx' start='0' end='`$mdsal-psd.service-data.networks.network_length`' >\r
+                                    <block atomic="true">\r
+                                        <switch test="`$mdsal-psd.service-data.networks.network[$pnidx].network-data.request-information.request-action == 'ActivateSDWANConnectivityInstance'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.pnidx' value='`$pnidx`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.pnidx`">\r
+                                            <outcome value=''>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                                <for index="paramidx" start="0" end="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param_length`">\r
+                                    <block atomic="true">\r
+                                        <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'topology'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.topology' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].name == 'vpnId'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.vpnId' value='`$mdsal-psd.service-data.networks.network[$tmp.pnidx].network-data.network-request-input.network-input-parameters.param[$paramidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                                <switch test="`$prop.topology == 'hub-spoke'`">\r
+                                    <outcome value='false'>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <for index='ppidx' start='0' end='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource_length`' >\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='prop.ar.provided-allotted-resource-id' value='`$mdsal-psd.service-data.provided-allotted-resources.provided-allotted-resource[$ppidx].allotted-resource-id`' />\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.connection-attachment-allottedresource`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                                        <parameter name="target" value="{allotted-resource-id}"/>\r
+                                                        <parameter name="replacement" value="`$prop.ar.provided-allotted-resource-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='GET' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-providedAr" />\r
+                                                        <outcome value='success'>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="404" />\r
+                                                                <parameter name="error-message" value="Error: SOTN resource not found" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <for index="aridx" start="0" end="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param_length`">\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].name == 'Role'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.role' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.param[$aridx].value`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <switch test="`$prop.role == hub`">\r
+                                                        <outcome value='false'>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='prop.ar-service-instance-id' value='`$mdsal-providedAr.connection-attachment-allotted-resource[0].allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.consuming-service-instance-id`' />\r
+                                                                </set>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                    <parameter name="source" value="/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data"/>\r
+                                                                    <parameter name="outputPath" value="tmp.ar-url-connection"/>\r
+                                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                                    <parameter name="replacement" value="`$prop.ar-service-instance-id`"/>\r
+                                                                </execute>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url-connection`' />\r
+                                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                                    <parameter name='format' value='json' />\r
+                                                                    <parameter name='httpMethod' value='GET' />\r
+                                                                    <parameter name="responsePrefix" value="mdsal-arsd" />\r
+                                                                    <outcome value='success'>\r
+                                                                        <block></block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='Other'>\r
+                                                                        <return status='failure'>\r
+                                                                            <parameter name='ack-final' value='Y'/>\r
+                                                                            <parameter name="error-code" value="404" />\r
+                                                                            <parameter name="error-message" value="Error: SDWAN service-data not found" />\r
+                                                                        </return>\r
+                                                                    </outcome>\r
+                                                                </execute>\r
+                                                                <for index='arvidx' start='0' end='`$mdsal-arsd.service-data.vnfs.vnf_length`' >\r
+                                                                    <block atomic="true">\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANPortInstance'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='tmp.portvidx' value='`$arvidx`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='tmp.devicevidx' value='`$arvidx`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$arvidx].vnf-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='tmp.sitevidx' value='`$arvidx`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                                <block atomic="true">\r
+                                                                    <switch test="`$tmp.portvidx`">\r
+                                                                        <outcome value=''>\r
+                                                                            <return status='failure'>\r
+                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                <parameter name="error-code" value="500" />\r
+                                                                                <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (port) not found in service-data" />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                    <switch test="`$tmp.devicevidx`">\r
+                                                                        <outcome value=''>\r
+                                                                            <return status='failure'>\r
+                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                <parameter name="error-code" value="500" />\r
+                                                                                <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (device) not found in service-data" />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                    <switch test="`$tmp.sitevidx`">\r
+                                                                        <outcome value=''>\r
+                                                                            <return status='failure'>\r
+                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                <parameter name="error-code" value="500" />\r
+                                                                                <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id (site) not found in service-data" />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                                <for index="wportidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                                    <block atomic="true">\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'transportNetworkName'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.hub.transportNetworkName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'wanPortId'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.hub.wanPortId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'providerIpAddress'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.hub.providerIpAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].name == 'ipAddress'`">\r
+                                                                            <outcome value='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='prop.hub.ipAddress' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.portvidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$wportidx].value`' />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                                <switch test="`$prop.hub.transportNetworkName == $prop.spoke.transportNetworkName`">\r
+                                                                    <outcome value='false'>\r
+                                                                        <block></block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='prop.hubTnpId' value='$prop.hub.wanPortId' />\r
+                                                                            </set>\r
+                                                                            <for index="deviceidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                                                <block atomic="true">\r
+                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.hub.deviceId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.devicevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$deviceidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                            <for index="siteidx" start="0" end="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length`">\r
+                                                                                <block atomic="true">\r
+                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'name'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.hub.siteName' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'siteId'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.hub.siteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'hubRouteId'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.hubRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test="`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].name == 'spokeRouteId'`">\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='prop.spokeRouteId' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$siteidx].value`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                            <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                                                                                <outcome value='ActivateSDWANAttachmentInstance'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
+                                                                                            <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
+                                                                                            <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
+                                                                                            <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
+                                                                                            <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
+                                                                                        </set>\r
+                                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                                                                                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />\r
+                                                                                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                                                                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                                                                            <parameter name="format" value="json"/>\r
+                                                                                            <parameter name="httpMethod" value="post"/>\r
+                                                                                            <parameter name="responsePrefix" value="underlayHubResp"/>\r
+                                                                                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                                                                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                                                                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status='failure'>\r
+                                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                                    <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'></outcome>\r
+                                                                                        </execute>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
+                                                                                            <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
+                                                                                            <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
+                                                                                            <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
+                                                                                            <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
+                                                                                        </set>\r
+                                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                                                                                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static'`" />\r
+                                                                                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                                                                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                                                                            <parameter name="format" value="json"/>\r
+                                                                                            <parameter name="httpMethod" value="post"/>\r
+                                                                                            <parameter name="responsePrefix" value="underlayspokeResp"/>\r
+                                                                                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                                                                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                                                                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status='failure'>\r
+                                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                                    <parameter name="error-message" value="Error executing sdwan spoke route underlay rest api" />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'></outcome>\r
+                                                                                        </execute>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].name' value='hubRouteId' />\r
+                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length].value' value='`$underlayHubResp[0].id`' />\r
+                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].name' value='spokeRouteId' />\r
+                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param[$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 1].value' value='`$underlayspokeResp[0].id`' />\r
+                                                                                            <parameter name='mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length' value='`$mdsal-arsd.service-data.vnfs.vnf[$tmp.sitevidx].vnf-data.vnf-request-input.vnf-input-parameters.param_length + 2`' />\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='DeactivateSDWANAttachmentInstance'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.route.id' value='`$prop.hubRouteId`' />\r
+                                                                                            <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
+                                                                                            <parameter name='prop.route.siteId' value='`$prop.hub.siteId`' />\r
+                                                                                            <parameter name='prop.route.deviceId' value='`$prop.hub.deviceId`' />\r
+                                                                                            <parameter name='prop.route.providerIpAddress' value='`$prop.hub.providerIpAddress`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.spoke.wanportId`' />\r
+                                                                                            <parameter name='prop.route.ipAddress' value='`$prop.hub.ipAddress`' />\r
+                                                                                        </set>\r
+                                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                                                                                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
+                                                                                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                                                                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                                                                            <parameter name="format" value="json"/>\r
+                                                                                            <parameter name="httpMethod" value="post"/>\r
+                                                                                            <parameter name="responsePrefix" value="underlayHubResp"/>\r
+                                                                                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                                                                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                                                                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status='failure'>\r
+                                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                                    <parameter name="error-message" value="Error executing sdwan hub route underlay rest api" />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'></outcome>\r
+                                                                                        </execute>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.route.id' value='`$prop.spokeRouteId`' />\r
+                                                                                            <parameter name='prop.route.vpnId' value='`$prop.vpnId`' />\r
+                                                                                            <parameter name='prop.route.siteId' value='`$prop.spoke.siteId`' />\r
+                                                                                            <parameter name='prop.route.deviceId' value='`$prop.spoke.deviceId`' />\r
+                                                                                            <parameter name='prop.route.providerIpAddress' value='`$prop.spoke.providerIpAddress`' />\r
+                                                                                            <parameter name='prop.route.wanportId' value='`$prop.hub.wanportId`' />\r
+                                                                                            <parameter name='prop.route.ipAddress' value='`$prop.spoke.ipAddress`' />\r
+                                                                                        </set>\r
+                                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                                                                                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
+                                                                                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                                                                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                                                                            <parameter name="format" value="json"/>\r
+                                                                                            <parameter name="httpMethod" value="post"/>\r
+                                                                                            <parameter name="responsePrefix" value="underlayspokeResp"/>\r
+                                                                                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                                                                                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                                                                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                                                                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status='failure'>\r
+                                                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                                                    <parameter name="error-code" value="500" />\r
+                                                                                                    <parameter name="error-message" value="Error executing sdwan spoke route underlay rest api" />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'></outcome>\r
+                                                                                        </execute>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <set>\r
+                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteName' value='`$prop.hub.siteName`' />\r
+                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].hubSiteId' value='`$prop.hub.siteId`' />\r
+                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteName' value='`$prop.spoke.siteName`' />\r
+                                                                                <parameter name='prop.provision.siteIds[$prop.provision.siteIds_length].spokeSiteId' value='`$prop.spoke.siteId`' />\r
+                                                                                <parameter name='prop.provision.siteIds_length' value='`$prop.provision.siteIds_length + 1`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for index='providx' start='0' end='`$prop.provision.siteIds_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='prop.provision.hubSitename' value='`$prop.provision.siteIds[$providx].hubSiteName`' />\r
+                        <parameter name='prop.provision.spokeSitename' value='`$prop.provision.siteIds[$providx].spokeSiteName`' />\r
+                        <parameter name='prop.provision.hubspokesite[0]' value='`$prop.provision.siteIds[$providx].hubSiteId`' />\r
+                        <parameter name='prop.provision.hubspokesite[1]' value='`$prop.provision.siteIds[$providx].spokeSiteId`' />\r
+                        <parameter name='prop.provision.hubspokesite_length' value='2' />\r
+                    </set>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-provision.json'`" />\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/provision-urls'`" />\r
+                        <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                        <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                        <parameter name="format" value="json"/>\r
+                        <parameter name="httpMethod" value="post"/>\r
+                        <parameter name="responsePrefix" value="provisionUrlRsp"/>\r
+                        <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks"/>\r
+                        <parameter name="trustStorePassword" value="adminadmin"/>\r
+                        <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                        <parameter name="keyStorePassword" value="adminadmin"/>\r
+                        <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error executing provision url rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'></outcome>\r
+                    </execute>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                        <parameter name="file" value="`'/opt/opendaylight/current/data/log/' + 'HUB-' + $prop.provision.hubSitename + '-SPOKE-' + $prop.provision.spokeSitename + '-provisionUrl'`"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value='`$provisionUrlRsp`'/>\r
+                    </record>\r
+                </block>\r
+            </for>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
index 3359ece..ec0301a 100644 (file)
-<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}'>
-    <method rpc='validate-connection-attachment-input' mode='sync'>
-        <block atomic="true">
-            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$connection-attachment-topology-operation-input.service-information.service-instance-id`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="service-information.parent-service-instance-id is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value='create'>
-                    <block atomic="true">
-                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                            <outcome value='CreateSOTNAttachmentInstance'>
-                                <block atomic="true">
-                                    <for index="i" start="0" end="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`">
-                                        <block>
-                                            <set>
-                                                <parameter name='tmp.name' value='' />
-                                                <parameter name='tmp.value' value='' />
-                                            </set>
-                                            <set>
-                                                <parameter name='tmp.name' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`"/>
-                                                <parameter name='tmp.value' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`"/>
-                                            </set>
-                                            <switch test="`$tmp.name`">
-                                                <outcome value='sotnVpnName'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value='clientSignal'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value='access-provider-id'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value='access-client-id'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value='access-topology-id'></outcome>
-                                                <outcome value='access-node-id'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value='cVLAN'>
-                                                    <switch test="`$tmp.value`">
-                                                        <outcome value=''>
-                                                            <return status='failure'>
-                                                                <parameter name='ack-final' value='Y'/>
-                                                                <parameter name="error-code" value="500" />
-                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />
-                                                            </return>
-                                                        </outcome>
-                                                    </switch>
-                                                </outcome>
-                                                <outcome value=''>
-                                                    <return status='failure'>
-                                                        <parameter name='ack-final' value='Y'/>
-                                                        <parameter name="error-code" value="500" />
-                                                        <parameter name="error-message" value="`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`" />
-                                                    </return>
-                                                </outcome>
-                                            </switch>
-                                        </block>
-                                    </for>
-                                </block>
-                            </outcome>
-                            <outcome value='other'>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="sdnc-request-header.request-action is invalid" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='activate'>
-                    <block atomic="true">
-                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                            <outcome value='ActivateSOTNAttachmentInstance'>
-                                <block atomic="true">
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >
-                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>
-                                    </execute>
-                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
-                                        <outcome value=''>
-                                            <return status='failure'>
-                                                <parameter name='ack-final' value='Y'/>
-                                                <parameter name="error-code" value="500" />
-                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
-                                            </return>
-                                        </outcome>
-                                    </switch>
-                                </block>
-                            </outcome>
-                            <outcome value='other'>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="sdnc-request-header.request-action is invalid" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='deactivate'>
-                    <block atomic="true">
-                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                            <outcome value='DeactivateSOTNAttachmentInstance'>
-                                <block atomic="true">
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >
-                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>
-                                    </execute>
-                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
-                                        <outcome value=''>
-                                            <return status='failure'>
-                                                <parameter name='ack-final' value='Y'/>
-                                                <parameter name="error-code" value="500" />
-                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
-                                            </return>
-                                        </outcome>
-                                    </switch>
-                                </block>
-                            </outcome>
-                            <outcome value='Other'>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='delete'>
-                    <block atomic="true">
-                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>
-                            <outcome value='DeleteSOTNAttachmentInstance'>
-                                <block atomic="true">
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >
-                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>
-                                    </execute>
-                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
-                                        <outcome value=''>
-                                            <return status='failure'>
-                                                <parameter name='ack-final' value='Y'/>
-                                                <parameter name="error-code" value="500" />
-                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />
-                                            </return>
-                                        </outcome>
-                                    </switch>
-                                </block>
-                            </outcome>
-                            <outcome value='Other'>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='Other'>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
-                    </return>
-                </outcome>
-            </switch>
-        </block>
-    </method>
-</service-logic>
\ No newline at end of file
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    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}'>\r
+    <method rpc='validate-connection-attachment-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$connection-attachment-topology-operation-input.service-information.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.parent-service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateSOTNAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <for index="i" start="0" end="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value='' />\r
+                                                <parameter name='tmp.value' value='' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`"/>\r
+                                                <parameter name='tmp.value' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`"/>\r
+                                            </set>\r
+                                            <switch test="`$tmp.name`">\r
+                                                <outcome value='sotnVpnName'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='clientSignal'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='access-provider-id'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='access-client-id'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='access-topology-id'></outcome>\r
+                                                <outcome value='access-node-id'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='cVLAN'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <for index="i" start="0" end="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param_length`">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value='' />\r
+                                                <parameter name='tmp.value' value='' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].name`"/>\r
+                                                <parameter name='tmp.value' value="`$connection-attachment-topology-operation-input.connection-attachment-request-input.param[$i].value`"/>\r
+                                            </set>\r
+                                            <switch test="`$tmp.name`">\r
+                                                <outcome value='sdwanVpnName'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='role'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'$tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'network-topology-operation-input.network-request-input.network-input-parameters.param[' + $i + ']' + '.name is a required input'`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="sdnc-request-header.request-action is invalid" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='ActivateSOTNAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="sdnc-request-header.request-action is invalid" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeactivateSDWANAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSOTNAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <block atomic="true">\r
+                        <switch test='`$connection-attachment-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeleteSOTNAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANAttachmentInstance'>\r
+                                <block atomic="true">\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                        <parameter name="connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id" value="$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id"/>\r
+                                    </execute>\r
+                                    <switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="request-information.request-action is required to be DeleteNetworkInstance for svc-action=delete" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$network-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>\r
diff --git a/platform-logic/restapi-templates/src/main/json/sdwan-site-provision.json b/platform-logic/restapi-templates/src/main/json/sdwan-site-provision.json
new file mode 100644 (file)
index 0000000..ad45076
--- /dev/null
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - CCSDK
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+{
+    "siteIds": [${repeat:prop.provision.hubspokesite_length:
+        ${prop.provision.hubspokesite[${1}]},
+     }
+    ],
+    "encryptionKey":"null",
+    "validityPeriod":3
+}
+
index 977e2ed..2bde4b8 100644 (file)
@@ -1,36 +1,37 @@
 /*-
- * ============LICENSE_START=======================================================
- * ONAP - CCSDK
- * ================================================================================
- * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
+* ============LICENSE_START=======================================================
+* ONAP - CCSDK
+* ================================================================================
+* Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+* ================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
 {
-    "routes": [
-        {
-            "vpnId": ${prop.name},
-            "siteId": ${prop.siteIds},
-            "deviceId": ${prop.deviceId},
-            "tnpId": ${prop.hubTnpId},
-            "priority": 60,
-            "destination": ${prop.vlanId},
-            "nextHopType": "ip-address",
-            "ipAddress": ${prop.providerIpAddress},
-            "track": "false",
-            "target": "null"
-        }
-    ]
-}
\ No newline at end of file
+   "routes": [
+       {
+           "id": ${prop.route.id},
+           "vpnId": ${prop.vpnId},
+           "siteId": ${prop.route.siteId},
+           "deviceId": ${prop.route.deviceId},
+           "tnpId": ${prop.route.wanportId},
+           "priority": 60,
+           "destination": ${prop.route.providerIpAddress},
+           "nextHopType": "ip-address",
+           "ipAddress": ${prop.route.ipAddress},
+           "track": "false",
+           "target": "null"
+       }
+   ]
+}
+