CCVPN extension lan-port DGs 18/83618/1
authorprakash.e <prakash.e@huawei.com>
Thu, 28 Mar 2019 14:38:32 +0000 (20:08 +0530)
committerprakash.e <prakash.e@huawei.com>
Thu, 28 Mar 2019 14:39:25 +0000 (20:09 +0530)
lan-port vf-module-topology-operation DGs

Change-Id: If1eed2e899229eb311c2cc6324dfa7858404ce18
Issue-ID: SDNC-659
Signed-off-by: Prakash.E <prakash.e@huawei.com>
Former-commit-id: b5d769f019aba5bdd25eaae21d7c190d7b428f64

platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml [new file with mode: 0644]

diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json
new file mode 100644 (file)
index 0000000..4bb3138
--- /dev/null
@@ -0,0 +1,507 @@
+[\r
+    {\r
+        "id": "3208e6b7.8cb61a",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 327,\r
+        "y": 415.6666383743286,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5e79a667.e36978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb96599.94117a8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 159.3332290649414,\r
+        "y": 78,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "619534b0.e7c14c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "619534b0.e7c14c",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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}'>",\r
+        "outputs": 1,\r
+        "x": 304.3332328796387,\r
+        "y": 159.0000171661377,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "fa9cc521.66a538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa9cc521.66a538",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-lanport-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-lanport-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 292.3333511352539,\r
+        "y": 247,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "9745a419.00eab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9745a419.00eab8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 299.33324432373047,\r
+        "y": 333.0000581741333,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "3208e6b7.8cb61a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e79a667.e36978",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583.2326469421387,\r
+        "y": 418.0103905200958,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "c8ef8603.ded258",\r
+                "de743e37.2d6ef",\r
+                "74590dc6.2a74a4",\r
+                "24b13d58.52ec12",\r
+                "c43795e3.062a98",\r
+                "575ca25e.3b0f5c",\r
+                "e5fd35dc.3490a8",\r
+                "6a33fd1e.0f98c4",\r
+                "f22f3b86.1d2998",\r
+                "c6929deb.bb79b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8ef8603.ded258",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "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",\r
+        "comments": "",\r
+        "x": 777.7332534790039,\r
+        "y": 708.0107636451721,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74590dc6.2a74a4",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 805.7326431274414,\r
+        "y": 345.01042914390564,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "beaed204.71603"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "beaed204.71603",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.7330360412598,\r
+        "y": 343.01051592826843,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "b55ea4ff.9cde28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b55ea4ff.9cde28",\r
+        "type": "set",\r
+        "name": "set deviceName",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1155.7331199645996,\r
+        "y": 344.61056327819824,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e5fd35dc.3490a8",\r
+        "type": "switchNode",\r
+        "name": "switch vlanId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 783.5727691650391,\r
+        "y": 552.0104854106903,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "99b2d592.8926d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99b2d592.8926d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 976.5727577209473,\r
+        "y": 554.0105578899384,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e0277d38.f11f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0277d38.f11f6",\r
+        "type": "set",\r
+        "name": "set vlanId",\r
+        "xml": "<set>\n<parameter name='prop.lan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1122.9065856933594,\r
+        "y": 555.4718005657196,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "575ca25e.3b0f5c",\r
+        "type": "switchNode",\r
+        "name": "switch ipAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.6279563903809,\r
+        "y": 510.3871638774872,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e7a176a1.ce4358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7a176a1.ce4358",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.6280975341797,\r
+        "y": 510.38712096214294,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "d2f3c8c4.499528"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2f3c8c4.499528",\r
+        "type": "set",\r
+        "name": "set ipAddress",\r
+        "xml": "<set>\n<parameter name='prop.lan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1141.9619789123535,\r
+        "y": 511.8483989238739,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c43795e3.062a98",\r
+        "type": "switchNode",\r
+        "name": "switch portNumber",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 798.9610862731934,\r
+        "y": 469.00466132164,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "7eda0cd0.bddb34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7eda0cd0.bddb34",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.9611854553223,\r
+        "y": 471.00467467308044,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "f1d0b896.8928d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1d0b896.8928d8",\r
+        "type": "set",\r
+        "name": "set portNumber",\r
+        "xml": "<set>\n<parameter name='prop.lan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1150.961597442627,\r
+        "y": 469.60469126701355,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "24b13d58.52ec12",\r
+        "type": "switchNode",\r
+        "name": "switch portType",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 788.8561058044434,\r
+        "y": 426.9779860973358,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "945d6482.e4ba88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "945d6482.e4ba88",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.8561782836914,\r
+        "y": 427.9780204296112,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "51acc9c3.2fe3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51acc9c3.2fe3b8",\r
+        "type": "set",\r
+        "name": "set portType",\r
+        "xml": "<set>\n<parameter name='prop.lan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1141.8565788269043,\r
+        "y": 425.57802534103394,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de743e37.2d6ef",\r
+        "type": "switchNode",\r
+        "name": "switch id",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 789.7319984436035,\r
+        "y": 296.3970763683319,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5d9145a5.3659cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d9145a5.3659cc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.7319221496582,\r
+        "y": 296.3970830440521,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e87eb6bc.61a328"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e87eb6bc.61a328",\r
+        "type": "set",\r
+        "name": "set id",\r
+        "xml": "<set>\n<parameter name='prop.lan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1125.7321891784668,\r
+        "y": 295.99721121788025,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6a33fd1e.0f98c4",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portSwitch'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 795.7324638366699,\r
+        "y": 388.0207631587982,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "f0a564e5.e03788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0a564e5.e03788",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.7323989868164,\r
+        "y": 386.02081274986267,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "607e93f6.70105c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "607e93f6.70105c",\r
+        "type": "set",\r
+        "name": "set portSwitch",\r
+        "xml": "<set>\n<parameter name='prop.lan.portSwitch' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1152.7327842712402,\r
+        "y": 386.6208064556122,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f22f3b86.1d2998",\r
+        "type": "switchNode",\r
+        "name": "switch devicePortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.0000152587891,\r
+        "y": 596.0000171661377,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e1bc8bda.eb9038"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1bc8bda.eb9038",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 968.0000286102295,\r
+        "y": 596.0000991821289,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "d2ef0983.267148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2ef0983.267148",\r
+        "type": "set",\r
+        "name": "set devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1126.3338165283203,\r
+        "y": 599.4613151550293,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c6929deb.bb79b",\r
+        "type": "switchNode",\r
+        "name": "switch lanPortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'lanPortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 781,\r
+        "y": 652,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "3b76a25e.db01ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b76a25e.db01ce",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 973.9999885559082,\r
+        "y": 654.000072479248,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5afdfd4e.d87a04"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5afdfd4e.d87a04",\r
+        "type": "set",\r
+        "name": "set lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1120.3338165283203,\r
+        "y": 655.4613151550293,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json
new file mode 100644 (file)
index 0000000..138d31f
--- /dev/null
@@ -0,0 +1,1853 @@
+[\r
+    {\r
+        "id": "cea6a9f1.279478",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 570.7143020629883,\r
+        "y": 337.99999046325684,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4a89ecf7.049034",\r
+                "2a09fa32.63fc36",\r
+                "c2f1098d.e8bd38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1833f3f4.1b830c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.71429824829102,\r
+        "y": 29,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "181dc2fc.e539bd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "181dc2fc.e539bd",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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}'>",\r
+        "outputs": 1,\r
+        "x": 177,\r
+        "y": 92.23810958862305,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "25791551.06845a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25791551.06845a",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 188.71429443359375,\r
+        "y": 186.58634185791016,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "419d7afa.b1ca54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "419d7afa.b1ca54",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 189.38096618652344,\r
+        "y": 442.666708946228,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f5110085.4f487",\r
+                "f62e0d25.9e73c",\r
+                "cea6a9f1.279478",\r
+                "76df47d2.f28eb8",\r
+                "3a550152.acb95e",\r
+                "bad651b2.12a17",\r
+                "a66a0a0e.fef0c8",\r
+                "f2a2fd31.6afea",\r
+                "11a6133a.d1ed1d",\r
+                "6bb3e148.a2b06",\r
+                "233d7734.c6ad18",\r
+                "ec89c38e.b0db3",\r
+                "cfe4c928.772628",\r
+                "307480f2.c3f12",\r
+                "83adcbda.9cab18",\r
+                "41a8aff.133475",\r
+                "bf4ca0a0.f719b",\r
+                "14cdbea6.6ff3c1",\r
+                "96f47da7.f3275",\r
+                "7299f238.fa9f1c",\r
+                "e4f03070.b443a",\r
+                "1e3434c6.db511b",\r
+                "56401cb0.1f0164"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f62e0d25.9e73c",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.7456588745117,\r
+        "y": 266.2691411972046,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b7bf67d0.4c13b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5110085.4f487",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 525.7143135070801,\r
+        "y": 205.00001049041748,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "61a8d0c5.ce10b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "61a8d0c5.ce10b",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 705.7142944335938,\r
+        "y": 204,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3e167156.21c02e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e167156.21c02e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 855.1430206298828,\r
+        "y": 205.14291763305664,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b7bf67d0.4c13b8",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 743.7143096923828,\r
+        "y": 267.00000619888306,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "29696342.56f90c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29696342.56f90c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 958.7142944335938,\r
+        "y": 265,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1ba7830b.c7ea6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ba7830b.c7ea6d",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1122.7142944335938,\r
+        "y": 260,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a09fa32.63fc36",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.7142944335938,\r
+        "y": 372,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4ead305d.0b806"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a89ecf7.049034",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.7142906188965,\r
+        "y": 318.9999990463257,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4ead305d.0b806"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ead305d.0b806",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 955.7142944335938,\r
+        "y": 332,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c2f1098d.e8bd38",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.7142944335938,\r
+        "y": 433,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "2458c219.d10e1e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ead36ccd.33529",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1146.7143096923828,\r
+        "y": 431.0000139474869,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2458c219.d10e1e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 953.7143402099609,\r
+        "y": 429.99999141693115,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "ead36ccd.33529",\r
+                "386f97ee.904d48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "386f97ee.904d48",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1165.7142791748047,\r
+        "y": 483.99999046325684,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "593c39.dc7673c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "593c39.dc7673c8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1408.7142944335938,\r
+        "y": 479,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1efda74.b0eb959"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1efda74.b0eb959",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1606.7143230438232,\r
+        "y": 466.0000066757202,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d0b5f3a2.35747"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0b5f3a2.35747",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1758.7142944335938,\r
+        "y": 468,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1fc6559e.18634a",\r
+                "802dea9f.3c2848",\r
+                "9329a8cc.23d418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fc6559e.18634a",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1986.7144088745117,\r
+        "y": 410.00000381469727,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "802dea9f.3c2848",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 1990.7144088745117,\r
+        "y": 464.00000381469727,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "76df47d2.f28eb8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "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",\r
+        "comments": "",\r
+        "x": 504.714412689209,\r
+        "y": 2079.501151561737,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9329a8cc.23d418",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2021.16943359375,\r
+        "y": 515.0104961395264,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2d390ae.97474",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 827.9683685302734,\r
+        "y": 520.0040225982666,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "7dff73e1.0243cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f6c843d.edec8c",\r
+        "type": "switchNode",\r
+        "name": "switch this deviceName == vf-input",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`\">\n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1100.9686126708984,\r
+        "y": 606.0041282176971,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cb455713.e1bdd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7dff73e1.0243cc",\r
+        "type": "for",\r
+        "name": "for vf-module-input-param length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.9682846069336,\r
+        "y": 523.0040645599365,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3f6c843d.edec8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb455713.e1bdd8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1314.9684257507324,\r
+        "y": 603.0041129589081,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "8c1ad275.b541"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c1ad275.b541",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1528.9684677124023,\r
+        "y": 599.0040664672852,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "6aaf6a5c.76e9f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6aaf6a5c.76e9f4",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId == input vf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1843.9685440063477,\r
+        "y": 598.0040471553802,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "85841cc6.de2b3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85841cc6.de2b3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2045.9686737060547,\r
+        "y": 596.0040481090546,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1722d3f0.fc82dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1722d3f0.fc82dc",\r
+        "type": "set",\r
+        "name": "set prop.lan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2220.9685668945312,\r
+        "y": 596.004228591919,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a550152.acb95e",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 573.9682159423828,\r
+        "y": 455.00401973724365,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b2d390ae.97474"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "566234f6.d57f8c",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANSiteInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1168.7185821533203,\r
+        "y": 727.0039882659912,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d08758a.8a9d4a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a6e0872.754c78",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 814.7184219360352,\r
+        "y": 694.0040283203125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "2141a4d0.4ed0ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83adcbda.9cab18",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 565.7182769775391,\r
+        "y": 625.0039081573486,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4a6e0872.754c78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d08758a.8a9d4a8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1390.7184982299805,\r
+        "y": 727.0040698051453,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "5c9349a5.10cdf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c9349a5.10cdf8",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1471.968505859375,\r
+        "y": 801.5040712356567,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "78c531f9.c452d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78502254.1e1d1c",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1854.968864440918,\r
+        "y": 808.5041785240173,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cef8d9d4.a847d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cef8d9d4.a847d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2031.9688835144043,\r
+        "y": 811.5040187835693,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "57774070.165c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26765522.97752a",\r
+        "type": "set",\r
+        "name": "set prop.attach.siteId",\r
+        "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2415.9693908691406,\r
+        "y": 785.5040702819824,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "57774070.165c4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2191.2190742492676,\r
+        "y": 807.0040588378906,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "26765522.97752a",\r
+                "18aa70c2.f51f1f",\r
+                "95fdece9.83f56",\r
+                "13d1a87e.cc7dd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41a8aff.133475",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "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 = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.7182235717773,\r
+        "y": 944.5039968490601,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "9e1e759b.490ef8",\r
+                "587c1d85.98e364",\r
+                "1fecffb3.fdfc1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e1e759b.490ef8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770.7182846069336,\r
+        "y": 908.5039968490601,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1eeec00d.ea37e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "587c1d85.98e364",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 773.2091674804688,\r
+        "y": 944.0780334472656,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f1f9240f.1bbe98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fecffb3.fdfc1",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.5421752929688,\r
+        "y": 980.4113922119141,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "e9937b5c.1de1c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9937b5c.1de1c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 922.3146667480469,\r
+        "y": 977.8504791259766,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f1f9240f.1bbe98",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 918.7805633544922,\r
+        "y": 942.3637208938599,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1eeec00d.ea37e",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "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",\r
+        "comments": "",\r
+        "x": 931.2183952331543,\r
+        "y": 906.5039367675781,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bf4ca0a0.f719b",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 540.6564559936523,\r
+        "y": 1047.62509059906,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d05110e4.15f05",\r
+                "623a881a.ebe538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d05110e4.15f05",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 775.6565818786621,\r
+        "y": 1033.6250791549683,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "adf2584e.694ce8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "623a881a.ebe538",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 774.9065818786621,\r
+        "y": 1069.2679862976074,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "e8c30ab5.68d3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8c30ab5.68d3b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 923.6565895080566,\r
+        "y": 1070.0180683135986,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adf2584e.694ce8",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 917.6565895080566,\r
+        "y": 1032.6250801086426,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96f47da7.f3275",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\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=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 566.7455520629883,\r
+        "y": 1199.0782289505005,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "50af67d.1491698",\r
+                "bef4965a.55b458"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af67d.1491698",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.7456111907959,\r
+        "y": 1213.0784349441528,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b4a513b9.d44d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bef4965a.55b458",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.7456111907959,\r
+        "y": 1175.0782704353333,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d695c8db.015488"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d695c8db.015488",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 959.7459449768066,\r
+        "y": 1174.078269958496,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4a513b9.d44d6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 962.7456226348877,\r
+        "y": 1214.0782737731934,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bad651b2.12a17",\r
+        "type": "set",\r
+        "name": "set prop.lan.devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.devicePortId' value='`$portResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 509.4028129577637,\r
+        "y": 1252.1794338226318,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d5fca27.3bbea6",\r
+        "type": "comment",\r
+        "name": "Create port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 468.41149139404297,\r
+        "y": 1165.522253036499,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14cdbea6.6ff3c1",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 515.411491394043,\r
+        "y": 1114.1886892318726,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f52cabac.abeb68",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode bridge domain create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`\" />\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=\"bridgeDomainResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 989.3958015441895,\r
+        "y": 1294.188857793808,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "441eed4c.baf224",\r
+                "fa3f1c96.1fc6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "441eed4c.baf224",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1310.3958282470703,\r
+        "y": 1311.1891782283783,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "a63cb83c.98c9e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa3f1c96.1fc6d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1313.3958549499512,\r
+        "y": 1276.1889598369598,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "421c7bf9.398d94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "421c7bf9.398d94",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 bridge domain rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1516.3962440490723,\r
+        "y": 1272.1890671253204,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a63cb83c.98c9e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1517.395809173584,\r
+        "y": 1307.1889336109161,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7044fc7.42f8204",\r
+        "type": "comment",\r
+        "name": "Create bridge domain",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 933.061695098877,\r
+        "y": 1260.6330835819244,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a66a0a0e.fef0c8",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$prop.lan.portSwitch == 'layer2-port'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 489.17326736450195,\r
+        "y": 1295.855489730835,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cc6612da.43a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc6612da.43a9",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 668.1732978820801,\r
+        "y": 1295.966812133789,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f52cabac.abeb68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2a2fd31.6afea",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.lan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 513.71826171875,\r
+        "y": 1395.7540397644043,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "c87ddd20.90349",\r
+                "aaf35528.c457d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aaf35528.c457d8",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.7182807922363,\r
+        "y": 1373.7540311813354,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f3c46122.a1ec5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c87ddd20.90349",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.7182846069336,\r
+        "y": 1414.7540349960327,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3701541a.3aea9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3c46122.a1ec5",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 911.7182998657227,\r
+        "y": 1371.7540311813354,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3701541a.3aea9c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 869.7182922363281,\r
+        "y": 1411.7540340423584,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6cdf4550.c744bc",\r
+        "type": "comment",\r
+        "name": "Create wan port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 486.7281379699707,\r
+        "y": 1348.7640895843506,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2701cb4.59cff34",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 910.7279319763184,\r
+        "y": 1333.9343032836914,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7299f238.fa9f1c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode IPSubnets create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-ip-subnets.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets'`\" />\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=\"lanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 572.489631652832,\r
+        "y": 1471.8749294281006,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "fe753b01.7a4008",\r
+                "c50acfa.66a383"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50acfa.66a383",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841.4896621704102,\r
+        "y": 1458.8749017715454,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "da685c50.c0fca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe753b01.7a4008",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.4896354675293,\r
+        "y": 1493.8751201629639,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "7c874cb1.b7ec64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da685c50.c0fca",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 994.4900436401367,\r
+        "y": 1454.8751277923584,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c874cb1.b7ec64",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 985.489616394043,\r
+        "y": 1494.8748760223389,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "220d830a.a3737c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "220d830a.a3737c",\r
+        "type": "set",\r
+        "name": "set prop.lan.lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1192.378719329834,\r
+        "y": 1497.208342552185,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e3434c6.db511b",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn topology",\r
+        "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.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598.0000534057617,\r
+        "y": 1630.333706855774,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "dad634fb.8374a8",\r
+                "222fdfc3.31cbd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "222fdfc3.31cbd",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.9999675750732,\r
+        "y": 1677.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "a113b13a.6f74c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a113b13a.6f74c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.999906539917,\r
+        "y": 1680.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "66af30b.a74d8d",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 1007.0000286102295,\r
+        "y": 1636.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dad634fb.8374a8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.999906539917,\r
+        "y": 1636.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "66af30b.a74d8d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4f03070.b443a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn ",\r
+        "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.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 559.9984092712402,\r
+        "y": 1561.8328762054443,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "93f9856d.ae6458",\r
+                "98bd094d.9d68c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98bd094d.9d68c8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.99831199646,\r
+        "y": 1583.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "54c36251.c8076c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "54c36251.c8076c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 950.9982509613037,\r
+        "y": 1586.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "719bdb7c.5a10b4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 950.9983730316162,\r
+        "y": 1542.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "93f9856d.ae6458",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 783.9982509613037,\r
+        "y": 1542.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "719bdb7c.5a10b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd2e071.957e3",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANVpnInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1147.0002365112305,\r
+        "y": 848.3332567214966,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f5335833.4ba238"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2141a4d0.4ed0ac",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.3333396911621,\r
+        "y": 777.3333368301392,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "566234f6.d57f8c",\r
+                "cdd2e071.957e3",\r
+                "785db3d8.98fb5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5335833.4ba238",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1242.666748046875,\r
+        "y": 922.3333377838135,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "deda6015.73137"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "deda6015.73137",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1456.916633605957,\r
+        "y": 923.8333144187927,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "6ef0c48a.c4e20c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6ef0c48a.c4e20c",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1703.9166717529297,\r
+        "y": 918.8333973884583,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "45631feb.4e63d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45631feb.4e63d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1854.6666259765625,\r
+        "y": 920.3333129882812,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4fe0c915.7019d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4fe0c915.7019d8",\r
+        "type": "set",\r
+        "name": "set prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2028.6673736572266,\r
+        "y": 920.3333714008331,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18aa70c2.f51f1f",\r
+        "type": "set",\r
+        "name": "Add sites to list and update length",\r
+        "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\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2459.000747680664,\r
+        "y": 826.3333714008331,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "95fdece9.83f56",\r
+        "type": "set",\r
+        "name": "Add site attachement to list and update length",\r
+        "xml": "<set>\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",\r
+        "comments": "",\r
+        "x": 2490.0006408691406,\r
+        "y": 869.3333377838135,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "11a6133a.d1ed1d",\r
+        "type": "set",\r
+        "name": "set prop.siteAttachement_length=0",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 576.0000152587891,\r
+        "y": 574.333330154419,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "78c531f9.c452d",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1689.3336715698242,\r
+        "y": 802.3333358764648,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "78502254.1e1d1c",\r
+                "63d66e16.071a8",\r
+                "5671530f.b2ba5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63d66e16.071a8",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1851.666603088379,\r
+        "y": 733.3333349227905,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "5896f487.b2b6fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5896f487.b2b6fc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2014.6666069030762,\r
+        "y": 728.3333358764648,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "21c68e35.ea4b92"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21c68e35.ea4b92",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2182.666648864746,\r
+        "y": 722.3333339691162,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "c62b7f98.336c5",\r
+                "2c113cab.56e434",\r
+                "c2240666.9ee948"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c113cab.56e434",\r
+        "type": "switchNode",\r
+        "name": "switch sd-wan-edge",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2377.666778564453,\r
+        "y": 683.3333253860474,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "ba2b297.cd792d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c62b7f98.336c5",\r
+        "type": "switchNode",\r
+        "name": "switch dsvpn-hub",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2374.6668853759766,\r
+        "y": 738.333340883255,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f4f54567.510e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ed96cca.37dc4",\r
+        "type": "set",\r
+        "name": "set spoke role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"spoke\" />\n",\r
+        "comments": "",\r
+        "x": 2707.6669006347656,\r
+        "y": 677.3333711624146,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cf4d59c.e1707c",\r
+        "type": "set",\r
+        "name": "set hub role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"hub\" />\n",\r
+        "comments": "",\r
+        "x": 2706.666660308838,\r
+        "y": 732.3333549499512,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ba2b297.cd792d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2547.666748046875,\r
+        "y": 679,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "8ed96cca.37dc4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f4f54567.510e38",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2551.666748046875,\r
+        "y": 734,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4cf4d59c.e1707c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56401cb0.1f0164",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='Active' />\n<parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 560.0312843322754,\r
+        "y": 1998.031280040741,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec89c38e.b0db3",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 556.6663017272949,\r
+        "y": 1941.1261107651517,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "233d7734.c6ad18",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 590.6663017272949,\r
+        "y": 1892.6261098114774,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6bb3e148.a2b06",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 554.6662559509277,\r
+        "y": 1844.876064300537,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "307480f2.c3f12",\r
+        "type": "set",\r
+        "name": "set device PortId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.devicePortId`' />\n",\r
+        "comments": "",\r
+        "x": 561.031322479248,\r
+        "y": 1738.0314636230469,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cfe4c928.772628",\r
+        "type": "set",\r
+        "name": "set lan PortId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='lanPortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.lanPortId`' />\n",\r
+        "comments": "",\r
+        "x": 547.0312461853027,\r
+        "y": 1792.0312767028809,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "13d1a87e.cc7dd8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic21.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"prop.attach.siteId\"/>\n<parameter name=\"field3\" value='`$prop.attach.siteId`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2384.0313873291016,\r
+        "y": 914.5312805175781,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2240666.9ee948",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic22.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"set spoke role\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2353.0313987731934,\r
+        "y": 645.531247138977,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5671530f.b2ba5c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic23.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"param-name\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1847.03125,\r
+        "y": 677.53125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "785db3d8.98fb5c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic24.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"request-action\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1096.03125,\r
+        "y": 686.53125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bacdcf2a.07a41",\r
+        "type": "comment",\r
+        "name": "**revert the changes",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1248.0312767028809,\r
+        "y": 683.0312824249268,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json
new file mode 100644 (file)
index 0000000..b4f838d
--- /dev/null
@@ -0,0 +1,533 @@
+[\r
+    {\r
+        "id": "3d343d97.916e12",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-lanport-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 285,\r
+        "y": 241.99999237060547,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "72bd87e4.7210f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72bd87e4.7210f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 444.99999237060547,\r
+        "y": 374.9999885559082,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "fa08bbfd.f36978",\r
+                "662c5c91.bf14f4",\r
+                "3a8662b6.7187de",\r
+                "d0f313c6.a0ddd",\r
+                "87f25b72.4b1968",\r
+                "c96f1257.64bf8",\r
+                "9ca9880e.f474f8",\r
+                "23949443.ee4acc",\r
+                "64302671.d03c08",\r
+                "305a60f0.cd87a",\r
+                "17d1be09.26b4d2",\r
+                "8ab4415a.f464b",\r
+                "b65f8656.be0f98",\r
+                "8944476b.d5f828"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78ad706e.d12e1",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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}'>",\r
+        "outputs": 1,\r
+        "x": 286,\r
+        "y": 141.99999237060547,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "3d343d97.916e12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c5370ed.0ab17",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 115.5,\r
+        "y": 53,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "78ad706e.d12e1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa08bbfd.f36978",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 791.2501525878906,\r
+        "y": 357.66665744781494,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "c93f649f.0099c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c93f649f.0099c8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.0284957885742,\r
+        "y": 355.22224140167236,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "8f744d78.f7a31",\r
+                "7468dc64.d34424"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f744d78.f7a31",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1202.2846984863281,\r
+        "y": 332.97037982940674,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7468dc64.d34424",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1171.7291259765625,\r
+        "y": 369.97049617767334,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "143889df.349216",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 829.2503547668457,\r
+        "y": 314.3333249092102,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a8662b6.7187de",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 770.186767578125,\r
+        "y": 516.1629304885864,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "662c5c91.bf14f4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 770.1862945556641,\r
+        "y": 462.15421867370605,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "64302671.d03c08",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.lan-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n",\r
+        "comments": "",\r
+        "x": 782.3531112670898,\r
+        "y": 624.3335423469543,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23949443.ee4acc",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.lan-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 794.6866760253906,\r
+        "y": 570.0002617835999,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "305a60f0.cd87a",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 770.500036239624,\r
+        "y": 675.8373885154724,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "17d1be09.26b4d2",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 785.0000953674316,\r
+        "y": 725.837281703949,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ab4415a.f464b",\r
+        "type": "save",\r
+        "name": "save sdwan lan-port-config resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='lan-port-config.lan-port-config-id = $prop.lan-vf-index' >\n<parameter name=\"lan-port-config-id\" value=\"`$prop.vnf-index`\" />\n<parameter name=\"device-id\" value=\"`$prop.lan.deviceName`\" />\n<parameter name=\"port-switch\" value=\"`$prop.lan.portSwitch`\" />\n<parameter name=\"port-type\" value=\"`$prop.lan.portType`\" />\n<parameter name=\"port-number\" value=\"`$prop.lan.portnumber`\" />\n<parameter name=\"ipv4-address\" value=\"`$prop.lan.ipAddress`\" />\n<parameter name='vlan-tag' value=\"`$prop.lan.vlanId`\" />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817.5000152587891,\r
+        "y": 766.3373422622681,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b65f8656.be0f98",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.lan-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"lan-port-config-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.lan-vf-index`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 785.4999313354492,\r
+        "y": 815.3373589515686,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8944476b.d5f828",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "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",\r
+        "comments": "",\r
+        "x": 736.2224769592285,\r
+        "y": 862.5112180709839,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "87f25b72.4b1968",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 729,\r
+        "y": 165.99999713897705,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "e80313cd.820e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e80313cd.820e4",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.0000915527344,\r
+        "y": 164.6666603088379,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "b80badb7.d9753"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8bc04fc8.d6a11",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1352.6665802001953,\r
+        "y": 166.66666316986084,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b80badb7.d9753",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1199.333408355713,\r
+        "y": 166.66664218902588,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "8bc04fc8.d6a11"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0f313c6.a0ddd",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 743.4205932617188,\r
+        "y": 121.50386619567871,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "7ab34e25.1cd4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ab34e25.1cd4e",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.087272644043,\r
+        "y": 120.8371639251709,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "984b3a64.7e1a38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "984b3a64.7e1a38",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1111.7538986206055,\r
+        "y": 120.8371639251709,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c96f1257.64bf8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 784.6705827713013,\r
+        "y": 241.50386714935303,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "ab6c63f4.e55a6",\r
+                "14b85aee.617c65"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab6c63f4.e55a6",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1015.6705932617188,\r
+        "y": 217.50386428833008,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "342d6918.bdf256"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14b85aee.617c65",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1015.6705932617188,\r
+        "y": 257.5038642883301,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "eedb45d.e2420b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "342d6918.bdf256",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1158.1705932617188,\r
+        "y": 217.50386428833008,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eedb45d.e2420b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1160.0276374816895,\r
+        "y": 257.4403762817383,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "a00dcbbe.533a58",\r
+                "7019e496.422f8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7019e496.422f8c",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1312.7261123657227,\r
+        "y": 227.05947497440502,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a00dcbbe.533a58",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1369.1546173095703,\r
+        "y": 280.2816047668457,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "19e6409a.9c554f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f530bc4a.54c5c",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1592.805347442627,\r
+        "y": 238.53566217422485,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "19e6409a.9c554f",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1644.4403381347656,\r
+        "y": 279.8531074523926,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "24af0b91.ce5344"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24af0b91.ce5344",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1545.1705360412598,\r
+        "y": 338.4245386123657,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "bf4e4104.4edb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf4e4104.4edb",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1692.920639038086,\r
+        "y": 338.28173068119213,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ca9880e.f474f8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.0000152587891,\r
+        "y": 408.99999809265137,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json
new file mode 100644 (file)
index 0000000..cb28863
--- /dev/null
@@ -0,0 +1,1847 @@
+[\r
+    {\r
+        "id": "3eaead5d.8a50e2",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 252,\r
+        "y": 208,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "de2de50e.7db098"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba6ca55d.d04268",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 634.0000076293945,\r
+        "y": 359.4136486053467,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "96bd0da6.6b228",\r
+                "d7d04d79.b116e",\r
+                "bcfd0c5e.e6103"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "996651b.9ec83b",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 171.00000381469727,\r
+        "y": 50.413658142089844,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "509643c7.891eac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "509643c7.891eac",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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}'>",\r
+        "outputs": 1,\r
+        "x": 240.28570556640625,\r
+        "y": 113.65176773071289,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3eaead5d.8a50e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de2de50e.7db098",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 252.6666717529297,\r
+        "y": 464.08036708831787,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cd5d97be.4098b8",\r
+                "cc768085.ce4bc",\r
+                "ba6ca55d.d04268",\r
+                "582a5dfb.dfaf24",\r
+                "6331828e.70aa2c",\r
+                "60ca269e.96d878",\r
+                "ba5b2145.40753",\r
+                "d3ab3217.7d57a",\r
+                "58afb0e4.ba7df",\r
+                "2ee3209f.a1bb9",\r
+                "bfac8597.a517f8",\r
+                "b282b047.e838d",\r
+                "89ba2ad0.277798",\r
+                "e99d476c.3f3ac8",\r
+                "81163bc0.74e178",\r
+                "e8785c39.cc512",\r
+                "86da8112.f0417",\r
+                "2b5c8466.72828c",\r
+                "6c0bf23f.5303ac",\r
+                "16e6f83a.5e7ff8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc768085.ce4bc",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.0313873291016,\r
+        "y": 287.6828079223633,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "9776f320.0567"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd5d97be.4098b8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 589.0000190734863,\r
+        "y": 226.41366863250732,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "2debc059.5aa7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2debc059.5aa7",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 769,\r
+        "y": 225.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "355351ee.f9153e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "355351ee.f9153e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 918.4287261962891,\r
+        "y": 226.55657577514648,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9776f320.0567",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.0000152587891,\r
+        "y": 288.4136643409729,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "f97986b6.bf7158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f97986b6.bf7158",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1022,\r
+        "y": 286.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "926d8df9.33314"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "926d8df9.33314",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1186,\r
+        "y": 281.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d7d04d79.b116e",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856,\r
+        "y": 393.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "511ce89.f44bb18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "96bd0da6.6b228",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.9999961853027,\r
+        "y": 340.4136571884155,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "511ce89.f44bb18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "511ce89.f44bb18",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 1019,\r
+        "y": 353.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bcfd0c5e.e6103",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856,\r
+        "y": 454.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b8a34756.728a58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af4bd42d.9f4868",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1210.000015258789,\r
+        "y": 452.4136720895767,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b8a34756.728a58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1017.0000457763672,\r
+        "y": 451.413649559021,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "af4bd42d.9f4868",\r
+                "69a184fd.28972c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69a184fd.28972c",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1229.0000305175781,\r
+        "y": 501.41367053985596,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "72e39d48.4f8944"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72e39d48.4f8944",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1472,\r
+        "y": 500.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "5f38c3e.5d3ce3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f38c3e.5d3ce3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.0000286102295,\r
+        "y": 487.41366481781006,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "92d909cb.ff6d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92d909cb.ff6d68",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1822,\r
+        "y": 489.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "4dec85b6.3eab5c",\r
+                "e85d666e.e8adc8",\r
+                "15a9af4c.a7f031"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4dec85b6.3eab5c",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2050.000114440918,\r
+        "y": 431.4136619567871,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e85d666e.e8adc8",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2054.000114440918,\r
+        "y": 485.4136619567871,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "582a5dfb.dfaf24",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "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",\r
+        "comments": "",\r
+        "x": 553.0002136230469,\r
+        "y": 1926.9149341583252,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15a9af4c.a7f031",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2084.4551391601562,\r
+        "y": 536.4241542816162,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1adddcaf.a133d3",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 891.2540740966797,\r
+        "y": 541.4176807403564,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8d8ac8b6.f23b18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc689d86.6d6b1",\r
+        "type": "switchNode",\r
+        "name": "switch this deviceName == vf-input",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`\">\n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1164.2543182373047,\r
+        "y": 627.417786359787,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "ec201f5b.98b55"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d8ac8b6.f23b18",\r
+        "type": "for",\r
+        "name": "for vf-module-input-param length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.2539901733398,\r
+        "y": 544.4177227020264,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cc689d86.6d6b1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec201f5b.98b55",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1378.2541313171387,\r
+        "y": 624.4177711009979,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "137ad5db.05e33a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42b7ec46.f75e94",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1767.254322052002,\r
+        "y": 621.4179258346558,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6fa7e982.f0f398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fa7e982.f0f398",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId == input vf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2059.2542114257812,\r
+        "y": 622.4178848266602,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a93d7d08.b19f3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a93d7d08.b19f3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2258.254379272461,\r
+        "y": 620.4178848266602,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8ce50095.7309f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ce50095.7309f",\r
+        "type": "set",\r
+        "name": "set prop.lan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2431.254383087158,\r
+        "y": 620.4179258346558,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6331828e.70aa2c",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637.2539215087891,\r
+        "y": 476.4176778793335,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1adddcaf.a133d3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "125425fb.ef4bfa",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANSiteInstance",\r
+        "xml": "<!--switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`\"-->\n<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1232.0042877197266,\r
+        "y": 748.417646408081,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7336ac27.633e24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38f21693.f6208a",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 765.0041732788086,\r
+        "y": 819.4176635742188,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e28cdf4a.09f99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58afb0e4.ba7df",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 629.0039825439453,\r
+        "y": 646.4175662994385,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "74d2892.3a20c78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7336ac27.633e24",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1454.0042037963867,\r
+        "y": 748.4177279472351,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6d31748d.e3c9bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d31748d.e3c9bc",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1535.2542114257812,\r
+        "y": 822.9177293777466,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7cb6a87.6e3f758"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1008121d.0f833e",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1918.2545700073242,\r
+        "y": 829.9178366661072,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7c572003.6098f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c572003.6098f",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2095.2545890808105,\r
+        "y": 832.9176769256592,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8daf5324.de268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63cd961f.c156c8",\r
+        "type": "set",\r
+        "name": "set prop.attach.siteId",\r
+        "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2479.255096435547,\r
+        "y": 806.9177284240723,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8daf5324.de268",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2254.504779815674,\r
+        "y": 828.4177169799805,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "63cd961f.c156c8",\r
+                "4f58a0f5.56037",\r
+                "975b7faf.1862a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89ba2ad0.277798",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "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 = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 590.0039291381836,\r
+        "y": 965.9176549911499,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "2d233c53.3f6be4",\r
+                "f1938aaa.240958",\r
+                "46bd4734.d48208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d233c53.3f6be4",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.0039901733398,\r
+        "y": 929.9176549911499,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "157032ce.bbb88d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1938aaa.240958",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.494873046875,\r
+        "y": 965.4916915893555,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "4af9366b.00d608"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46bd4734.d48208",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 831.827880859375,\r
+        "y": 1001.8250503540039,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3961a91d.651c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3961a91d.651c56",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 985.6003723144531,\r
+        "y": 999.2641372680664,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4af9366b.00d608",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 982.0662689208984,\r
+        "y": 963.7773790359497,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "157032ce.bbb88d",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "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",\r
+        "comments": "",\r
+        "x": 994.5041007995605,\r
+        "y": 927.917594909668,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e99d476c.3f3ac8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 603.9421615600586,\r
+        "y": 1069.03874874115,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e801e029.f1d5a",\r
+                "8d93013.82561"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e801e029.f1d5a",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.9422874450684,\r
+        "y": 1055.038737297058,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "aaae6df9.4c056"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d93013.82561",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.1922874450684,\r
+        "y": 1090.6816444396973,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "5e0c2f7e.4b122"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e0c2f7e.4b122",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 986.9422950744629,\r
+        "y": 1091.4317264556885,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aaae6df9.4c056",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 980.9422950744629,\r
+        "y": 1054.0387382507324,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e8785c39.cc512",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/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=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 630.0312576293945,\r
+        "y": 1220.4918870925903,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "552b4230.a57a2c",\r
+                "a21ab43e.f1ce68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "552b4230.a57a2c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879.0313167572021,\r
+        "y": 1234.4920930862427,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "d1a4e04e.60501"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a21ab43e.f1ce68",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879.0313167572021,\r
+        "y": 1196.491928577423,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "54a6d547.da0aec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "54a6d547.da0aec",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1023.0316505432129,\r
+        "y": 1195.491928100586,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d1a4e04e.60501",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1026.031328201294,\r
+        "y": 1235.4919319152832,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5c8c91e.ca8b48",\r
+        "type": "comment",\r
+        "name": "Delete port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 531.6971969604492,\r
+        "y": 1186.9359111785889,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "81163bc0.74e178",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.6971969604492,\r
+        "y": 1135.6023473739624,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a939bddc.25a0a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode bridge domain create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`\" />\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=\"bridgeDomainResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1052.6815071105957,\r
+        "y": 1315.6025159358978,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "991e6562.cad008",\r
+                "a675752c.fef5c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "991e6562.cad008",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1373.6815338134766,\r
+        "y": 1332.6028363704681,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "fb3cfb9f.764a18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a675752c.fef5c8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1376.6815605163574,\r
+        "y": 1297.6026179790497,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "92f1575b.a1bfb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92f1575b.a1bfb8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 bridge domain rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1579.6819496154785,\r
+        "y": 1293.6027252674103,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fb3cfb9f.764a18",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1580.6815147399902,\r
+        "y": 1328.602591753006,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d50d1b79.abf9a8",\r
+        "type": "comment",\r
+        "name": "Create bridge domain",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 996.3474006652832,\r
+        "y": 1282.0467417240143,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60ca269e.96d878",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$prop.lan.portSwitch == 'layer2-port'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 561.4590759277344,\r
+        "y": 1331.2692050933838,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "13b85938.8b9cd7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13b85938.8b9cd7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 749.4590034484863,\r
+        "y": 1329.3805322647095,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a939bddc.25a0a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba5b2145.40753",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.lan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577.0039672851562,\r
+        "y": 1417.1676979064941,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "575235a2.fb9bbc",\r
+                "3c20212c.49fade"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c20212c.49fade",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0039863586426,\r
+        "y": 1395.1676893234253,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "bdf015ad.4678f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "575235a2.fb9bbc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0039901733398,\r
+        "y": 1436.1676931381226,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "133c89f4.2a7c76"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdf015ad.4678f8",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 975.0040054321289,\r
+        "y": 1393.1676893234253,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "133c89f4.2a7c76",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 933.0039978027344,\r
+        "y": 1433.1676921844482,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "372eb63a.83ff6a",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 974.0136375427246,\r
+        "y": 1355.3479614257812,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86da8112.f0417",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode IPSubnets delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-ip-subnets-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets/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=\"lanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.7753372192383,\r
+        "y": 1493.2885875701904,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "15bd3770.c63fa9",\r
+                "248a192b.d86396"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "248a192b.d86396",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.7753677368164,\r
+        "y": 1480.2885599136353,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "616ee6f.3d9a718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15bd3770.c63fa9",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 901.7753410339355,\r
+        "y": 1515.2887783050537,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "40c5dea7.9b57"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "616ee6f.3d9a718",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1057.775749206543,\r
+        "y": 1476.2887859344482,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40c5dea7.9b57",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1048.7753219604492,\r
+        "y": 1516.2885341644287,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "339192eb.51711e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "339192eb.51711e",\r
+        "type": "set",\r
+        "name": "set prop.lan.lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1255.6644248962402,\r
+        "y": 1518.622000694275,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6c0bf23f.5303ac",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn topology",\r
+        "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.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 652.2857360839844,\r
+        "y": 1651.7474851608276,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6503000e.7fe09",\r
+                "f95d774d.951318"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f95d774d.951318",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.2856712341309,\r
+        "y": 1687.7468357086182,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1f602715.4e71b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f602715.4e71b9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1070.2856121063232,\r
+        "y": 1701.7468520402908,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c916735.dbf778",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 1070.2857341766357,\r
+        "y": 1657.7468520402908,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6503000e.7fe09",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 902.2855892181396,\r
+        "y": 1645.7468347549438,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7c916735.dbf778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b5c8466.72828c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn ",\r
+        "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.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 619.2841186523438,\r
+        "y": 1585.246587753296,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "593d6e8d.d4036",\r
+                "22423ed9.18f8e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22423ed9.18f8e2",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 844.2840175628662,\r
+        "y": 1605.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b88f4563.6b6768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b88f4563.6b6768",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1014.28395652771,\r
+        "y": 1608.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a724847c.2c4088",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 1014.2840785980225,\r
+        "y": 1564.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "593d6e8d.d4036",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 847.28395652771,\r
+        "y": 1564.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a724847c.2c4088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f47d1c3.9d407e",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANVpnInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.2859420776367,\r
+        "y": 869.7469148635864,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6200b940.359218"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e28cdf4a.09f99",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.6190452575684,\r
+        "y": 798.746994972229,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "125425fb.ef4bfa",\r
+                "1f47d1c3.9d407e",\r
+                "712ec051.8d2a6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6200b940.359218",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1305.9524536132812,\r
+        "y": 943.7469959259033,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "309bb160.fe92de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309bb160.fe92de",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1520.2023391723633,\r
+        "y": 945.2469725608826,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1ac88e91.8c9681"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ac88e91.8c9681",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1767.202377319336,\r
+        "y": 940.2470555305481,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3a5e3420.dfdfbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a5e3420.dfdfbc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1917.9523315429688,\r
+        "y": 941.7469711303711,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "f542060.75c12f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f542060.75c12f8",\r
+        "type": "set",\r
+        "name": "set prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2091.953079223633,\r
+        "y": 941.747029542923,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4f58a0f5.56037",\r
+        "type": "set",\r
+        "name": "Add sites to list and update length",\r
+        "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\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2522.2864532470703,\r
+        "y": 847.747029542923,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "975b7faf.1862a",\r
+        "type": "set",\r
+        "name": "Add site attachement to list and update length",\r
+        "xml": "<set>\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",\r
+        "comments": "",\r
+        "x": 2553.286346435547,\r
+        "y": 890.7469959259033,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d3ab3217.7d57a",\r
+        "type": "set",\r
+        "name": "set prop.siteAttachement_length=0",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 639.2857208251953,\r
+        "y": 595.7469882965088,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7cb6a87.6e3f758",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1752.6193771362305,\r
+        "y": 823.7469940185547,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1008121d.0f833e",\r
+                "38f1f3d9.ea90fc",\r
+                "65c7e0ab.e924d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38f1f3d9.ea90fc",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1914.9523086547852,\r
+        "y": 754.7469930648804,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e4b2cfb7.2be02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4b2cfb7.2be02",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2077.9523124694824,\r
+        "y": 749.7469940185547,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cbd09e2f.5bc81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbd09e2f.5bc81",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2245.9523544311523,\r
+        "y": 743.746992111206,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3c601cb.4b2f2e4",\r
+                "2d319605.7a6e9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d319605.7a6e9a",\r
+        "type": "switchNode",\r
+        "name": "switch sd-wan-edge",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2440.9524841308594,\r
+        "y": 704.7469835281372,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "bb6dcfdd.128fa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c601cb.4b2f2e4",\r
+        "type": "switchNode",\r
+        "name": "switch dsvpn-hub",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2437.952590942383,\r
+        "y": 759.7469990253448,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b131819c.daa97"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91128780.38fd08",\r
+        "type": "set",\r
+        "name": "set spoke role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"spoke\" />\n",\r
+        "comments": "",\r
+        "x": 2770.952606201172,\r
+        "y": 698.7470293045044,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c4199cad.d68d",\r
+        "type": "set",\r
+        "name": "set hub role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"hub\" />\n",\r
+        "comments": "",\r
+        "x": 2769.952365875244,\r
+        "y": 753.747013092041,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bb6dcfdd.128fa",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2610.9524536132812,\r
+        "y": 700.4136581420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "91128780.38fd08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b131819c.daa97",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2614.9524536132812,\r
+        "y": 755.4136581420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "c4199cad.d68d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16e6f83a.5e7ff8",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='PendingDelete' />\n<parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617.3170700073242,\r
+        "y": 1867.4452047348022,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "65c7e0ab.e924d",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic23.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"param-name\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1910.3169555664062,\r
+        "y": 698.9449081420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "712ec051.8d2a6",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic24.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"request-action\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.3171730041504,\r
+        "y": 699.9450273513794,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "500d4c8a.78bee4",\r
+        "type": "comment",\r
+        "name": "**revert the changes",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1311.316982269287,\r
+        "y": 704.4449405670166,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "137ad5db.05e33a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1536.3333740234375,\r
+        "y": 621.6667051315308,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "42b7ec46.f75e94",\r
+                "5c976c54.43c564"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c976c54.43c564",\r
+        "type": "set",\r
+        "name": "set prop.vnf-id",\r
+        "xml": "<set>\n<parameter name='prop.vnf-id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-id`' />\n\n",\r
+        "comments": "",\r
+        "x": 1728.0000495910645,\r
+        "y": 551.6666831970215,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74d2892.3a20c78",\r
+        "type": "switchNode",\r
+        "name": "switch prop.vnf-id match",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-id == $prop.vnf-id`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.0003509521484,\r
+        "y": 673.0000200271606,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cfdd9f28.400e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cfdd9f28.400e6",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.0005035400391,\r
+        "y": 748.0000233650208,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "38f21693.f6208a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fef5106c.cc924",\r
+        "type": "comment",\r
+        "name": "if device-name match with the incomming device-name,  sites in this service vnf should not be included",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 749.0000915527344,\r
+        "y": 845.0000410079956,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ee3209f.a1bb9",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 605.0000915527344,\r
+        "y": 1719.6667194366455,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bfac8597.a517f8",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 639.3032913208008,\r
+        "y": 1763.4698286056519,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b282b047.e838d",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 606.3033180236816,\r
+        "y": 1816.4698705673218,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json
new file mode 100644 (file)
index 0000000..012deec
--- /dev/null
@@ -0,0 +1,686 @@
+[\r
+    {\r
+        "id": "a54d86da.b0b4c8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 234.00000762939453,\r
+        "y": 230.00012350082397,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "4d4d77e8.c38938"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db831233.33e69",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "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}'>",\r
+        "outputs": 1,\r
+        "x": 222.28571319580078,\r
+        "y": 130.65188121795654,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a54d86da.b0b4c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62c65238.af2cac",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 143.00000762939453,\r
+        "y": 68.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "db831233.33e69"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d4d77e8.c38938",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 250.66670989990234,\r
+        "y": 459.080491065979,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "26d66719.d43da8",\r
+                "e7e6cf90.f4145",\r
+                "2040df5d.c513d",\r
+                "58084a37.394334",\r
+                "8cf55d8b.9b86e",\r
+                "6f98bfc7.8211a",\r
+                "b57e1a43.a54548",\r
+                "9d1a9cea.dd56",\r
+                "49881624.abb0c8",\r
+                "c5683ab4.530598",\r
+                "d5b959e7.7e0cc8",\r
+                "d3e08866.ee2d18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7e6cf90.f4145",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 566.0313720703125,\r
+        "y": 304.6829128265381,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "7275fe1.35167"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26d66719.d43da8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 571.0000267028809,\r
+        "y": 243.41378211975098,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "4f7f751d.4ffa8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f7f751d.4ffa8c",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 751.0000076293945,\r
+        "y": 242.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "b8464fa4.268c7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8464fa4.268c7",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 900.4287338256836,\r
+        "y": 243.55668926239014,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7275fe1.35167",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 789.0000228881836,\r
+        "y": 305.41377782821655,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "2f21af21.529ff"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f21af21.529ff",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1004.0000076293945,\r
+        "y": 303.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a1139d12.89e01"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a1139d12.89e01",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1168.0000076293945,\r
+        "y": 298.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2040df5d.c513d",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637.0000419616699,\r
+        "y": 381.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "6da138cf.958678",\r
+                "2a607157.3c86fe",\r
+                "9b455cd1.ad8b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a607157.3c86fe",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.0000343322754,\r
+        "y": 415.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9e4075b3.63ff28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6da138cf.958678",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 864.0000305175781,\r
+        "y": 362.41380500793457,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9e4075b3.63ff28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e4075b3.63ff28",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 1022.0000343322754,\r
+        "y": 375.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b455cd1.ad8b9",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.0000343322754,\r
+        "y": 476.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "76d683a5.eebfec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f214675.09ba1a",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1213.0000495910645,\r
+        "y": 474.41381990909576,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "76d683a5.eebfec",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1020.0000801086426,\r
+        "y": 473.41379737854004,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "3f214675.09ba1a",\r
+                "42fcda16.d37964"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42fcda16.d37964",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1232.0000190734863,\r
+        "y": 527.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9de7c553.fd25f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9de7c553.fd25f8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1503.0000381469727,\r
+        "y": 528.4138336181641,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "f61f0e52.12de6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f61f0e52.12de6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.0001621246338,\r
+        "y": 515.4138031005859,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "cf9e9748.fd3478"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf9e9748.fd3478",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1868.0001335144043,\r
+        "y": 517.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "1f23fa4e.25db46",\r
+                "5446fb0a.a3b5a4",\r
+                "71d1f1bd.544fb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f23fa4e.25db46",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2090.0001335144043,\r
+        "y": 513.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5446fb0a.a3b5a4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2096.0001335144043,\r
+        "y": 562.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71d1f1bd.544fb",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2124.0003547668457,\r
+        "y": 610.4138021469116,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58084a37.394334",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 576.0312538146973,\r
+        "y": 554.4298791885376,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a8fd4f02.a0c39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8fd4f02.a0c39",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 723.4598960876465,\r
+        "y": 554.0012893676758,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "e19c0822.f14e78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e19c0822.f14e78",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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",\r
+        "comments": "",\r
+        "x": 872.8886222839355,\r
+        "y": 555.1442070007324,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8cf55d8b.9b86e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.3294143676758,\r
+        "y": 624.7470846176147,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "56dc0c78.140284",\r
+                "7bad1343.8cb25c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56dc0c78.140284",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 911.1626815795898,\r
+        "y": 628.8582077026367,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "27edf28.129770e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bad1343.8cb25c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 878.1628189086914,\r
+        "y": 680.8582603931427,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "ea590f8e.65b32"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea590f8e.65b32",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "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 is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1037.6625862121582,\r
+        "y": 683.8582594394684,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "27edf28.129770e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1108.469081878662,\r
+        "y": 639.1833620071411,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d1a9cea.dd56",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "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",\r
+        "comments": "",\r
+        "x": 591.4406318664551,\r
+        "y": 1071.635935306549,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c5683ab4.530598",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 598.5272789001465,\r
+        "y": 695.7472534179688,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49881624.abb0c8",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.5271987915039,\r
+        "y": 749.7471284866333,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "3538a71e.fcff88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f98bfc7.8211a",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 598.6285705566406,\r
+        "y": 802.5513463020325,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d5b959e7.7e0cc8",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 639.5272369384766,\r
+        "y": 849.7472591400146,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3538a71e.fcff88",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 934.5271892547607,\r
+        "y": 756.7469882965088,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "10631fee.66247"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d3e08866.ee2d18",\r
+        "type": "delete",\r
+        "name": "delete lanport vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='lan-port-config' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673.5276069641113,\r
+        "y": 1019.008641242981,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "10631fee.66247",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1120.527256011963,\r
+        "y": 756.7471489906311,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "5f2f4339.fa3b9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f2f4339.fa3b9c",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1289.5272636413574,\r
+        "y": 755.7469863891602,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "282bbccf.a76394"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "282bbccf.a76394",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1443.527102470398,\r
+        "y": 747.7469873428345,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "15dd9ec6.9cd7d1",\r
+                "810eaf7a.70186"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15dd9ec6.9cd7d1",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1608.5271978378296,\r
+        "y": 722.747142791748,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "810eaf7a.70186",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1630.5271978378296,\r
+        "y": 778.747106552124,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b57e1a43.a54548",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 615.3294677734375,\r
+        "y": 966.0804300308228,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eeeb55b5.4909d8",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 629.3333129882812,\r
+        "y": 900,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml
new file mode 100644 (file)
index 0000000..21f05ed
--- /dev/null
@@ -0,0 +1,80 @@
+<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-vf-module-lanport-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portSwitch'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portSwitch' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'lanPortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.lanPortId' value='`$vf-module-request-input.vf-module-input-parameters.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>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml
new file mode 100644 (file)
index 0000000..15f1e53
--- /dev/null
@@ -0,0 +1,425 @@
+<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-vf-operation-lanport-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\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
+                <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
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`">\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic24.log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="request-action"/>\r
+                            <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\r
+                        </record>\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <block atomic="true">\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic23.log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="param-name"/>\r
+                                            <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\r
+                                        </record>\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic22.log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="set spoke role"/>\r
+                                                    </record>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.role' value="spoke" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.role' value="hub" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].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
+                                                    </set>\r
+                                                    <set>\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
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic21.log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="prop.attach.siteId"/>\r
+                                                        <parameter name="field3" value='`$prop.attach.siteId`'/>\r
+                                                    </record>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`">\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\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 = SDWANController 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 + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\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
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\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="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.lan.devicePortId' value='`$portResp.success[0].id`' />\r
+            </set>\r
+            <switch test="`$prop.lan.portSwitch == 'layer2-port'`">\r
+                <outcome value='true'>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`" />\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`" />\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="bridgeDomainResp"/>\r
+                        <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 bridge domain rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.lan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-ip-subnets.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets'`" />\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="lanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </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.onap.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.onap.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
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.devicePortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='lanPortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.lanPortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />\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>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml
new file mode 100644 (file)
index 0000000..607a19f
--- /dev/null
@@ -0,0 +1,136 @@
+<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-vf-operation-lanport-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-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="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.lan-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.lan-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='lan-port-config.lan-port-config-id = $prop.lan-vf-index' >\r
+                <parameter name="lan-port-config-id" value="`$prop.vnf-index`" />\r
+                <parameter name="device-id" value="`$prop.lan.deviceName`" />\r
+                <parameter name="port-switch" value="`$prop.lan.portSwitch`" />\r
+                <parameter name="port-type" value="`$prop.lan.portType`" />\r
+                <parameter name="port-number" value="`$prop.lan.portnumber`" />\r
+                <parameter name="ipv4-address" value="`$prop.lan.ipAddress`" />\r
+                <parameter name='vlan-tag' value="`$prop.lan.vlanId`" />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.lan-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="lan-port-config-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.lan-vf-index`" />\r
+            </save>\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>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml
new file mode 100644 (file)
index 0000000..77575c2
--- /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-vf-operation-lanport-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\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
+                <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
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`">\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='prop.vnf-id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-id`' />\r
+                                    </set>\r
+                                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-id == $prop.vnf-id`">\r
+                    <outcome value='false'>\r
+                        <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                            <block>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic24.log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="request-action"/>\r
+                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\r
+                                </record>\r
+                                <!--switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`"-->\r
+                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                            <block atomic="true">\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic23.log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="param-name"/>\r
+                                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\r
+                                                </record>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.role' value="spoke" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.role' value="hub" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].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
+                                                            </set>\r
+                                                            <set>\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
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`">\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </outcome>\r
+                </switch>\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 = SDWANController 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 + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\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
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/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="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test="`$prop.lan.portSwitch == 'layer2-port'`">\r
+                <outcome value='true'>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`" />\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`" />\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="bridgeDomainResp"/>\r
+                        <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 bridge domain rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.lan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-ip-subnets-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets/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="lanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.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 device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </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.onap.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.onap.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
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+                <parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />\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>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml
new file mode 100644 (file)
index 0000000..5fb6735
--- /dev/null
@@ -0,0 +1,138 @@
+<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-vf-operation-lanport-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\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
+                <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
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lan-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\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
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></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="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-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='lan-port-config' \r
+        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></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>
\ No newline at end of file