DGs for SOTN NNI based service creation 37/102937/2
authorHesam Rahimi <hesam.rahimi@huawei.com>
Wed, 4 Mar 2020 03:03:57 +0000 (03:03 +0000)
committerHesam Rahimi <hesam.rahimi@huawei.com>
Wed, 4 Mar 2020 21:52:46 +0000 (21:52 +0000)
Issue-ID: SDNC-900
Signed-off-by: Hesam Rahimi <hesam.rahimi@huawei.com>
Change-Id: I3ae8efc39aaa5fc5de48b3323f986531d3c7fa74

Former-commit-id: 84477fc8f92e417f809ffe040ffb12de46a43a77

28 files changed:
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json
platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json
platform-logic/generic-resource-api/src/main/resources/graph.versions
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml
platform-logic/restapi-templates/src/main/json/sotn-otn-tunnel-service.json [new file with mode: 0644]

diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.json
new file mode 100644 (file)
index 0000000..26e9f8f
--- /dev/null
@@ -0,0 +1,448 @@
+[\r
+    {\r
+        "id": "2d787bd1.a214b4",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 92,\r
+        "y": 22,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "99a6e8f9.6615a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99a6e8f9.6615a8",\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": 206,\r
+        "y": 125.00003051757812,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "d3f739cf.6d5a28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d3f739cf.6d5a28",\r
+        "type": "method",\r
+        "name": "sotn-create-otn-tunnel",\r
+        "xml": "<method rpc='sotn-create-otn-tunnel' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 217.0001220703125,\r
+        "y": 297,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "eb49715b.e15e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acad5285.a3e1a",\r
+        "type": "comment",\r
+        "name": "get cross-domain-link information",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 449.5001220703125,\r
+        "y": 31.286468505859375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb49715b.e15e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 336.9688720703125,\r
+        "y": 425.74163818359375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "96ed9e8f.b90f",\r
+                "f1e66bd.f624698",\r
+                "386c8b8a.515584"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "96ed9e8f.b90f",\r
+        "type": "switchNode",\r
+        "name": "switch prop.sdncRestApi.token_id",\r
+        "xml": "<switch test=\"`$prop.sdncRestApi.token_id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 586,\r
+        "y": 625,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "f9d6c529.483238",\r
+                "aec39761.70cfc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9d6c529.483238",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 882.8438110351562,\r
+        "y": 580.1218872070312,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "cb912ed0.0c0a3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aec39761.70cfc8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 881.5,\r
+        "y": 659,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "a260c7eb.1e65d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a260c7eb.1e65d8",\r
+        "type": "execute",\r
+        "name": "execute RestconfApiCallNode Create ethernet Service with token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1193,\r
+        "y": 661,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "b31b1f14.b450e",\r
+                "31c0814c.e11a0e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb912ed0.0c0a3",\r
+        "type": "execute",\r
+        "name": "execute RestconfApiCallNode Create ethernet Service without token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1205,\r
+        "y": 584,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "31c0814c.e11a0e",\r
+                "b31b1f14.b450e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b31b1f14.b450e",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1626.5,\r
+        "y": 652,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "6b799b05.9369c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6b799b05.9369c4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1821,\r
+        "y": 645,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "401bdd4e.60ff34",\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 rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1795.5,\r
+        "y": 583,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "31c0814c.e11a0e",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1611.5,\r
+        "y": 587,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "401bdd4e.60ff34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1e66bd.f624698",\r
+        "type": "switchNode",\r
+        "name": "switch eth topo's provider-id",\r
+        "xml": "<switch test='`$oof.vpn.access-provider-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 594,\r
+        "y": 173,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "daa01201.b40fe",\r
+                "ffd4b2da.f2213"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "daa01201.b40fe",\r
+        "type": "outcome",\r
+        "name": "domain A's OTN topo's provider ID",\r
+        "xml": "<outcome value='`$domain-A.provider-id`'>\n\u0001",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 897.285888671875,\r
+        "y": 108.82177734375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "647bcb79.cd9c24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "647bcb79.cd9c24",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1154.117431640625,\r
+        "y": 107.34027099609375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "7c841c48.339f24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ffd4b2da.f2213",\r
+        "type": "outcome",\r
+        "name": "domain B's OTN topo's provider ID",\r
+        "xml": "<outcome value='`$domain-B.provider-id`'>\n\u0001",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 895,\r
+        "y": 212,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "ada6a164.5b7e9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c841c48.339f24",\r
+        "type": "set",\r
+        "name": "set otn domain node",\r
+        "xml": "<set>\n<parameter name='tmp.otn-domain.' value='`$domain-A.`' />\n",\r
+        "comments": "",\r
+        "x": 1359,\r
+        "y": 106,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ada6a164.5b7e9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1150,\r
+        "y": 209,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "24ca0ba6.6ddfe4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24ca0ba6.6ddfe4",\r
+        "type": "set",\r
+        "name": "set otn domain node",\r
+        "xml": "<set>\n<parameter name='$tmp.otn-domain.' value='`$domain-B.`' />\n",\r
+        "comments": "",\r
+        "x": 1354.882568359375,\r
+        "y": 207.65972900390625,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "386c8b8a.515584",\r
+        "type": "switchNode",\r
+        "name": "switch eth node ID",\r
+        "xml": "<switch test='`$oof.vpn.access-node-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 600,\r
+        "y": 427,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "d91602b.4cd09",\r
+                "c018f42b.2b1a68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d91602b.4cd09",\r
+        "type": "outcome",\r
+        "name": "source eth node",\r
+        "xml": "<outcome value='`$oof.vpns[0].access-node-id`'>\n\u0001",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.285888671875,\r
+        "y": 349.82177734375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "fd2adb67.e7ca38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd2adb67.e7ca38",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1044.117431640625,\r
+        "y": 349.34027099609375,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "ad11583e.e14ea8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17b601bf.a39ace",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1046,\r
+        "y": 469,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "97fd4aa8.fd21b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c018f42b.2b1a68",\r
+        "type": "outcome",\r
+        "name": "dest eth node",\r
+        "xml": "<outcome value='`$oof.vpns[$oof.vpns_length].access-node-id`'>\n\u0001",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841,\r
+        "y": 469,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": [\r
+            [\r
+                "17b601bf.a39ace"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad11583e.e14ea8",\r
+        "type": "set",\r
+        "name": "set attachment_param",\r
+        "xml": "<set>\n<parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$otn-domain.node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].dst-ttp-id' value='`$otn-domain.ttp-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_dst-tpn' value='`$otn-domain.tpn`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />\n\n<parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$otn-domain.node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />\n\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />",\r
+        "comments": "",\r
+        "x": 1286,\r
+        "y": 350,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4add26c3.ec74e8",\r
+        "type": "comment",\r
+        "name": "cross domain OTN node is the dest of OTN tunnel",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 945,\r
+        "y": 306,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15de3156.c96c3f",\r
+        "type": "comment",\r
+        "name": "cross domain OTN node is the source of OTN tunnel",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 954,\r
+        "y": 429,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "97fd4aa8.fd21b8",\r
+        "type": "set",\r
+        "name": "set attachment_param",\r
+        "xml": "<set>\n<parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$otn-domain.node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].src-ttp-id' value='`$otn-domain.ttp-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_src-tpn' value='`$otn-domain.tpn`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />\n\n<parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$otn-domain.node-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />\n\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />\n<parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />",\r
+        "comments": "",\r
+        "x": 1294,\r
+        "y": 474,\r
+        "z": "17040f2b.d4a821",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.json
new file mode 100644 (file)
index 0000000..1046371
--- /dev/null
@@ -0,0 +1,1239 @@
+[
+  {
+    "id": "ca266b03.5b0c68",
+    "type": "dgstart",
+    "name": "DGSTART",
+    "outputs": 1,
+    "x": 91.4998779296875,
+    "y": 34,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "9db70ac2.5a0448"
+      ]
+    ]
+  },
+  {
+    "id": "9db70ac2.5a0448",
+    "type": "service-logic",
+    "name": "GENERIC-RESOURCE-API ${project.version}",
+    "module": "GENERIC-RESOURCE-API",
+    "version": "${project.version}",
+    "comments": "",
+    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+    "outputs": 1,
+    "x": 216.4998779296875,
+    "y": 360.00001525878906,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "f6e8674b.eb6ef8"
+      ]
+    ]
+  },
+  {
+    "id": "f6e8674b.eb6ef8",
+    "type": "method",
+    "name": "sotn-get-otn-tunnel-path-from-oof",
+    "xml": "<method rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 280.5,
+    "y": 453,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "d8a649df.dd5438"
+      ]
+    ]
+  },
+  {
+    "id": "4cb8a9dc.c82628",
+    "type": "execute",
+    "name": "execute RestApiCallNode getPath from OOF",
+    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.restapi.connection-oof-url`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.oof.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.oof.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"otn-oof\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",
+    "comments": "",
+    "outputs": 1,
+    "x": 763.4729614257812,
+    "y": 111.99600219726562,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "c9ad9647.3c4fa8",
+        "65b028f1.fd8198"
+      ]
+    ]
+  },
+  {
+    "id": "c9ad9647.3c4fa8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1003.4731025695801,
+    "y": 135.9959716796875,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "43f1fecc.bf7f"
+      ]
+    ]
+  },
+  {
+    "id": "b1305a70.64e458",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing OOF api\" />\n",
+    "comments": "",
+    "x": 1142.4731369018555,
+    "y": 84.99606323242188,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "65b028f1.fd8198",
+    "type": "failure",
+    "name": "failure",
+    "xml": "<outcome value='failure'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1002.4728889465332,
+    "y": 84.99606227874756,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "b1305a70.64e458"
+      ]
+    ]
+  },
+  {
+    "id": "13911536.3440bb",
+    "type": "comment",
+    "name": "OTN tunnel path computation",
+    "info": "TODO: check input parameters -- they should be\nthe source and destination of ETH node+tp.",
+    "comments": "",
+    "x": 734.9767608642578,
+    "y": 68.00000190734863,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "7480efc5.dbe2e",
+    "type": "for",
+    "name": "for vidx..otn-oof.otn-links_length[]",
+    "xml": "<for index='vidx' start='0' end='`$otn-oof.otn-links_length`' >",
+    "comments": "",
+    "outputs": 1,
+    "x": 754.4727783203125,
+    "y": 421.2457275390625,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "b98c91e0.3766f"
+      ]
+    ]
+  },
+  {
+    "id": "689331c8.a7329",
+    "type": "comment",
+    "name": "Loop through OTN links",
+    "info": "",
+    "comments": "",
+    "x": 837.9730834960938,
+    "y": 500.74609375,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "b98c91e0.3766f",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 859,
+    "y": 612.2864990234375,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "3a76e5ee.5f99aa",
+        "a8939d2.521b76"
+      ]
+    ]
+  },
+  {
+    "id": "3a76e5ee.5f99aa",
+    "type": "get-resource",
+    "name": "get-resource cross-link",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"logical-link\" \n\t\tkey=\"logical-link.link-name = $otn-oof.link-name \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.cross-link' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1126,
+    "y": 532.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "74ae6f25.c8093",
+        "d101f4ee.f9f8d8",
+        "7558125c.21685c"
+      ]
+    ]
+  },
+  {
+    "id": "74ae6f25.c8093",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1356.5,
+    "y": 477.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "a0d35b9e.4c4448"
+      ]
+    ]
+  },
+  {
+    "id": "d101f4ee.f9f8d8",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1367.5,
+    "y": 534.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "aab3f9be.7515c8"
+      ]
+    ]
+  },
+  {
+    "id": "7558125c.21685c",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1361.5,
+    "y": 584.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "c5929dad.e1e45"
+      ]
+    ]
+  },
+  {
+    "id": "aab3f9be.7515c8",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 1528.5,
+    "y": 523.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "c5929dad.e1e45",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 1526.5,
+    "y": 579.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "51d46963.f916e8",
+    "type": "set",
+    "name": "set src-ltpId and dst-ltpId",
+    "xml": "<set>\n<parameter name='tmp.cross-link.src-ltpId' value=\"`$tmp.aai.cross-link.relationship-list.relationship[0].relationship-data[0].relationship-value`\" />\n<parameter name='tmp.cross-link.dst-ltpId' value=\"`$tmp.aai.cross-link.relationship-list.relationship[1].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 2318,
+    "y": 396.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "c5a99f90.0d85b",
+    "type": "comment",
+    "name": "get cross-domain-link information",
+    "info": "",
+    "comments": "",
+    "x": 1127,
+    "y": 493.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "a8939d2.521b76",
+    "type": "set",
+    "name": "set otn-oof.link-name",
+    "xml": "<set>\n<parameter name='otn-oof.link-name' value='`$otn-oof.solutions[$vidx].`' />",
+    "comments": "",
+    "x": 1108.5,
+    "y": 442.2864685058594,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "43f1fecc.bf7f",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 1148.5001487731934,
+    "y": 133.74145698547363,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      []
+    ]
+  },
+  {
+    "id": "d8a649df.dd5438",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 521.4687614440918,
+    "y": 379.74163722991943,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "4cb8a9dc.c82628",
+        "7480efc5.dbe2e"
+      ]
+    ]
+  },
+  {
+    "id": "a0d35b9e.4c4448",
+    "type": "switchNode",
+    "name": "test cross-domain-link",
+    "xml": "<switch test='`$tmp.aai.cross-link.link-role`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1562,
+    "y": 476,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "9c05dfa6.ba207"
+      ]
+    ]
+  },
+  {
+    "id": "9c05dfa6.ba207",
+    "type": "outcome",
+    "name": "outcome cross-domain-link",
+    "xml": "<outcome value='cross-domain-link'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 1809,
+    "y": 477,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "ff68def.188c12"
+      ]
+    ]
+  },
+  {
+    "id": "1ed1e43f.527cac",
+    "type": "break",
+    "name": "break",
+    "xml": "<break>\n",
+    "comments": "",
+    "x": 2154,
+    "y": 955,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "ff68def.188c12",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 2028,
+    "y": 479,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "1ed1e43f.527cac",
+        "51d46963.f916e8",
+        "44b19c4e.886594",
+        "5702d427.f65a4c"
+      ]
+    ]
+  },
+  {
+    "id": "2017012b.18bf6e",
+    "type": "comment",
+    "name": "setup variables",
+    "info": "",
+    "comments": "",
+    "x": 2286,
+    "y": 335,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "44b19c4e.886594",
+    "type": "get-resource",
+    "name": "get-resource src tp",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"p-interface\" \n\t\tkey=\"p-interface.interface-name = $tmp.src-ltpId \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.src-tp' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2315,
+    "y": 485,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "675b31ba.fc29c",
+        "e7ba827c.7802e",
+        "3d3ce0b1.c355d"
+      ]
+    ]
+  },
+  {
+    "id": "675b31ba.fc29c",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2548.5,
+    "y": 446,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "8f945f43.0f6a1",
+        "35d184a7.0348bc"
+      ]
+    ]
+  },
+  {
+    "id": "e7ba827c.7802e",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2545.5,
+    "y": 504,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "9bcbfa8e.5a3ae8"
+      ]
+    ]
+  },
+  {
+    "id": "3d3ce0b1.c355d",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2548.5,
+    "y": 556,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "c82ee5b.1546f18"
+      ]
+    ]
+  },
+  {
+    "id": "9bcbfa8e.5a3ae8",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 2730.5,
+    "y": 508,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "c82ee5b.1546f18",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 2718.5,
+    "y": 559,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "8f945f43.0f6a1",
+    "type": "set",
+    "name": "set tmp.src-pnf-name",
+    "xml": "<set>\n<parameter name='tmp.src-pnf-name' value=\"`$tmp.aai.src-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 2749,
+    "y": 393,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "35d184a7.0348bc",
+    "type": "get-resource",
+    "name": "get-resource src pnf",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"pnf\" \n\t\tkey=\"pnf.pnf-name = $tmp.src-pnf-name \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.src-pnf' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2739,
+    "y": 448,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "9ea9cbf0.fa9328",
+        "aa8e1680.d1d798",
+        "dd38a5b5.866808"
+      ]
+    ]
+  },
+  {
+    "id": "9ea9cbf0.fa9328",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3022.5,
+    "y": 401,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "899a7ec6.41ab2"
+      ]
+    ]
+  },
+  {
+    "id": "aa8e1680.d1d798",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3014.5,
+    "y": 456,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "56667146.5a8cd"
+      ]
+    ]
+  },
+  {
+    "id": "dd38a5b5.866808",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3019.5,
+    "y": 513,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "49c4c4a9.a9af7c"
+      ]
+    ]
+  },
+  {
+    "id": "56667146.5a8cd",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 3182.5,
+    "y": 459,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "49c4c4a9.a9af7c",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 3171.5,
+    "y": 514,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "3a58b291.1cf89e",
+    "type": "set",
+    "name": "set domain A node ttp-id",
+    "xml": "<set>\n<parameter name='tmp.src-ttp-id' value=\"`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 4234,
+    "y": 262,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "6baf1c09.23f524",
+    "type": "get-resource",
+    "name": "get-resource src TTP",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tunnel-termination-point\" \n\t\tkey=\"tunnel-termination-point.ttp-id = $tmp.src-ttp-id \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.src-ttp' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4223,
+    "y": 333,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "e53fa55a.80c878"
+      ]
+    ]
+  },
+  {
+    "id": "e53fa55a.80c878",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4414.5,
+    "y": 330,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "fb4eb6f8.67d008"
+      ]
+    ]
+  },
+  {
+    "id": "fb4eb6f8.67d008",
+    "type": "set",
+    "name": "set domain A node ttp-id",
+    "xml": "<set>\n<parameter name='domain-A.ttp-id' value=\"`$tmp.aai.src-ttp.ttp-id`\" />\n",
+    "comments": "",
+    "x": 4627,
+    "y": 329,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "151d93fd.7167ec",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 4019,
+    "y": 512,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "fb4c025e.b4687",
+        "2b826247.b8392e"
+      ]
+    ]
+  },
+  {
+    "id": "a6f18660.f8abe8",
+    "type": "outcome",
+    "name": "tunnel-termination-point",
+    "xml": "<outcome value='tunnel-termination-point'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3815.16845703125,
+    "y": 325.48150634765625,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "45ebcf03.0e118"
+      ]
+    ]
+  },
+  {
+    "id": "1ff26720.4f6889",
+    "type": "for",
+    "name": "for each relationship",
+    "xml": "<for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.src-pnf.relationship-list.relationship_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3381.882568359375,
+    "y": 398.65972900390625,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "89b5166.0c594e8"
+      ]
+    ]
+  },
+  {
+    "id": "89b5166.0c594e8",
+    "type": "switchNode",
+    "name": "switch related-to",
+    "xml": "<switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3607.882568359375,
+    "y": 398.65972900390625,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "a6f18660.f8abe8",
+        "376f0574.e1601a"
+      ]
+    ]
+  },
+  {
+    "id": "899a7ec6.41ab2",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3166.88232421875,
+    "y": 398.6556701660156,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "1ff26720.4f6889",
+        "29ff2ed5.ef4af2"
+      ]
+    ]
+  },
+  {
+    "id": "29ff2ed5.ef4af2",
+    "type": "set",
+    "name": "set domain A node-id and tpn",
+    "xml": "<set>\n<parameter name='domain-A.node-id' value=\"`$tmp.aai.src-pnf.pnf-id`\" />\n<parameter name='domain-A.tpn' value='1' />\n",
+    "comments": "",
+    "x": 3426,
+    "y": 309,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "376f0574.e1601a",
+    "type": "outcome",
+    "name": "network-resource",
+    "xml": "<outcome value='network-resource'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3806,
+    "y": 511,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "151d93fd.7167ec"
+      ]
+    ]
+  },
+  {
+    "id": "fb4c025e.b4687",
+    "type": "set",
+    "name": "set domain A network-id",
+    "xml": "<set>\n<parameter name='tmp.domain-A.network-id' value=\"`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 4254,
+    "y": 442,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "45ebcf03.0e118",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 4017,
+    "y": 321,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "3a58b291.1cf89e",
+        "6baf1c09.23f524"
+      ]
+    ]
+  },
+  {
+    "id": "2b826247.b8392e",
+    "type": "get-resource",
+    "name": "get-resource src network-resource",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"network-resource\" \n\t\tkey=\"network-resource.network-id = $tmp.domain-A.network-id \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.src-network-resource' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4262,
+    "y": 523,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "f37dd233.a3308"
+      ]
+    ]
+  },
+  {
+    "id": "f37dd233.a3308",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4494.5,
+    "y": 519,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "5f1b14c5.d2a03c"
+      ]
+    ]
+  },
+  {
+    "id": "5f1b14c5.d2a03c",
+    "type": "set",
+    "name": "set domain A network-id, topo-id, client-id, etc",
+    "xml": "<set>\n<parameter name='domain-A.network-id' value=\"`$tmp.aai.src-network-resource.network-id`\" />\n<parameter name='domain-A.provider-id' value=\"`$tmp.aai.src-network-resource.provider-id`\" />\n<parameter name='domain-A.client-id' value=\"`$tmp.aai.src-network-resource.client-id`\" />\n<parameter name='domain-A.te-topo-id' value=\"`$tmp.aai.src-network-resource.te-topo-id`\" />\n<parameter name='domain-A.network-type' value=\"`$tmp.aai.src-network-resource.network-type`\" />\n\n\n",
+    "comments": "",
+    "x": 4736,
+    "y": 513,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "5702d427.f65a4c",
+    "type": "get-resource",
+    "name": "get-resource dst tp",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"p-interface\" \n\t\tkey=\"p-interface.interface-name = $tmp.dst-ltpId \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.dst-tp' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2269,
+    "y": 851,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "a50293a4.5e79e",
+        "b4058651.f77518",
+        "b61d9ed.988616"
+      ]
+    ]
+  },
+  {
+    "id": "a50293a4.5e79e",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2502.5,
+    "y": 812,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "46502cec.4be0b4",
+        "a897aaea.70dd38"
+      ]
+    ]
+  },
+  {
+    "id": "b4058651.f77518",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2499.5,
+    "y": 870,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "da3111af.853e5"
+      ]
+    ]
+  },
+  {
+    "id": "b61d9ed.988616",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2502.5,
+    "y": 922,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "c09ee4e6.15ed68"
+      ]
+    ]
+  },
+  {
+    "id": "c09ee4e6.15ed68",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 2672.5,
+    "y": 925,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "da3111af.853e5",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 2684.5,
+    "y": 874,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "a897aaea.70dd38",
+    "type": "get-resource",
+    "name": "get-resource dst pnf",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"pnf\" \n\t\tkey=\"pnf.pnf-name = $tmp.dst-pnf-name \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.dst-pnf' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2693,
+    "y": 814,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "b6f4d1fe.0b8da",
+        "46d13a0d.575974",
+        "94eeb806.b26748"
+      ]
+    ]
+  },
+  {
+    "id": "46502cec.4be0b4",
+    "type": "set",
+    "name": "set tmp.dst-pnf-name",
+    "xml": "<set>\n<parameter name='tmp.dst-pnf-name' value=\"`$tmp.aai.dst-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 2703,
+    "y": 759,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "94eeb806.b26748",
+    "type": "other",
+    "name": "other",
+    "xml": "<outcome value='Other'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2973.5,
+    "y": 879,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "efc946ae.7bf158"
+      ]
+    ]
+  },
+  {
+    "id": "46d13a0d.575974",
+    "type": "not-found",
+    "name": "not-found",
+    "xml": "<outcome value='not-found'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2968.5,
+    "y": 822,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "feb7d1d7.3486e"
+      ]
+    ]
+  },
+  {
+    "id": "b6f4d1fe.0b8da",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 2976.5,
+    "y": 767,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "100cc1d.c89dc3e"
+      ]
+    ]
+  },
+  {
+    "id": "feb7d1d7.3486e",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 3136.5,
+    "y": 825,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "efc946ae.7bf158",
+    "type": "returnFailure",
+    "name": "return failure",
+    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`\" />\n\n",
+    "comments": "",
+    "x": 3125.5,
+    "y": 880,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "100cc1d.c89dc3e",
+    "type": "block",
+    "name": "block",
+    "xml": "<block>\n",
+    "atomic": "false",
+    "comments": "",
+    "outputs": 1,
+    "x": 3120.88232421875,
+    "y": 764.6556701660156,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "3e2a3b9f.7272c4",
+        "b6c39e63.6b538"
+      ]
+    ]
+  },
+  {
+    "id": "3e2a3b9f.7272c4",
+    "type": "for",
+    "name": "for each relationship",
+    "xml": "<for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.dst-pnf.relationship-list.relationship_length`' >\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3335.882568359375,
+    "y": 764.6597290039062,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "c77ddef5.18c3e"
+      ]
+    ]
+  },
+  {
+    "id": "c77ddef5.18c3e",
+    "type": "switchNode",
+    "name": "switch related-to",
+    "xml": "<switch test='`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].related-to`'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3561.882568359375,
+    "y": 764.6597290039062,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "3576c9a1.155776",
+        "131550c4.86635f"
+      ]
+    ]
+  },
+  {
+    "id": "b6c39e63.6b538",
+    "type": "set",
+    "name": "set domain B node-id and tpn",
+    "xml": "<set>\n<parameter name='domain-B.node-id' value=\"`$tmp.aai.dst-pnf.pnf-id`\" />\n<parameter name='domain-B.tpn' value='1' />\n",
+    "comments": "",
+    "x": 3380,
+    "y": 675,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "3f07ba63.1a2cc6",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 3973,
+    "y": 878,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "68ee333a.5e149c",
+        "57b260c0.16164"
+      ]
+    ]
+  },
+  {
+    "id": "3576c9a1.155776",
+    "type": "outcome",
+    "name": "tunnel-termination-point",
+    "xml": "<outcome value='tunnel-termination-point'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3769.16845703125,
+    "y": 691.4815063476562,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "63e95b18.c47c14"
+      ]
+    ]
+  },
+  {
+    "id": "131550c4.86635f",
+    "type": "outcome",
+    "name": "network-resource",
+    "xml": "<outcome value='network-resource'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 3760,
+    "y": 877,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "3f07ba63.1a2cc6"
+      ]
+    ]
+  },
+  {
+    "id": "63e95b18.c47c14",
+    "type": "block",
+    "name": "block : atomic",
+    "xml": "<block atomic=\"true\">",
+    "atomic": "true",
+    "outputs": 1,
+    "x": 3971,
+    "y": 687,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "e883466f.992618",
+        "f5edbf24.92d52"
+      ]
+    ]
+  },
+  {
+    "id": "e883466f.992618",
+    "type": "set",
+    "name": "set domain B node ttp-id",
+    "xml": "<set>\n<parameter name='tmp.dst-ttp-id' value=\"`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 4188,
+    "y": 628,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "f5edbf24.92d52",
+    "type": "get-resource",
+    "name": "get-resource dst TTP",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tunnel-termination-point\" \n\t\tkey=\"tunnel-termination-point.ttp-id = $tmp.dst-ttp-id \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.dst-ttp' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4177,
+    "y": 699,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "70320551.17869c"
+      ]
+    ]
+  },
+  {
+    "id": "70320551.17869c",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4368.5,
+    "y": 696,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "78931a0a.3bac14"
+      ]
+    ]
+  },
+  {
+    "id": "78931a0a.3bac14",
+    "type": "set",
+    "name": "set domain B node ttp-id",
+    "xml": "<set>\n<parameter name='domain-B.ttp-id' value=\"`$tmp.aai.dst-ttp.ttp-id`\" />\n",
+    "comments": "",
+    "x": 4581,
+    "y": 695,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "68ee333a.5e149c",
+    "type": "set",
+    "name": "set domain B network-id",
+    "xml": "<set>\n<parameter name='tmp.domain-B.network-id' value=\"`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`\" />\n",
+    "comments": "",
+    "x": 4208,
+    "y": 808,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  },
+  {
+    "id": "57b260c0.16164",
+    "type": "get-resource",
+    "name": "get-resource dst network-resource",
+    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"network-resource\" \n\t\tkey=\"network-resource.network-id = $tmp.domain-B.network-id \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.dst-network-resource' local-only='false' >\n\n\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4216,
+    "y": 889,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "acb8778c.80c2b8"
+      ]
+    ]
+  },
+  {
+    "id": "acb8778c.80c2b8",
+    "type": "success",
+    "name": "success",
+    "xml": "<outcome value='success'>\n",
+    "comments": "",
+    "outputs": 1,
+    "x": 4448.5,
+    "y": 885,
+    "z": "cb55ab48.d781c8",
+    "wires": [
+      [
+        "24fd155e.59dcba"
+      ]
+    ]
+  },
+  {
+    "id": "24fd155e.59dcba",
+    "type": "set",
+    "name": "set domain B network-id, topo-id, client-id, etc",
+    "xml": "<set>\n<parameter name='domain-B.network-id' value=\"`$tmp.aai.dst-network-resource.network-id`\" />\n<parameter name='domain-B.provider-id' value=\"`$tmp.aai.dst-network-resource.provider-id`\" />\n<parameter name='domain-B.client-id' value=\"`$tmp.aai.dst-network-resource.client-id`\" />\n<parameter name='domain-B.te-topo-id' value=\"`$tmp.aai.dst-network-resource.te-topo-id`\" />\n<parameter name='domain-B.network-type' value=\"`$tmp.aai.dst-network-resource.network-type`\" />\n\n\n",
+    "comments": "",
+    "x": 4690,
+    "y": 879,
+    "z": "cb55ab48.d781c8",
+    "wires": []
+  }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.json
new file mode 100644 (file)
index 0000000..811602d
--- /dev/null
@@ -0,0 +1,243 @@
+[\r
+    {\r
+        "id": "92076785.102998",\r
+        "type": "for",\r
+        "name": "for each sotn-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 257,\r
+        "y": 366.6666383743286,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "1481334b.aa109d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d17e9aae.69c2d8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 89.3332290649414,\r
+        "y": 29,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "28ba91d2.47447e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28ba91d2.47447e",\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": 234.33323287963867,\r
+        "y": 110.0000171661377,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "bfc0526a.9023d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bfc0526a.9023d",\r
+        "type": "method",\r
+        "name": "sotn-get-vf-module-uni-param",\r
+        "xml": "<method rpc='sotn-get-vf-module-uni-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 222.3333511352539,\r
+        "y": 198,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "b8fc2441.d8f338"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8fc2441.d8f338",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 229.33324432373047,\r
+        "y": 284.0000581741333,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "92076785.102998"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1481334b.aa109d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 513.2326469421387,\r
+        "y": 369.0103905200958,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "397c4a4d.4ed016",\r
+                "2bdd888b.6d1ef8",\r
+                "595a4395.a6883c",\r
+                "ea4e21ab.628e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "397c4a4d.4ed016",\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": 733.7332763671875,\r
+        "y": 478.0107421875,\r
+        "z": "12466ca0.33d983",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "595a4395.a6883c",\r
+        "type": "switchNode",\r
+        "name": "switch tpId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tpId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 735.7326431274414,\r
+        "y": 296.01042914390564,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "7907fc56.fc4374"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7907fc56.fc4374",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 910.7330360412598,\r
+        "y": 294.01051592826843,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "6a4f5caf.0f6f14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a4f5caf.0f6f14",\r
+        "type": "set",\r
+        "name": "set tpId",\r
+        "xml": "<set>\n<parameter name='prop.uni.tpId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1085.7331199645996,\r
+        "y": 295.61056327819824,\r
+        "z": "12466ca0.33d983",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2bdd888b.6d1ef8",\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": 719.7319984436035,\r
+        "y": 247.3970763683319,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "7b22e7e.bf6e718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b22e7e.bf6e718",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 911.7319221496582,\r
+        "y": 247.39708304405212,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "ab2d859f.6acac8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab2d859f.6acac8",\r
+        "type": "set",\r
+        "name": "set id",\r
+        "xml": "<set>\n<parameter name='prop.uni.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1055.7321891784668,\r
+        "y": 246.99721121788025,\r
+        "z": "12466ca0.33d983",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ea4e21ab.628e5",\r
+        "type": "switchNode",\r
+        "name": "switch cVLAN",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'cVLAN'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 738,\r
+        "y": 374,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "c123c0b4.3c868"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c123c0b4.3c868",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 906,\r
+        "y": 371,\r
+        "z": "12466ca0.33d983",\r
+        "wires": [\r
+            [\r
+                "5bf6b706.8b8148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5bf6b706.8b8148",\r
+        "type": "set",\r
+        "name": "set cVLAN",\r
+        "xml": "<set>\n<parameter name='prop.uni.cVLAN' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1081.0000839233398,\r
+        "y": 372.6000473499298,\r
+        "z": "12466ca0.33d983",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index a7b5394..dd1ba06 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "6ddd4074.f6564",\r
+        "id": "f06d79a.4f13a08",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 234.80560302734375,\r
-        "y": 111.47219848632812,\r
-        "z": "d2e10b7b.600a68",\r
+        "x": 120,\r
+        "y": 66,\r
+        "z": "62554968.e321b8",\r
         "wires": [\r
             [\r
-                "ddeb5b5a.bb49b"\r
+                "e698fb0d.22ccb"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "ddeb5b5a.bb49b",\r
+        "id": "e698fb0d.22ccb",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 366.09129333496094,\r
-        "y": 160.71030712127686,\r
-        "z": "d2e10b7b.600a68",\r
+        "x": 251.2856903076172,\r
+        "y": 115.23810863494873,\r
+        "z": "62554968.e321b8",\r
         "wires": [\r
             [\r
-                "b1bc4dd3.fa521"\r
+                "c77e5b12.74fa8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "b1bc4dd3.fa521",\r
+        "id": "c77e5b12.74fa8",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-l2vpn-activate",\r
         "xml": "<method rpc='sotn-vf-operation-l2vpn-activate' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 369.2342224121094,\r
-        "y": 245.47223091125488,\r
-        "z": "d2e10b7b.600a68",\r
+        "x": 254.42861938476562,\r
+        "y": 200.00003242492676,\r
+        "z": "62554968.e321b8",\r
         "wires": [\r
             [\r
-                "23b0f2c.b4c290e"\r
+                "dc8a4134.633b38"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "23b0f2c.b4c290e",\r
+        "id": "dc8a4134.633b38",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
-        "comments": "",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
         "outputs": 1,\r
-        "x": 510.3329429626465,\r
-        "y": 462.54641246795654,\r
-        "z": "d2e10b7b.600a68",\r
+        "x": 622.2380447387695,\r
+        "y": 414.66666814964265,\r
+        "z": "62554968.e321b8",\r
         "wires": [\r
             [\r
-                "6c6251b8.988708"\r
+                "6485c0f8.91ce08",\r
+                "a02d1e2f.e50b18",\r
+                "c0d6a6a1.052f28",\r
+                "aff44c8.fd218b",\r
+                "cdefed21.97b52",\r
+                "ef33383b.0eb5c8",\r
+                "6bb0bfe6.f5358"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "6c6251b8.988708",\r
+        "id": "6485c0f8.91ce08",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to Active",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 1037.3850173950195,\r
+        "y": 601.6705513000488,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a02d1e2f.e50b18",\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": 778.2500610351562,\r
-        "y": 545.0833129882812,\r
-        "z": "d2e10b7b.600a68",\r
+        "x": 957.5717086791992,\r
+        "y": 727.5970888137817,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c0d6a6a1.052f28",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 1043.571662902832,\r
+        "y": 549.5968055725098,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aff44c8.fd218b",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1052.0000610351562,\r
+        "y": 304.00000545661896,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "c419b86f.420228",\r
+                "5e5514b0.5b9124",\r
+                "dab73261.53c13"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dab73261.53c13",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1310.9689559936523,\r
+        "y": 265.96876499336213,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "ac6cfd44.a241c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ac6cfd44.a241c",\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": 1465.7778434753418,\r
+        "y": 284.88903352897614,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c419b86f.420228",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1304.0000953674316,\r
+        "y": 305.00008651893586,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "ac6cfd44.a241c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e5514b0.5b9124",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1297.000503540039,\r
+        "y": 338.0000903336331,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "639a074f.493e98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "639a074f.493e98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1444.2700462341309,\r
+        "y": 338.55473539512604,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "6fa946fa.ca1978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fa946fa.ca1978",\r
+        "type": "for",\r
+        "name": "for vidx..service-data.vnfs.vnf_length[]",\r
+        "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1690.2861633300781,\r
+        "y": 345.4286558357999,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "154eb41a.640b64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "154eb41a.640b64",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1909.6357955932617,\r
+        "y": 344.9687359062955,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "330022d0.830a2e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "330022d0.830a2e",\r
+        "type": "switchNode",\r
+        "name": "switch vnfid found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2063.7153930664062,\r
+        "y": 344.67881796043366,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "fcbe4c85.417af"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fcbe4c85.417af",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2239.6675148010254,\r
+        "y": 344.57150003593415,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "2fb9529b.c7be6e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2fb9529b.c7be6e",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",\r
+        "comments": "",\r
+        "x": 2449.1998901367188,\r
+        "y": 346.3216001717374,\r
+        "z": "62554968.e321b8",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "cdefed21.97b52",\r
+        "type": "save",\r
+        "name": "update AnAI - l2vpn.operational-status",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"connectivity\"   \n\t\tkey=\"connectivity.connectivity-id = $vnfId\" >\n<parameter name=\"operational-status\" value=\"Active\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1063.0000228881836,\r
+        "y": 668.0103769302368,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef33383b.0eb5c8",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />",\r
+        "comments": "",\r
+        "x": 1042.0001373291016,\r
+        "y": 499.010338306427,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6bb0bfe6.f5358",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1028.75,\r
+        "y": 404.00390815734863,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "5c7bc43a.bb701c",\r
+                "b67194e3.094198"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c7bc43a.bb701c",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1274.583293914795,\r
+        "y": 405.1150059700012,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "914253cd.1c469"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b67194e3.094198",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1252.5833129882812,\r
+        "y": 455.115017414093,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            [\r
+                "b6453bfb.a302f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6453bfb.a302f",\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": 1412.083080291748,\r
+        "y": 458.1150164604187,\r
+        "z": "62554968.e321b8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "914253cd.1c469",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1484.8896675109863,\r
+        "y": 416.4401812553406,\r
+        "z": "62554968.e321b8",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 99d429e..951a18f 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "db0f78a5.c01a3",\r
+        "id": "ed294889.e18cd8",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 160.27777099609375,\r
-        "y": 91.94441223144531,\r
-        "z": "7ef93f2c.40fb2",\r
+        "x": 117,\r
+        "y": 57,\r
+        "z": "a8db409e.810378",\r
         "wires": [\r
             [\r
-                "d8303e2.7d965c"\r
+                "d573cd56.a0362"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "d8303e2.7d965c",\r
+        "id": "d573cd56.a0362",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 291.56346130371094,\r
-        "y": 141.18252086639404,\r
-        "z": "7ef93f2c.40fb2",\r
+        "x": 248.2856903076172,\r
+        "y": 106.23810863494873,\r
+        "z": "a8db409e.810378",\r
         "wires": [\r
             [\r
-                "c458b05f.c1372"\r
+                "ab294e07.a9e7f"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "c458b05f.c1372",\r
+        "id": "ab294e07.a9e7f",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-l2vpn-create",\r
         "xml": "<method rpc='sotn-vf-operation-l2vpn-create' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 294.7063903808594,\r
-        "y": 225.94444465637207,\r
-        "z": "7ef93f2c.40fb2",\r
+        "x": 251.42861938476562,\r
+        "y": 191.00003242492676,\r
+        "z": "a8db409e.810378",\r
         "wires": [\r
             [\r
-                "c5107308.c6aab"\r
+                "3b2ee2be.0d5776"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "c5107308.c6aab",\r
+        "id": "3b2ee2be.0d5776",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 664.2380447387695,\r
+        "y": 394.6666717529297,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "7075470e.ead518",\r
+                "a887fb8.23d1908",\r
+                "c96cd735.589ad8",\r
+                "6d0e8b42.1f8964",\r
+                "49bfb25c.1c60ac",\r
+                "3b8acefc.66b31a",\r
+                "6eb961ad.5ae338",\r
+                "adbadf0e.275b3",\r
+                "c0c21f0e.1b5958",\r
+                "f1922be.86c2058",\r
+                "d0ca9568.fe847",\r
+                "5bbdffcc.b3f3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a887fb8.23d1908",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to Created",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 1086.3848571777344,\r
+        "y": 758.6706044944003,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7075470e.ead518",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n",\r
+        "comments": "",\r
+        "x": 1078.2380447387695,\r
+        "y": 653.6668565543368,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49bfb25c.1c60ac",\r
+        "type": "execute",\r
+        "name": "execute generate-vnf-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.connectivity-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1066.571548461914,\r
+        "y": 603.3334405692294,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c0c21f0e.1b5958",\r
+        "type": "set",\r
+        "name": "set vnf-index to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\n",\r
+        "comments": "",\r
+        "x": 1077.5716247558594,\r
+        "y": 710.3334443839267,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c96cd735.589ad8",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1093.5713653564453,\r
+        "y": 273.3333633216098,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "9138e1fa.f1d37",\r
+                "bf45ff7d.c852e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9138e1fa.f1d37",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1328.2857513427734,\r
+        "y": 268.47618367988616,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "4dbced61.ca9034"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4dbced61.ca9034",\r
+        "type": "set",\r
+        "name": "set vnf-index=0",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1488.5714569091797,\r
+        "y": 268.47627523262054,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bf45ff7d.c852e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1324.7142906188965,\r
+        "y": 301.7620151313022,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "dbddb28c.bce1e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33a0ff35.932e78",\r
+        "type": "set",\r
+        "name": "set vnf-index = vnf_length",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",\r
+        "comments": "",\r
+        "x": 1717.571533203125,\r
+        "y": 280.0477407248691,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "36e21bba.2e2ef4",\r
+        "type": "for",\r
+        "name": "for each existing VNF",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1706.0001525878906,\r
+        "y": 315.04771259147674,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "7dde789c.f76928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dbddb28c.bce1e8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
         "atomic": "false",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 435.8051109313965,\r
-        "y": 443.01862621307373,\r
-        "z": "7ef93f2c.40fb2",\r
+        "x": 1459.4285736083984,\r
+        "y": 303.76198461372405,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "33a0ff35.932e78",\r
+                "36e21bba.2e2ef4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7dde789c.f76928",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",\r
+        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2099.285888671875,\r
+        "y": 315.61919668037444,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "5924827c.34c2fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5924827c.34c2fc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2380.571590423584,\r
+        "y": 314.19060209114105,\r
+        "z": "a8db409e.810378",\r
         "wires": [\r
             [\r
-                "4e54cc73.474b5c"\r
+                "46ba128f.50acd4"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "4e54cc73.474b5c",\r
+        "id": "88b8e912.2900e8",\r
+        "type": "comment",\r
+        "name": "make sure this vnf-id doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2068.4285049438477,\r
+        "y": 279.1905887397006,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6d0e8b42.1f8964",\r
+        "type": "set",\r
+        "name": "set new vnf_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1038.571548461914,\r
+        "y": 551.3334372313693,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3b8acefc.66b31a",\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": 703.7222290039062,\r
-        "y": 525.5555267333984,\r
-        "z": "7ef93f2c.40fb2",\r
+        "x": 1025.5715103149414,\r
+        "y": 1021.5969560416415,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6eb961ad.5ae338",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$prop.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 1079.5715408325195,\r
+        "y": 799.5968749793246,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46ba128f.50acd4",\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 id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 2509.1429595947266,\r
+        "y": 365.1906163962558,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adbadf0e.275b3",\r
+        "type": "save",\r
+        "name": "save AnAI - l2vpn.operational-status",\r
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"connectivity\"   \n\t\tkey='connectivity.connectivity-id = $prop.connectivity-id' >\n<parameter name=\"operational-status\" value=\"Created\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1134.5458450317383,\r
+        "y": 909.247092035599,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "204db5a4.c326da",\r
+        "type": "comment",\r
+        "name": "TODO: change AAI models",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1068.1821060180664,\r
+        "y": 868.9743078025058,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e76c21c2.4a838",\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='`$vnf-topology-operation-input.vnf-request-input.vnf-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": 1494.7395935058594,\r
+        "y": 362.7500076564029,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "11945653.6c33ba",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1298.4833908081055,\r
+        "y": 367.0018806727603,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "e76c21c2.4a838",\r
+                "e0fb04c6.a15c88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1922be.86c2058",\r
+        "type": "for",\r
+        "name": "for loop idx - VNF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1083.7050476074219,\r
+        "y": 369.4462967189029,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "11945653.6c33ba"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0ca9568.fe847",\r
+        "type": "set",\r
+        "name": "set vnf-request-input.",\r
+        "xml": "<set>\n<parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 1040.7046813964844,\r
+        "y": 439.7710037501529,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e0fb04c6.a15c88",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1471.7395935058594,\r
+        "y": 408.7500076564029,\r
+        "z": "a8db409e.810378",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5bbdffcc.b3f3b8",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1096.7395935058594,\r
+        "y": 491.7500076564029,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "e0f56e7c.d34a1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0f56e7c.d34a1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1322.9722595214844,\r
+        "y": 490.0937576564029,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "5be518f3.e26978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5be518f3.e26978",\r
+        "type": "switchNode",\r
+        "name": "switch vnf name",\r
+        "xml": "<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.4722595214844,\r
+        "y": 488.09381869155914,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "3bfa8dc2.ee3a5a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3bfa8dc2.ee3a5a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1640.4726257324219,\r
+        "y": 488.0938797267154,\r
+        "z": "a8db409e.810378",\r
+        "wires": [\r
+            [\r
+                "5f201fd1.6acc3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f201fd1.6acc3",\r
+        "type": "set",\r
+        "name": "set vnf name",\r
+        "xml": "<set>\n<parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1798.4727478027344,\r
+        "y": 486.69391634780914,\r
+        "z": "a8db409e.810378",\r
         "wires": []\r
     }\r
 ]
\ No newline at end of file
index 19781d0..e6d5840 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "90b43524.1bba",\r
+        "id": "8805f76f.30a3e",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 178.13888549804688,\r
-        "y": 111.47219848632812,\r
-        "z": "c6830f2a.6a9d68",\r
+        "x": 120,\r
+        "y": 54,\r
+        "z": "8ff83d85.25fe1",\r
         "wires": [\r
             [\r
-                "389b8a0e.3a0a5e"\r
+                "3261268f.b3fd8a"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "389b8a0e.3a0a5e",\r
+        "id": "3261268f.b3fd8a",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 309.42457580566406,\r
-        "y": 160.71030712127686,\r
-        "z": "c6830f2a.6a9d68",\r
+        "x": 251.2856903076172,\r
+        "y": 103.23810863494873,\r
+        "z": "8ff83d85.25fe1",\r
         "wires": [\r
             [\r
-                "39e685a3.66f172"\r
+                "620c0b27.171e7c"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "39e685a3.66f172",\r
+        "id": "620c0b27.171e7c",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-l2vpn-deactivate",\r
         "xml": "<method rpc='sotn-vf-operation-l2vpn-deactivate' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 312.5675048828125,\r
-        "y": 245.47223091125488,\r
-        "z": "c6830f2a.6a9d68",\r
+        "x": 254.42861938476562,\r
+        "y": 188.00003242492676,\r
+        "z": "8ff83d85.25fe1",\r
         "wires": [\r
             [\r
-                "a281b71.8f33f48"\r
+                "27dae623.42e422"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "a281b71.8f33f48",\r
+        "id": "27dae623.42e422",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
-        "comments": "",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
         "outputs": 1,\r
-        "x": 453.6662254333496,\r
-        "y": 462.54641246795654,\r
-        "z": "c6830f2a.6a9d68",\r
+        "x": 500.23804473876953,\r
+        "y": 393.6666717529297,\r
+        "z": "8ff83d85.25fe1",\r
         "wires": [\r
             [\r
-                "dab0995.6fb4068"\r
+                "d20c3672.c43588",\r
+                "7a43ef5e.3b7f9",\r
+                "6f1a46ea.30b4e8",\r
+                "61b68e4a.28176",\r
+                "b50086a8.e06b78",\r
+                "f9b5f904.311908",\r
+                "afa01bdf.71f67"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "dab0995.6fb4068",\r
+        "id": "d20c3672.c43588",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 908.3849029541016,\r
+        "y": 542.670631554909,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a43ef5e.3b7f9",\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": 721.5833435058594,\r
-        "y": 545.0833129882812,\r
-        "z": "c6830f2a.6a9d68",\r
+        "x": 834.5716247558594,\r
+        "y": 651.5970618994907,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f1a46ea.30b4e8",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 885.5716247558594,\r
+        "y": 498.5968991788104,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61b68e4a.28176",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.0000610351562,\r
+        "y": 283.000009059906,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "4517bda1.9ccc8c",\r
+                "b6fa38d4.2f92b8",\r
+                "36aca283.917aae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36aca283.917aae",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1188.9689559936523,\r
+        "y": 244.96876859664917,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "3ec837a3.d44ab"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ec837a3.d44ab",\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": 1343.7778434753418,\r
+        "y": 263.8890371322632,\r
+        "z": "8ff83d85.25fe1",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "4517bda1.9ccc8c",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182.0000953674316,\r
+        "y": 284.0000901222229,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "3ec837a3.d44ab"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6fa38d4.2f92b8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.000503540039,\r
+        "y": 317.00009393692017,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "3f560c20.eb87e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f560c20.eb87e4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1322.2700462341309,\r
+        "y": 317.5547389984131,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "9f9b02e0.fd0698",\r
+                "a7de5d34.00e2d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f9b02e0.fd0698",\r
+        "type": "for",\r
+        "name": "for vidx..service-data.vnfs.vnf_length[]",\r
+        "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1568.2861633300781,\r
+        "y": 324.4286594390869,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "4f46568b.85da18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f46568b.85da18",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1787.6357955932617,\r
+        "y": 323.9687395095825,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "1df151a6.a0431e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1df151a6.a0431e",\r
+        "type": "switchNode",\r
+        "name": "switch vnfid found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1941.7153930664062,\r
+        "y": 323.6788215637207,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "c4b1d74.4447c28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c4b1d74.4447c28",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2117.6675148010254,\r
+        "y": 323.5715036392212,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "fef2ef1a.c2f0e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fef2ef1a.c2f0e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2266.312973022461,\r
+        "y": 311.97913360595703,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "36c7875a.2b36c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36c7875a.2b36c8",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",\r
+        "comments": "",\r
+        "x": 2528.1997680664062,\r
+        "y": 289.32155990600586,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7de5d34.00e2d8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1511.0000228881836,\r
+        "y": 378.99999713897705,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "df068370.3f2368"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df068370.3f2368",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1666.4286499023438,\r
+        "y": 378.5713806152344,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "dd6bf171.b47338"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd6bf171.b47338",\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": 1811.8573913574219,\r
+        "y": 378.71431827545166,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b50086a8.e06b78",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879.0000762939453,\r
+        "y": 391.8890240462497,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "211c79e5.c82526",\r
+                "33c4dba9.adcb6c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "211c79e5.c82526",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.8333702087402,\r
+        "y": 393.0001218589023,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "5a9b43a8.5c8334"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a9b43a8.5c8334",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1338.139762878418,\r
+        "y": 402.3253114493564,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "33c4dba9.adcb6c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1102.8333892822266,\r
+        "y": 443.0001333029941,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            [\r
+                "ff316d.d574c69"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff316d.d574c69",\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": 1262.3331565856934,\r
+        "y": 446.00013234931976,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f9b5f904.311908",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<!--parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />",\r
+        "comments": "",\r
+        "x": 888.0065612792969,\r
+        "y": 451.010439065285,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "afa01bdf.71f67",\r
+        "type": "save",\r
+        "name": "update AnAI - l2vpn.operational-status",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"connectivity\"   \n\t\tkey=\"connectivity.connectivity-id = $vnfId\" >\n<parameter name=\"operational-status\" value=\"PendingDelete\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.0064239501953,\r
+        "y": 597.0105177434161,\r
+        "z": "8ff83d85.25fe1",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 223bb83..385835c 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "8398072c.bb",\r
+        "id": "7d66251e.b82664",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 164.8055419921875,\r
-        "y": 111.47222900390625,\r
-        "z": "227abea9.82942a",\r
+        "x": 113,\r
+        "y": 47,\r
+        "z": "71661d78.a73ff4",\r
         "wires": [\r
             [\r
-                "f7478e4.3f877f"\r
+                "4f798745.7c23f8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "f7478e4.3f877f",\r
+        "id": "4f798745.7c23f8",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 296.0912322998047,\r
-        "y": 160.71033763885498,\r
-        "z": "227abea9.82942a",\r
+        "x": 244.2856903076172,\r
+        "y": 96.23810863494873,\r
+        "z": "71661d78.a73ff4",\r
         "wires": [\r
             [\r
-                "2116c7dc.76a62"\r
+                "1efd944f.808cec"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "2116c7dc.76a62",\r
+        "id": "1efd944f.808cec",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-l2vpn-delete",\r
         "xml": "<method rpc='sotn-vf-operation-l2vpn-delete' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 299.2341613769531,\r
-        "y": 245.472261428833,\r
-        "z": "227abea9.82942a",\r
+        "x": 247.42861938476562,\r
+        "y": 181.00003242492676,\r
+        "z": "71661d78.a73ff4",\r
         "wires": [\r
             [\r
-                "6477dca3.236454"\r
+                "2676cdd4.4c0ad2"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "6477dca3.236454",\r
+        "id": "f7045a47.ec91a8",\r
+        "type": "comment",\r
+        "name": "site-vnf-topology-operation-delete",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 839.9162979125977,\r
+        "y": 108.58639907836914,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2676cdd4.4c0ad2",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 467.23804473876953,\r
+        "y": 336.6666717529297,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "f0919342.f5b18",\r
+                "3e674db0.3066aa",\r
+                "36348cc4.967c94",\r
+                "556d053a.ecf65c",\r
+                "9da386b6.2f7bc8",\r
+                "3d13e6d3.244982",\r
+                "e37c16ee.29bad",\r
+                "3a03f985.f60a36",\r
+                "5d2f33ed.f40a3c",\r
+                "663336cd.33fb4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "556d053a.ecf65c",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 919.6660919189453,\r
+        "y": 254.2611792087555,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "1a39a448.9524cc",\r
+                "db3976bf.5d493"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a39a448.9524cc",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 440.33288192749023,\r
-        "y": 462.54644298553467,\r
-        "z": "227abea9.82942a",\r
+        "x": 1184.3884048461914,\r
+        "y": 236.81680130958557,\r
+        "z": "71661d78.a73ff4",\r
         "wires": [\r
             [\r
-                "ef907cc.c0768"\r
+                "5a4bd76d.294688"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "ef907cc.c0768",\r
+        "id": "5a4bd76d.294688",\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": 1365.3882751464844,\r
+        "y": 231.81667923927307,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "db3976bf.5d493",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1169.8884048461914,\r
+        "y": 288.81676411628723,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "c9f5f464.acb94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9f5f464.acb94",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1341.888111114502,\r
+        "y": 288.8167622089386,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "40524cb7.d8b3cc",\r
+                "f7ed532.06146b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7ed532.06146b",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1516.888282775879,\r
+        "y": 307.81668400764465,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "be1fbab.e3a7448"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36348cc4.967c94",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 890.0550918579102,\r
+        "y": 328.7056429386139,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "cd00c4a5.6199c",\r
+                "b9b69fcf.de09f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd00c4a5.6199c",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1166.8884353637695,\r
+        "y": 331.8167426586151,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "a741ca6a.f08e98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9b69fcf.de09f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1127.8884201049805,\r
+        "y": 377.8167917728424,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "40a415b6.d6dcac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "40a415b6.d6dcac",\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": 1276.3881340026855,\r
+        "y": 376.81677174568176,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9da386b6.2f7bc8",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vnf-topology-operation-input.vnf-information.vnf-id\" value=\"$vnf-topology-operation-input.vnf-information.vnf-id\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 906.388427734375,\r
+        "y": 197.8167588710785,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "40524cb7.d8b3cc",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vnfs.vnf[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1577.3882865905762,\r
+        "y": 243.8166801929474,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "43e325ae.156bcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "43e325ae.156bcc",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1833.3883056640625,\r
+        "y": 243.8166801929474,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "9e9616bd.2cd428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e9616bd.2cd428",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2009.8883590698242,\r
+        "y": 246.8166801929474,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "42ca9813.a6a5e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42ca9813.a6a5e8",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2176.8883743286133,\r
+        "y": 307.8166801929474,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "44e24bd3.4cb9b4",\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": 1822.388298034668,\r
+        "y": 307.81668400764465,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be1fbab.e3a7448",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1684.888298034668,\r
+        "y": 307.81668400764465,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "44e24bd3.4cb9b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0919342.f5b18",\r
+        "type": "set",\r
+        "name": "set vnfId and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='vnf-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'` \" />",\r
+        "comments": "",\r
+        "x": 876.9051132202148,\r
+        "y": 543.3336856365204,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e674db0.3066aa",\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": 708.25,\r
-        "y": 545.0833435058594,\r
-        "z": "227abea9.82942a",\r
+        "x": 833.0162658691406,\r
+        "y": 620.8892447948456,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a741ca6a.f08e98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1362.1947937011719,\r
+        "y": 339.14194798469543,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d13e6d3.244982",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 859.0000839233398,\r
+        "y": 379.00007796287537,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e37c16ee.29bad",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vnfs.vnf[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 883.0000686645508,\r
+        "y": 421.0000765323639,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "fe111823.451958"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe111823.451958",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1144.000144958496,\r
+        "y": 425.00011134147644,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "b1807c80.f455e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1807c80.f455e8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1336.0000915527344,\r
+        "y": 434.00015568733215,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "c1cf5e92.b6dff8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1cf5e92.b6dff8",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1522.0001068115234,\r
+        "y": 418.0000422000885,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "4f7d8dc5.1b171c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f7d8dc5.1b171c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1673.0000305175781,\r
+        "y": 419.0000784397125,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            [\r
+                "e4e48378.71222",\r
+                "644d0d16.d332c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4e48378.71222",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1840.0001983642578,\r
+        "y": 393.00026202201843,\r
+        "z": "71661d78.a73ff4",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "644d0d16.d332c4",\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": 1860.0001258850098,\r
+        "y": 450.0001976490021,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a03f985.f60a36",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 851.1014823913574,\r
+        "y": 464.804429769516,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d2f33ed.f40a3c",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$prop.vnfidxLen].\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 881.0002517700195,\r
+        "y": 503.00021290779114,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "663336cd.33fb4",\r
+        "type": "save",\r
+        "name": "delete AnAI - l2vpn.operational-status",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"connectivity\"   \n\t\tkey=\"connectivity.connectivity-id = $vnfId\" >\n<parameter name=\"operational-status\" value=\"PendingDelete\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 938.0066452026367,\r
+        "y": 580.0106251239777,\r
+        "z": "71661d78.a73ff4",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 4d9aad4..81ac687 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "b87fb992.37671",\r
+        "id": "fb32b655.b185b8",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 179.8055419921875,\r
-        "y": 128.13888549804688,\r
-        "z": "28baf2a.ead510e",\r
+        "x": 97,\r
+        "y": 26,\r
+        "z": "84e7e3f2.6b184",\r
         "wires": [\r
             [\r
-                "527522f9.ff69e4"\r
+                "84e0c1e1.45193"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "527522f9.ff69e4",\r
+        "id": "84e0c1e1.45193",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 311.0912322998047,\r
-        "y": 177.3769941329956,\r
-        "z": "28baf2a.ead510e",\r
+        "x": 228.2856903076172,\r
+        "y": 75.23810863494873,\r
+        "z": "84e7e3f2.6b184",\r
         "wires": [\r
             [\r
-                "74e85c6a.58678c"\r
+                "45da7482.2ad22c"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "74e85c6a.58678c",\r
+        "id": "45da7482.2ad22c",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-uni-activate",\r
         "xml": "<method rpc='sotn-vf-operation-uni-activate' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 314.2341613769531,\r
-        "y": 262.13891792297363,\r
-        "z": "28baf2a.ead510e",\r
+        "x": 231.42861938476562,\r
+        "y": 160.00003242492676,\r
+        "z": "84e7e3f2.6b184",\r
         "wires": [\r
             [\r
-                "ae007ab1.699328"\r
+                "edcc85d8.9d3d28"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "ae007ab1.699328",\r
+        "id": "2c9ee1fb.c2a40e",\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": 703.9959564208984,\r
+        "y": 340.99998915195465,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "a85389a5.eba5b8",\r
+                "b56c9993.d26ec8",\r
+                "d2286cfd.202a6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "edcc85d8.9d3d28",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 322.6626205444336,\r
+        "y": 445.66670763492584,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "2c9ee1fb.c2a40e",\r
+                "fa8ab78.8a0bc48",\r
+                "83723db3.8501b",\r
+                "943ab36c.4be4",\r
+                "56a2543.f406bac",\r
+                "7638ccf.06d4134",\r
+                "a53f3f0c.46a7a",\r
+                "c42e922f.1abaa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83723db3.8501b",\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": 669.0273170471191,\r
+        "y": 211.269144654274,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "b6860278.b7c3a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa8ab78.8a0bc48",\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": 673.9959716796875,\r
+        "y": 150.00001394748688,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "4d78f4ba.adcf7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d78f4ba.adcf7c",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 853.9959526062012,\r
+        "y": 149.0000034570694,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "83071b4.81cf8e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83071b4.81cf8e8",\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": 1003.4246788024902,\r
+        "y": 150.14292109012604,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6860278.b7c3a",\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": 891.9959678649902,\r
+        "y": 212.00000965595245,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "a420300f.fcc77"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a420300f.fcc77",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1106.9959526062012,\r
+        "y": 210.0000034570694,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "61f2940f.e1eccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ebe199d.38e1f8",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1447.9959716796875,\r
+        "y": 178,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b56c9993.d26ec8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 455.33288192749023,\r
-        "y": 479.2130994796753,\r
-        "z": "28baf2a.ead510e",\r
+        "x": 963.9959716796875,\r
+        "y": 365,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "f74bba14.018558"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a85389a5.eba5b8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 960.9959716796875,\r
+        "y": 293,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "f74bba14.018558"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f74bba14.018558",\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": 1132.9959716796875,\r
+        "y": 327,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d2286cfd.202a6",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925.9959487915039,\r
+        "y": 435.9999986886978,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "1141c0c2.8446df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd0fe0b8.95c3d",\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": 1279.995964050293,\r
+        "y": 434.0000126361847,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1141c0c2.8446df",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1086.995994567871,\r
+        "y": 432.99999010562897,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "bd0fe0b8.95c3d",\r
+                "7d4d8763.0f4718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d4d8763.0f4718",\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": 1298.9959335327148,\r
+        "y": 486.99998915195465,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "39d7ac61.94fef4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39d7ac61.94fef4",\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": 1541.995948791504,\r
+        "y": 481.9999986886978,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "1b63e74a.2edd39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b63e74a.2edd39",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1739.9959774017334,\r
+        "y": 469.00000536441803,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "21b15a7e.281f96"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21b15a7e.281f96",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1891.995948791504,\r
+        "y": 470.9999986886978,\r
+        "z": "84e7e3f2.6b184",\r
         "wires": [\r
             [\r
-                "da013af.4338448"\r
+                "bfa5b77e.850078",\r
+                "9791123.9d23ff",\r
+                "5999c8a4.0563c8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "da013af.4338448",\r
+        "id": "bfa5b77e.850078",\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": 2119.996063232422,\r
+        "y": 413.0000025033951,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9791123.9d23ff",\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": 2123.996063232422,\r
+        "y": 467.0000025033951,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "943ab36c.4be4",\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": 723.25,\r
-        "y": 561.75,\r
-        "z": "28baf2a.ead510e",\r
+        "x": 597.9961547851562,\r
+        "y": 1640.501220703125,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5999c8a4.0563c8",\r
+        "type": "call",\r
+        "name": "call sotn-get-vf-module-uni-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": 2154.45108795166,\r
+        "y": 518.0104948282242,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "56a2543.f406bac",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.9959564208984,\r
+        "y": 280.5039049386978,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "61f2940f.e1eccc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1270,\r
+        "y": 220,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "5ebe199d.38e1f8",\r
+                "97c5cadc.46fd38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "97c5cadc.46fd38",\r
+        "type": "set",\r
+        "name": "set tmp.vnf-id",\r
+        "xml": "<set>\n<parameter name='tmp.vnf-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n",\r
+        "comments": "",\r
+        "x": 1455,\r
+        "y": 235,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7638ccf.06d4134",\r
+        "type": "get-resource",\r
+        "name": "get-resource generic-vnf",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"generic-vnf\" \n\t\tkey=\"'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.generic-vnf' local-only='false' >\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 603,\r
+        "y": 552,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "6951bd2b.63d4e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6951bd2b.63d4e4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 806,\r
+        "y": 547,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "c98c270d.88dcd8",\r
+                "b05ba34b.acc5f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c98c270d.88dcd8",\r
+        "type": "for",\r
+        "name": "for each relationship in gen-vnf",\r
+        "xml": "<for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.generic-vnf.relationship-list.relationship_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1018,\r
+        "y": 550,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "b3a5598e.a41448"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3a5598e.a41448",\r
+        "type": "switchNode",\r
+        "name": "switch related-to",\r
+        "xml": "<switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1244,\r
+        "y": 554,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "4e594d45.0e1984"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e594d45.0e1984",\r
+        "type": "outcome",\r
+        "name": "uni",\r
+        "xml": "<outcome value='uni'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433.285888671875,\r
+        "y": 562.82177734375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "3e26d342.6174fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e26d342.6174fc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1608.117431640625,\r
+        "y": 565.3402709960938,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "8d7c01bb.0e5ea",\r
+                "db36cb56.ed0998",\r
+                "9f8707c2.df5a68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d7c01bb.0e5ea",\r
+        "type": "set",\r
+        "name": "set tmp.unis.uni[].tpId",\r
+        "xml": "<set>\n<parameter name='`tmp.unis.uni[$vidx].tpId`' value=\"`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1825.117431640625,\r
+        "y": 563.3402709960938,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b05ba34b.acc5f",\r
+        "type": "switchNode",\r
+        "name": "switch number of unis  < 2",\r
+        "xml": "<switch test='`$tmp.unis.uni_length < 2`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 993,\r
+        "y": 714,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "9ad7b18c.9e2db"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11a2c1f3.2f15de",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name='' value='' />\n",\r
+        "comments": "",\r
+        "x": 1401,\r
+        "y": 716,\r
+        "z": "84e7e3f2.6b184",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "9ad7b18c.9e2db",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209,\r
+        "y": 715,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "11a2c1f3.2f15de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db36cb56.ed0998",\r
+        "type": "execute",\r
+        "name": "execute split tpId to get pnf-name",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`tmp.unis.uni[$vidx].tpId`'/>\n<parameter name=\"regex\" value=\"nodeId\"/>\n<parameter name=\"tmp.unis.uni[$vidx].pnf-name\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1864,\r
+        "y": 638,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "51f60529.b960dc",\r
+                "bd9180ed.9d6e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd9180ed.9d6e6",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2087,\r
+        "y": 593,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "91a82817.a8c858"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51f60529.b960dc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2089,\r
+        "y": 657,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "4dddc62b.304038"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91a82817.a8c858",\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": 2309,\r
+        "y": 595,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4dddc62b.304038",\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": 2248,\r
+        "y": 676,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9f8707c2.df5a68",\r
+        "type": "get-resource",\r
+        "name": "get-resource pnf",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"pnf\" \n\t\tkey=\"`pnf.pnf-name = $tmp.unis.uni[$vidx].pnf-name AND depth = '0'`\"\n        pfx='tmp.aai.pnf' local-only='false' >\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1790,\r
+        "y": 731,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "7f07585.a7576a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f07585.a7576a8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1990.5,\r
+        "y": 749,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "2018b1.62ea675"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2018b1.62ea675",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2153.88232421875,\r
+        "y": 783.6556396484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "a36c84bd.45b6f8",\r
+                "e1179ec.bdf3f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1179ec.bdf3f6",\r
+        "type": "set",\r
+        "name": "set node-id",\r
+        "xml": "<set>\n<parameter name='`$tmp.unis.uni[$vidx].node-id`' value=\"`$tmp.aai.pnf.pnf-id`\" />\n",\r
+        "comments": "",\r
+        "x": 2390,\r
+        "y": 734,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a36c84bd.45b6f8",\r
+        "type": "for",\r
+        "name": "for each relationship in pnf",\r
+        "xml": "<for silentFailure='true' index='ridx' start='0' end='`$tmp.aai.pnf.relationship-list.relationship_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2345.882568359375,\r
+        "y": 823.6597290039062,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "c153c531.99c278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c153c531.99c278",\r
+        "type": "switchNode",\r
+        "name": "switch related-to",\r
+        "xml": "<switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2571.882568359375,\r
+        "y": 823.6597290039062,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "ebf22767.e2b168",\r
+                "17f20ef3.96aa91"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ebf22767.e2b168",\r
+        "type": "outcome",\r
+        "name": "network-resource",\r
+        "xml": "<outcome value='network-resource'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2770,\r
+        "y": 936,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "15e83210.af0fbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15e83210.af0fbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2983,\r
+        "y": 937,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "7354a06a.e0a7c",\r
+                "82642fbf.6f96f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7354a06a.e0a7c",\r
+        "type": "set",\r
+        "name": "set network-id",\r
+        "xml": "<set>\n<parameter name='`$tmp.unis.uni[$vidx].network-id`' value=\"`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`\" />\n",\r
+        "comments": "",\r
+        "x": 3218,\r
+        "y": 867,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "82642fbf.6f96f",\r
+        "type": "get-resource",\r
+        "name": "get-resource network-resource",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"network-resource\" \n\t\tkey=\"`network-resource.network-id = $tmp.unis.uni[$vidx].network-id AND depth = '0'`\"\n        pfx='tmp.aai.network-resource' local-only='false' >\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3226,\r
+        "y": 948,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "dfffc86d.811b38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dfffc86d.811b38",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3458.5,\r
+        "y": 944,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "c2666ab.b105298"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2666ab.b105298",\r
+        "type": "set",\r
+        "name": "set network-id, topo-id, client-id, etc",\r
+        "xml": "<set>\n<parameter name=\"`$tmp.unis.uni[$vidx].network-id`\" value=\"`$tmp.aai.network-resource.network-id`\" />\n<parameter name=\"`$tmp.unis.uni[$vidx].provider-id`\" value=\"`$tmp.aai.network-resource.provider-id`\" />\n<parameter name=\"`$tmp.unis.uni[$vidx].client-id`\" value=\"`$tmp.aai.network-resource.client-id`\" />\n<parameter name=\"`$tmp.unis.uni[$vidx].te-topo-id`\" value=\"`$tmp.aai.network-resource.te-topo-id`\" />\n<parameter name=\"`$tmp.unis.uni[$vidx].network-type`\" value=\"`$tmp.aai.network-resource.network-type`\" />\n\n\n",\r
+        "comments": "",\r
+        "x": 3727,\r
+        "y": 943,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a53f3f0c.46a7a",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sotn-get-otn-tunnel-path-from-oof",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782,\r
+        "y": 861,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "17f20ef3.96aa91",\r
+        "type": "outcome",\r
+        "name": "thirdparty-controller",\r
+        "xml": "<outcome value='thirdparty-controller'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2797,\r
+        "y": 801,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "a15f639f.76c57"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a15f639f.76c57",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 3010,\r
+        "y": 802,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "94cd4673.029758"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "94cd4673.029758",\r
+        "type": "set",\r
+        "name": "set thirdparty-sdnc-id",\r
+        "xml": "<set>\n<parameter name='`$tmp.unis.uni[$vidx].thirdparty-sdnc-id`' value=\"`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`\" />\n",\r
+        "comments": "",\r
+        "x": 3237,\r
+        "y": 801,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5c2c3ff1.fc693",\r
+        "type": "comment",\r
+        "name": "when we reach here, we have 2 UNIs, so do ACTN operations",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 795,\r
+        "y": 807,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c42e922f.1abaa",\r
+        "type": "for",\r
+        "name": "for vidx..unis.uni_length[]",\r
+        "xml": "<for index='vidx' start='0' end='`$tmp.unis.uni_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 648,\r
+        "y": 1053,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "1cfcb3ef.b12bfc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70ff03f1.58983c",\r
+        "type": "set",\r
+        "name": "set oof.vpn",\r
+        "xml": "<set>\n<parameter name='oof.vpn.' value='`$tmp.unis.uni[$vidx].`' />",\r
+        "comments": "",\r
+        "x": 1074.0272216796875,\r
+        "y": 992.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fcf606f6.efb428",\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": 1554.0272216796875,\r
+        "y": 1105.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18d11459.dc281c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1384.0272216796875,\r
+        "y": 1105.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "fcf606f6.efb428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "71856f9f.960fe",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1388.0272216796875,\r
+        "y": 1145.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "48d45483.15892c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7967d43.ee995",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1380.0272216796875,\r
+        "y": 1185.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "8a5a416f.cf1fa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "48d45483.15892c",\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": 1538.0272216796875,\r
+        "y": 1145.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8a5a416f.cf1fa",\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": 1538.0272216796875,\r
+        "y": 1185.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96b7c9e8.a8e308",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1384.0272216796875,\r
+        "y": 1225.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "f7f59d76.ec927"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f0248ba.15c698",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1380.0272216796875,\r
+        "y": 1265.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "66fab2ba.c9700c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66fab2ba.c9700c",\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": 1538.0272216796875,\r
+        "y": 1265.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f7f59d76.ec927",\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": 1534.5272216796875,\r
+        "y": 1225.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "98b0b441.82bf68",\r
+        "type": "comment",\r
+        "name": "Get controller info and send request",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1146.0272216796875,\r
+        "y": 1105.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "82fd1dc6.67489",\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 = $oof.vpn.thirdparty-sdnc-id 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": 1138.0272216796875,\r
+        "y": 1145.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "18d11459.dc281c",\r
+                "71856f9f.960fe",\r
+                "f7967d43.ee995"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8222512c.b2b7f",\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": 1150.5272216796875,\r
+        "y": 1245.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "96b7c9e8.a8e308",\r
+                "9f0248ba.15c698"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21e9ada7.141962",\r
+        "type": "comment",\r
+        "name": "call domain controller to  create underlay OTN tunnel",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1199.5272216796875,\r
+        "y": 1330.49560546875,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47386aa5.9bb954",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sotn-create-otn-tunnel",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-create-otn-tunnel' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1219.5272216796875,\r
+        "y": 1374.49560546875,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1cfcb3ef.b12bfc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 801.5272216796875,\r
+        "y": 1385.0407409667969,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "82fd1dc6.67489",\r
+                "70ff03f1.58983c",\r
+                "e0cd8c60.4c6de",\r
+                "8b8f2197.efea1",\r
+                "8222512c.b2b7f",\r
+                "518a2698.5bffd8",\r
+                "47386aa5.9bb954"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbbfd612.33a888",\r
+        "type": "comment",\r
+        "name": "Loop through UNIs and configure domain controllers",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 736.5003662109375,\r
+        "y": 1193.5003662109375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e0cd8c60.4c6de",\r
+        "type": "set",\r
+        "name": "set sotn_value",\r
+        "xml": "<set>\n<parameter name='ietf-eth-tran-service_etht-svc.globals.etht-svc-bandwidth-profiles[0].bandwidth-profile-type' value='ietf-eth-tran-types:mef-10-bwp' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-type' value='ietf-eth-tran-types:p2p-svc' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].admin-status' value='ietf-te-types:tunnel-state-up' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-port-id' value='0' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].service-classification-type' value='ietf-eth-tran-types:port-classification' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-port-id' value='1' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].service-classification-type' value='ietf-eth-tran-types:port-classification' />",\r
+        "comments": "",\r
+        "x": 1065.52734375,\r
+        "y": 1453.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8b8f2197.efea1",\r
+        "type": "set",\r
+        "name": "set attachment_param",\r
+        "xml": "<set>\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-provider-id' value='`$oof.vpn.access-provider-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-client-id' value='`$oof.vpn.access-client-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-topology-id' value='`$oof.vpn.access-topology-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-node-id' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-ltp-id' value='`$oof.vpn.src-access-ltp-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-node-id' value='`$oof.vpn.access-node-id`' />\n<parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-ltp-id' value='`$oof.vpn.dst-access-ltp-id`' />\n\n",\r
+        "comments": "",\r
+        "x": 1090.02734375,\r
+        "y": 1493.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "518a2698.5bffd8",\r
+        "type": "switchNode",\r
+        "name": "switch prop.sdncRestApi.token_id",\r
+        "xml": "<switch test=\"`$prop.sdncRestApi.token_id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.52734375,\r
+        "y": 1533.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "7015f66c.94fd18",\r
+                "82d35da9.66aaf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd59a6d0.4b0dc8",\r
+        "type": "execute",\r
+        "name": "execute RestconfApiCallNode Create ethernet Service with token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1642.52734375,\r
+        "y": 1553.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "f3736e9e.60052",\r
+                "c00d7e66.d88b7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3736e9e.60052",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1986.02734375,\r
+        "y": 1553.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "113a662f.cf308a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "113a662f.cf308a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2143.52734375,\r
+        "y": 1553.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9be7bcfb.b7fdc",\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 rest api\" />\n",\r
+        "comments": "",\r
+        "x": 2140.02734375,\r
+        "y": 1513.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c00d7e66.d88b7",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1982.02734375,\r
+        "y": 1513.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "9be7bcfb.b7fdc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7015f66c.94fd18",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1338.3711738586426,\r
+        "y": 1513.162670135498,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "d88a1a72.f911d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82d35da9.66aaf",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1342.02734375,\r
+        "y": 1553.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "dd59a6d0.4b0dc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d88a1a72.f911d8",\r
+        "type": "execute",\r
+        "name": "execute RestconfApiCallNode Create ethernet Service without token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1652.52734375,\r
+        "y": 1513.040771484375,\r
+        "z": "84e7e3f2.6b184",\r
+        "wires": [\r
+            [\r
+                "c00d7e66.d88b7",\r
+                "f3736e9e.60052"\r
+            ]\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index e137522..f259816 100644 (file)
@@ -1,37 +1,20 @@
 [\r
     {\r
-        "id": "5567fb41.3853ac",\r
-        "type": "block",\r
-        "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
-        "comments": "",\r
-        "outputs": 1,\r
-        "x": 442.02733993530273,\r
-        "y": 433.74087047576904,\r
-        "z": "6cf3d2be.22379c",\r
-        "wires": [\r
-            [\r
-                "a47debf4.9031c"\r
-            ]\r
-        ]\r
-    },\r
-    {\r
-        "id": "67dcf0d.95d1c1",\r
+        "id": "e9f5d8f7.e285a8",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 166.5,\r
-        "y": 82.66665649414062,\r
-        "z": "6cf3d2be.22379c",\r
+        "x": 83.47266006469727,\r
+        "y": 26,\r
+        "z": "8abb02c9.ea909",\r
         "wires": [\r
             [\r
-                "13cbcd0e.cde623"\r
+                "f361420f.d2dd5"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "13cbcd0e.cde623",\r
+        "id": "f361420f.d2dd5",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 297.7856903076172,\r
-        "y": 131.90476512908936,\r
-        "z": "6cf3d2be.22379c",\r
+        "x": 214.75835037231445,\r
+        "y": 75.23810863494873,\r
+        "z": "8abb02c9.ea909",\r
         "wires": [\r
             [\r
-                "90d8ef48.9bbbb8"\r
+                "83b54aea.5a2e08"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "90d8ef48.9bbbb8",\r
+        "id": "83b54aea.5a2e08",\r
         "type": "method",\r
         "name": "method sotn-vf-operation-uni-create",\r
         "xml": "<method rpc='sotn-vf-operation-uni-create' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 300.9286193847656,\r
-        "y": 216.66668891906738,\r
-        "z": "6cf3d2be.22379c",\r
+        "x": 217.9012794494629,\r
+        "y": 160.00003242492676,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "d23ea373.2facb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "129ae0d2.67909f",\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": 592,\r
+        "y": 45,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "4518c55e.2af6cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4518c55e.2af6cc",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.6666793823242,\r
+        "y": 44.33329772949219,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "49f6673c.896c38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49f6673c.896c38",\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": 960.3333053588867,\r
+        "y": 44.33329772949219,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "344a6d66.006ae2",\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": 581.5794200897217,\r
+        "y": 99.50003504753113,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "b740b835.934dd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b740b835.934dd8",\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": 832.5795154571533,\r
+        "y": 95.16665554046631,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "7d8c54e9.05fcdc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d8c54e9.05fcdc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1050.9128322601318,\r
+        "y": 97.1666374206543,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "4090d448.987d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4090d448.987d9c",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1204.2460041046143,\r
+        "y": 97.16665840148926,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d6f734d6.542738",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-index",\r
+        "xml": "<switch test='`$vnf-index`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 595.579439163208,\r
+        "y": 160.5000331401825,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "cc5e7b73.313338"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc5e7b73.313338",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 757.5794849395752,\r
+        "y": 159.50003218650818,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "d5e799c5.aa66e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5e799c5.aa66e8",\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 id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 906.8295764923096,\r
+        "y": 157.27790999412537,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2e3b155c.1acdba",\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": 630.2500219345093,\r
+        "y": 221.99999403953552,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "d6b8c302.00cb5",\r
+                "74fd2b9a.39bbc4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6b8c302.00cb5",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.2500324249268,\r
+        "y": 197.99999117851257,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "b130c62a.6d5b28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74fd2b9a.39bbc4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.2500324249268,\r
+        "y": 237.99999117851257,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "aa20e5dd.34f068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b130c62a.6d5b28",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1003.7500324249268,\r
+        "y": 197.99999117851257,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aa20e5dd.34f068",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1005.6070766448975,\r
+        "y": 237.93650317192078,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "290ec3b5.b78dec",\r
+                "ba0b306b.1384c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba0b306b.1384c",\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": 1158.3055515289307,\r
+        "y": 207.55560186458752,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "290ec3b5.b78dec",\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": 1214.7340564727783,\r
+        "y": 260.7777316570282,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "f5468be4.2d7768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55b24f6b.1c68",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1438.384786605835,\r
+        "y": 219.03178906440735,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f5468be4.2d7768",\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": 1490.0197772979736,\r
+        "y": 260.3492343425751,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "416b188c.9635e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "416b188c.9635e8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1390.7499752044678,\r
+        "y": 318.9206655025482,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "5ff9d421.bc0c2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ff9d421.bc0c2c",\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": 1538.500078201294,\r
+        "y": 318.7778575713746,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a3005c7c.22f1c",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 674.8297939300537,\r
+        "y": 294.8294517993927,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c2f9b109.0e45",\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": 636.8295917510986,\r
+        "y": 338.16278433799744,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "c2930fc2.e5909"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2930fc2.e5909",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.6079349517822,\r
+        "y": 335.71836829185486,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "d1ed645d.aa3a78",\r
+                "6dcf8b92.c77424"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1ed645d.aa3a78",\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": 1047.8641376495361,\r
+        "y": 313.46650671958923,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6dcf8b92.c77424",\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": 1017.3085651397705,\r
+        "y": 350.46662306785583,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d23ea373.2facb",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 290.5794315338135,\r
+        "y": 355.4961154460907,\r
+        "z": "8abb02c9.ea909",\r
         "wires": [\r
             [\r
-                "5567fb41.3853ac"\r
+                "c2f9b109.0e45",\r
+                "129ae0d2.67909f",\r
+                "2e3b155c.1acdba",\r
+                "a11f77d.859bf88",\r
+                "7c53c20f.68b9dc",\r
+                "42215efb.1d8e4",\r
+                "91211121.8f53",\r
+                "d001c737.a47218",\r
+                "b74ff3ee.b1d98",\r
+                "344a6d66.006ae2",\r
+                "d6f734d6.542738",\r
+                "3cca5aeb.576896",\r
+                "6ba0a91d.74fdb8",\r
+                "c0fe8566.aad758",\r
+                "3368b1eb.e464fe",\r
+                "29fa2ed2.416422"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "a47debf4.9031c",\r
+        "id": "d001c737.a47218",\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": 709.9444580078125,\r
-        "y": 516.2777709960938,\r
-        "z": "6cf3d2be.22379c",\r
+        "x": 577.8019104003906,\r
+        "y": 893.00732421875,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "91211121.8f53",\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[$tmp.relationship_length].related-to`\" value=\"uni\" />\n<parameter name=\"`relationship-list.relationship[$tmp.relationship_length].related-link`\" value=\"`'/network/unis/uni/' + $prop.vf-id`\" />\n<parameter name=\"`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-key`\" value=\"id\" />\n<parameter name=\"`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-value`\" value=\"`$prop.vf-id`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633.0794067382812,\r
+        "y": 851.83349609375,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "42215efb.1d8e4",\r
+        "type": "save",\r
+        "name": "save uni resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='uni' \n      key='uni.id = $prop.vf-id' >\n<parameter name=\"id\" value=\"`$prop.vf-id`\" />\n<parameter name=\"tpId\" value='`$prop.uni.tpId`' />\n<parameter name='cVLAN' value='`$prop.uni.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-uuid`' />\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.vf-id + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 615.0794677734375,\r
+        "y": 747.83349609375,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b74ff3ee.b1d98",\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`' />\n",\r
+        "comments": "",\r
+        "x": 632.579439163208,\r
+        "y": 698.5000331401825,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c53c20f.68b9dc",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-id' value='`$prop.vf-id`'/> \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": 616.079475402832,\r
+        "y": 656.3335154056549,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a11f77d.859bf88",\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.vf-id`' />\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": 627.9325504302979,\r
+        "y": 604.8296692371368,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c0fe8566.aad758",\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": 608,\r
+        "y": 497,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3cca5aeb.576896",\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": 614.9995880126953,\r
+        "y": 391.9912657737732,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6ba0a91d.74fdb8",\r
+        "type": "call",\r
+        "name": "call sotn-get-vf-module-uni-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-vf-module-uni-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 653.8132629394531,\r
+        "y": 444.83709144592285,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3368b1eb.e464fe",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vf-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 606.8132781982422,\r
+        "y": 553.3409690856934,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "29fa2ed2.416422",\r
+        "type": "get-resource",\r
+        "name": "get-resource generic-vnf",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"generic-vnf\" \n\t\tkey=\"'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n\t\tAND depth = '0'\"\n        pfx='tmp.aai.generic-vnf' local-only='false' >\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 605,\r
+        "y": 803,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "5c744e64.d3743"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c744e64.d3743",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808,\r
+        "y": 798,\r
+        "z": "8abb02c9.ea909",\r
+        "wires": [\r
+            [\r
+                "79532ac9.38abe4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "79532ac9.38abe4",\r
+        "type": "set",\r
+        "name": "set tmp.relationship_length",\r
+        "xml": "<set>\n<parameter name=\"tmp.relationship_length\" value='`$tmp.aai.generic-vnf.relationship-list.relation_length`'/>\n",\r
+        "comments": "",\r
+        "x": 991,\r
+        "y": 795,\r
+        "z": "8abb02c9.ea909",\r
         "wires": []\r
     }\r
 ]
\ No newline at end of file
index 6b71cf5..9730d51 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "8e70cbab.9e762",\r
+        "id": "f8944be3.096ab8",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 192.56666564941406,\r
-        "y": 127.56666564941406,\r
-        "z": "cee6034b.da01e8",\r
+        "x": 111,\r
+        "y": 56,\r
+        "z": "9dcfec88.5f292",\r
         "wires": [\r
             [\r
-                "a562bec1.5c6bb"\r
+                "68420034.5c6d98"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "a562bec1.5c6bb",\r
+        "id": "68420034.5c6d98",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 323.85235595703125,\r
-        "y": 176.8047742843628,\r
-        "z": "cee6034b.da01e8",\r
+        "x": 242.2856903076172,\r
+        "y": 105.23810863494873,\r
+        "z": "9dcfec88.5f292",\r
         "wires": [\r
             [\r
-                "bd2e1e6.b1131e"\r
+                "9e33642a.9ab6b8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "bd2e1e6.b1131e",\r
+        "id": "9e33642a.9ab6b8",\r
         "type": "method",\r
         "name": "method sotn-vnf-topology-operation-underlay-activate",\r
         "xml": "<method rpc='sotn-vnf-topology-operation-underlay-activate' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 326.9952850341797,\r
-        "y": 261.5666980743408,\r
-        "z": "cee6034b.da01e8",\r
+        "x": 245.42861938476562,\r
+        "y": 190.00003242492676,\r
+        "z": "9dcfec88.5f292",\r
         "wires": [\r
             [\r
-                "948a9c7.119abe"\r
+                "f3fc4610.118298"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "948a9c7.119abe",\r
+        "id": "f3fc4610.118298",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
-        "comments": "",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
         "outputs": 1,\r
-        "x": 468.0940055847168,\r
-        "y": 478.6408796310425,\r
-        "z": "cee6034b.da01e8",\r
+        "x": 395.238037109375,\r
+        "y": 319.6666564941406,\r
+        "z": "9dcfec88.5f292",\r
         "wires": [\r
             [\r
-                "1b5215d4.38c512"\r
+                "321f78ca.ccdc38",\r
+                "47a0d8c5.66ef38",\r
+                "30a9bb6d.ac3de4",\r
+                "470fa21f.c90dac",\r
+                "a9e79f17.0260f",\r
+                "79db1524.d2b97c",\r
+                "47e6b5ed.41cf1c"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "1b5215d4.38c512",\r
+        "id": "321f78ca.ccdc38",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to Active",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 738.3849563598633,\r
+        "y": 556.6705458434299,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47a0d8c5.66ef38",\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": 721.566650390625,\r
-        "y": 589.566650390625,\r
-        "z": "cee6034b.da01e8",\r
+        "x": 658.571647644043,\r
+        "y": 682.5970833571628,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30a9bb6d.ac3de4",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 744.5716018676758,\r
+        "y": 504.5968001158908,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "470fa21f.c90dac",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 753,\r
+        "y": 259,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "bde1ee44.7683d",\r
+                "2e788e91.c6a1c2",\r
+                "946699e9.3b5b1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "946699e9.3b5b1",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1145.968994140625,\r
+        "y": 224.96875,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "5b4e6761.75d918"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b4e6761.75d918",\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": 1300.7778816223145,\r
+        "y": 243.889018535614,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bde1ee44.7683d",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1139.0001335144043,\r
+        "y": 264.00007152557373,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "5b4e6761.75d918"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2e788e91.c6a1c2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1132.0005416870117,\r
+        "y": 297.000075340271,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "ebf17a44.2210a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ebf17a44.2210a8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1279.2700843811035,\r
+        "y": 297.5547204017639,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "e3ab2fd7.ebbf08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3ab2fd7.ebbf08",\r
+        "type": "for",\r
+        "name": "for vidx..service-data.vnfs.vnf_length[]",\r
+        "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1525.2862014770508,\r
+        "y": 304.42864084243774,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "18572251.98d83e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "18572251.98d83e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1744.6358337402344,\r
+        "y": 303.96872091293335,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "4a39ea58.7fb184"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a39ea58.7fb184",\r
+        "type": "switchNode",\r
+        "name": "switch vnfid found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1898.715431213379,\r
+        "y": 303.67880296707153,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "669b0d11.8a0824"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "669b0d11.8a0824",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2109.6675758361816,\r
+        "y": 306.571494102478,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "e89a8750.1f8e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e89a8750.1f8e18",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",\r
+        "comments": "",\r
+        "x": 2319.199951171875,\r
+        "y": 308.32159423828125,\r
+        "z": "9dcfec88.5f292",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "a9e79f17.0260f",\r
+        "type": "save",\r
+        "name": "update AnAI - vnf-instance.orchestration-status",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf\"   \n\t\tkey=\"generic-vnf.vnf-id = $vnfId\" >\n<parameter name=\"orchestration-status\" value=\"Active\" />\n<parameter name=\"vnf-type\" value=\"some vnf-type\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763.9999618530273,\r
+        "y": 623.0103714736179,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "79db1524.d2b97c",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />",\r
+        "comments": "",\r
+        "x": 743.0000762939453,\r
+        "y": 454.01033284980804,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47e6b5ed.41cf1c",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 729.7499389648438,\r
+        "y": 359.00390270072967,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "3e2d00ea.214d9",\r
+                "ed7ee56e.298fc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e2d00ea.214d9",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1109.5833320617676,\r
+        "y": 364.1149909766391,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "34b25335.603514"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed7ee56e.298fc8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1087.583351135254,\r
+        "y": 414.1150024207309,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            [\r
+                "4a64950b.2e4a84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a64950b.2e4a84",\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": 1247.0831184387207,\r
+        "y": 417.1150014670566,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "34b25335.603514",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1319.889705657959,\r
+        "y": 375.44016626197845,\r
+        "z": "9dcfec88.5f292",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 2a955c1..fe1d70f 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "6e8e8f80.d43c1",\r
+        "id": "630403de.7c4dfc",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 198.56666564941406,\r
-        "y": 102.56666564941406,\r
-        "z": "fcd8d790.9bb058",\r
+        "x": 130,\r
+        "y": 71,\r
+        "z": "adc7d7d7.2ba55",\r
         "wires": [\r
             [\r
-                "bbddfda2.fd8ca8"\r
+                "80c50a18.8d75c"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "bbddfda2.fd8ca8",\r
+        "id": "80c50a18.8d75c",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 482.85235595703125,\r
-        "y": 163.8047742843628,\r
-        "z": "fcd8d790.9bb058",\r
+        "x": 414.2856903076172,\r
+        "y": 132.23810863494873,\r
+        "z": "adc7d7d7.2ba55",\r
         "wires": [\r
             [\r
-                "b5eed43.f629328"\r
+                "2da8c00e.5874f"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "b5eed43.f629328",\r
+        "id": "2da8c00e.5874f",\r
         "type": "method",\r
         "name": "method sotn-vnf-topology-operation-underlay-create",\r
         "xml": "<method rpc='sotn-vnf-topology-operation-underlay-create' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 488.9952697753906,\r
-        "y": 248.5666961669922,\r
-        "z": "fcd8d790.9bb058",\r
+        "x": 420.42860412597656,\r
+        "y": 217.00003051757812,\r
+        "z": "adc7d7d7.2ba55",\r
         "wires": [\r
             [\r
-                "5debc633.a3523"\r
+                "c4830870.f71be"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "5debc633.a3523",\r
+        "id": "c4830870.f71be",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 790.238037109375,\r
+        "y": 241.66668701171875,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "d09b0487.d267f8",\r
+                "4e465113.c34b3",\r
+                "6d4651f1.9a44a",\r
+                "b93f8dee.f542a",\r
+                "18feff02.43bff9",\r
+                "e9275990.6ea4e",\r
+                "273e48bf.25ca5",\r
+                "4b57404f.d373b8",\r
+                "4822a493.73c54c",\r
+                "567e338.a899b4c",\r
+                "616296b0.6f36",\r
+                "cdecd2ad.ea2458",\r
+                "9b5e953e.0822e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e465113.c34b3",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to Created",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 1212.3848495483398,\r
+        "y": 605.6706197531894,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d09b0487.d267f8",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n",\r
+        "comments": "",\r
+        "x": 1204.238037109375,\r
+        "y": 500.6668718131259,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18feff02.43bff9",\r
+        "type": "execute",\r
+        "name": "execute generate-vnf-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vnf-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1192.5715408325195,\r
+        "y": 450.3334558280185,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "567e338.a899b4c",\r
+        "type": "set",\r
+        "name": "set vnf-index to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\n",\r
+        "comments": "",\r
+        "x": 1203.5716171264648,\r
+        "y": 557.3334596427158,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6d4651f1.9a44a",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1219.5713577270508,\r
+        "y": 120.33337858039886,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "c4be7092.54bab",\r
+                "bebf6c90.f10358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c4be7092.54bab",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1454.285743713379,\r
+        "y": 115.47619893867522,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "55302818.0621f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55302818.0621f",\r
+        "type": "set",\r
+        "name": "set vnf-index=0",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1614.5714492797852,\r
+        "y": 115.4762904914096,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bebf6c90.f10358",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1450.714282989502,\r
+        "y": 148.76203039009124,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "d6fccb24.04a71"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "543cefe7.718a7",\r
+        "type": "set",\r
+        "name": "set vnf-index = vnf_length",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",\r
+        "comments": "",\r
+        "x": 1843.5715255737305,\r
+        "y": 127.04775598365813,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d18757b.848c24",\r
+        "type": "for",\r
+        "name": "for each existing VNF",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1832.000144958496,\r
+        "y": 162.0477278502658,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "8ce4ca7d.ffb71"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6fccb24.04a71",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
         "atomic": "false",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 627.0940055847168,\r
-        "y": 465.6408796310425,\r
-        "z": "fcd8d790.9bb058",\r
+        "x": 1585.428565979004,\r
+        "y": 150.76199987251312,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "543cefe7.718a7",\r
+                "5d18757b.848c24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ce4ca7d.ffb71",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",\r
+        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2225.2858810424805,\r
+        "y": 162.6192119391635,\r
+        "z": "adc7d7d7.2ba55",\r
         "wires": [\r
             [\r
-                "f1ef9959.63e988"\r
+                "46146016.cb5b58"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "f1ef9959.63e988",\r
+        "id": "46146016.cb5b58",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2506.5715827941895,\r
+        "y": 161.1906173499301,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "14fd2dd2.04e2ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fac5d84d.dacdb8",\r
+        "type": "comment",\r
+        "name": "make sure this vnf-id doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2194.428497314453,\r
+        "y": 126.19060399848968,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b93f8dee.f542a",\r
+        "type": "set",\r
+        "name": "set new vnf_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1150.571533203125,\r
+        "y": 398.33343505859375,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9275990.6ea4e",\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": 880.566650390625,\r
-        "y": 576.566650390625,\r
-        "z": "fcd8d790.9bb058",\r
+        "x": 1151.5715026855469,\r
+        "y": 868.5969713004306,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4822a493.73c54c",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list' \n      key='service-instance.service-instance-id = $service-data.service-information.service-instance-id\n         AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id \n         AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"generic-vnf\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/generic-vnfs/generic-vnf/' + $prop.vnf-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"generic-vnf.vnf-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.vnf-id`\" />\n\n\n<!--key='service-instance.service-instance-id = $service-data.service-information.service-instance-id -->\n<!--key='service-instance.service-instance-id = $service-data.service-instance-id -->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1184.2382736206055,\r
+        "y": 817.5968644889072,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "273e48bf.25ca5",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$prop.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 1205.571533203125,\r
+        "y": 646.5968902381137,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14fd2dd2.04e2ea",\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 id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 2635.142951965332,\r
+        "y": 212.19063165504485,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4b57404f.d373b8",\r
+        "type": "save",\r
+        "name": "save AnAI - vnf-instance.orchestration-status",\r
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf\"   \n\t\tkey='generic-vnf.vnf-id = $prop.vnf-id' >\n<parameter name=\"orchestration-status\" value=\"Created\" />\n<parameter name=\"in-maint\" value = \"true\" />\n<parameter name=\"vnf-type\" value='`$prop.vnfName`' />\n<parameter name=\"vnf-name\" value = \"`$prop.vnfName`\"/>\n<parameter name=\"model-invariant-id\" value = \"`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`\"/>\n<parameter name=\"model-version-id\" value = \"`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`\"/>\n<parameter name=\"model-customization-id\" value = \"`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1260.5458374023438,\r
+        "y": 756.2471072943881,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ddf67d5.b35a7",\r
+        "type": "comment",\r
+        "name": "TODO: change AAI models",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1194.1820983886719,\r
+        "y": 715.9743230612949,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb3e5b54.ee7cc8",\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='`$vnf-topology-operation-input.vnf-request-input.vnf-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": 1620.7395858764648,\r
+        "y": 209.75002291519195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a93d9d55.574d98",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1424.483383178711,\r
+        "y": 214.00189593154937,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "eb3e5b54.ee7cc8",\r
+                "34cb35bb.2ef0aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "616296b0.6f36",\r
+        "type": "for",\r
+        "name": "for loop idx - VNF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209.7050399780273,\r
+        "y": 216.44631197769195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "a93d9d55.574d98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdecd2ad.ea2458",\r
+        "type": "set",\r
+        "name": "set vnf-request-input.",\r
+        "xml": "<set>\n<parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 1166.7046737670898,\r
+        "y": 286.77101900894195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "34cb35bb.2ef0aa",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1597.7395858764648,\r
+        "y": 255.75002291519195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b5e953e.0822e8",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1222.7395858764648,\r
+        "y": 338.75002291519195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "42766226.3db64c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42766226.3db64c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1448.9722518920898,\r
+        "y": 337.09377291519195,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "85dff1eb.0e22b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85dff1eb.0e22b8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf name",\r
+        "xml": "<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1605.4722518920898,\r
+        "y": 335.0938339503482,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "2f903a44.280976"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f903a44.280976",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1766.4726181030273,\r
+        "y": 335.09389498550445,\r
+        "z": "adc7d7d7.2ba55",\r
+        "wires": [\r
+            [\r
+                "55b726c2.cd02d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55b726c2.cd02d",\r
+        "type": "set",\r
+        "name": "set vnf name",\r
+        "xml": "<set>\n<parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1924.4727401733398,\r
+        "y": 333.6939316065982,\r
+        "z": "adc7d7d7.2ba55",\r
         "wires": []\r
     }\r
 ]
\ No newline at end of file
index 22f2146..543904d 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "cbc1a13.7b8456",\r
+        "id": "3ad24b85.b3bf64",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 154.56666564941406,\r
-        "y": 94.56666564941406,\r
-        "z": "81a75cb3.dfe96",\r
+        "x": 106,\r
+        "y": 56,\r
+        "z": "1749c920.27afb7",\r
         "wires": [\r
             [\r
-                "58be845c.53f8dc"\r
+                "7476f33b.2d0eb4"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "58be845c.53f8dc",\r
+        "id": "7476f33b.2d0eb4",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 438.85235595703125,\r
-        "y": 155.8047742843628,\r
-        "z": "81a75cb3.dfe96",\r
+        "x": 390.2856903076172,\r
+        "y": 117.23810863494873,\r
+        "z": "1749c920.27afb7",\r
         "wires": [\r
             [\r
-                "1e9f5313.eb2125"\r
+                "7da838c5.7d227"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "1e9f5313.eb2125",\r
+        "id": "7da838c5.7d227",\r
         "type": "method",\r
         "name": "method sotn-vnf-topology-operation-underlay-deactivate",\r
         "xml": "<method rpc='sotn-vnf-topology-operation-underlay-deactivate' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 444.9952697753906,\r
-        "y": 240.5666961669922,\r
-        "z": "81a75cb3.dfe96",\r
+        "x": 396.42860412597656,\r
+        "y": 202.00003051757812,\r
+        "z": "1749c920.27afb7",\r
         "wires": [\r
             [\r
-                "1920f1ef.4bc3e6"\r
+                "a742330d.128a3"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "1920f1ef.4bc3e6",\r
+        "id": "a742330d.128a3",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
-        "comments": "",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
         "outputs": 1,\r
-        "x": 583.0940055847168,\r
-        "y": 457.6408796310425,\r
-        "z": "81a75cb3.dfe96",\r
+        "x": 592.2380447387695,\r
+        "y": 360.66666814964265,\r
+        "z": "1749c920.27afb7",\r
         "wires": [\r
             [\r
-                "7d3f17a8.8dc"\r
+                "dfd1a930.eeb17",\r
+                "b0be94f0.05dfb8",\r
+                "59f78da4.50f2fc",\r
+                "41673fa0.b1a818",\r
+                "cdfb0ad2.8ad0d8",\r
+                "4b93b56d.437c5c",\r
+                "614f37e0.0249a"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "7d3f17a8.8dc",\r
+        "id": "dfd1a930.eeb17",\r
+        "type": "set",\r
+        "name": "set vnf-level-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 1000.3849029541016,\r
+        "y": 509.670627951622,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b0be94f0.05dfb8",\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": 836.566650390625,\r
-        "y": 568.566650390625,\r
-        "z": "81a75cb3.dfe96",\r
+        "x": 926.5716247558594,\r
+        "y": 618.5970582962036,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59f78da4.50f2fc",\r
+        "type": "set",\r
+        "name": "set vnf-index and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name=\"vnf-object-path\" value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` \" />",\r
+        "comments": "",\r
+        "x": 977.5716247558594,\r
+        "y": 465.5968955755234,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "41673fa0.b1a818",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1022.0000610351562,\r
+        "y": 250.00000545661896,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "46f139dc.3ca98",\r
+                "7a6d1b04.564dbc",\r
+                "95730397.a4e998"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95730397.a4e998",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1280.9689559936523,\r
+        "y": 211.96876499336213,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "646213b6.68f42c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "646213b6.68f42c",\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": 1435.7778434753418,\r
+        "y": 230.88903352897614,\r
+        "z": "1749c920.27afb7",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "46f139dc.3ca98",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1274.0000953674316,\r
+        "y": 251.00008651893586,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "646213b6.68f42c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a6d1b04.564dbc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.000503540039,\r
+        "y": 284.0000903336331,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "4e29626e.e0608c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e29626e.e0608c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1414.2700462341309,\r
+        "y": 284.55473539512604,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "530877d0.02663",\r
+                "a9f43f7c.095d3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "530877d0.02663",\r
+        "type": "for",\r
+        "name": "for vidx..service-data.vnfs.vnf_length[]",\r
+        "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1660.2861633300781,\r
+        "y": 291.4286558357999,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "a8e35f93.0e2bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8e35f93.0e2bf",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1879.6357955932617,\r
+        "y": 290.9687359062955,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "370233d.767e7cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "370233d.767e7cc",\r
+        "type": "switchNode",\r
+        "name": "switch vnfid found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2033.7153930664062,\r
+        "y": 290.67881796043366,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "908635e8.5a6bb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "908635e8.5a6bb",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2209.6675148010254,\r
+        "y": 290.57150003593415,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "f0769224.c0af2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0769224.c0af2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2358.312973022461,\r
+        "y": 278.97913000267,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "6bf835a7.6620bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bf835a7.6620bc",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",\r
+        "comments": "",\r
+        "x": 2620.1997680664062,\r
+        "y": 256.3215563027188,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a9f43f7c.095d3",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.0000228881836,\r
+        "y": 345.99999353569,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "b3149be7.2c6a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3149be7.2c6a9",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1758.4286499023438,\r
+        "y": 345.57137701194733,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "4610208d.e47188"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4610208d.e47188",\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": 1903.8573913574219,\r
+        "y": 345.7143146721646,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cdfb0ad2.8ad0d8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.0000762939453,\r
+        "y": 358.88902044296265,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "c03a8f6a.5ba2c",\r
+                "fbd10336.a597a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c03a8f6a.5ba2c",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1216.8333702087402,\r
+        "y": 360.00011825561523,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "442f984.65ce9e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "442f984.65ce9e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1430.139762878418,\r
+        "y": 369.32530784606934,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbd10336.a597a8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1194.8333892822266,\r
+        "y": 410.00012969970703,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            [\r
+                "2dff766b.d66b12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dff766b.d66b12",\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": 1354.3331565856934,\r
+        "y": 413.0001287460327,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4b93b56d.437c5c",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<!--parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />",\r
+        "comments": "",\r
+        "x": 980.0065612792969,\r
+        "y": 418.010435461998,\r
+        "z": "1749c920.27afb7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "614f37e0.0249a",\r
+        "type": "save",\r
+        "name": "update AnAI - vnf-instance.orchestration-status",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf\"   \n\t\tkey=\"generic-vnf.vnf-id = $vnfId\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n<parameter name=\"vnf-type\" value=\"some vnf-type\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1022.0064239501953,\r
+        "y": 564.0105141401291,\r
+        "z": "1749c920.27afb7",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 6610951..be1161f 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "3747de4a.ccc95a",\r
+        "id": "99dfdf6b.5f9318",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 192.56666564941406,\r
-        "y": 124.56666564941406,\r
-        "z": "6d4d0934.24831",\r
+        "x": 99,\r
+        "y": 44,\r
+        "z": "fa25b782.cc03a",\r
         "wires": [\r
             [\r
-                "a6a68d99.1f09a8"\r
+                "92759b22.eb00d"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "a6a68d99.1f09a8",\r
+        "id": "92759b22.eb00d",\r
         "type": "service-logic",\r
         "name": "GENERIC-RESOURCE-API ${project.version}",\r
         "module": "GENERIC-RESOURCE-API",\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": 476.85235595703125,\r
-        "y": 185.8047742843628,\r
-        "z": "6d4d0934.24831",\r
+        "x": 383.2856903076172,\r
+        "y": 105.23810863494873,\r
+        "z": "fa25b782.cc03a",\r
         "wires": [\r
             [\r
-                "19971b48.295af5"\r
+                "2dedb06e.bc71a8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "19971b48.295af5",\r
+        "id": "2dedb06e.bc71a8",\r
         "type": "method",\r
         "name": "method sotn-vnf-topology-operation-underlay-delete",\r
         "xml": "<method rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 482.9952697753906,\r
-        "y": 270.5666961669922,\r
-        "z": "6d4d0934.24831",\r
+        "x": 389.42860412597656,\r
+        "y": 190.00003051757812,\r
+        "z": "fa25b782.cc03a",\r
         "wires": [\r
             [\r
-                "d89b2a32.f1b858"\r
+                "97c9b256.2d5028"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "d89b2a32.f1b858",\r
+        "id": "9d9a5f2a.b67c4",\r
+        "type": "comment",\r
+        "name": "site-vnf-topology-operation-delete",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 961.9162979125977,\r
+        "y": 111.58639907836914,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "97c9b256.2d5028",\r
         "type": "block",\r
         "name": "block : atomic",\r
-        "xml": "<block atomic=\"true\">\n",\r
-        "atomic": "false",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 589.2380447387695,\r
+        "y": 339.6666717529297,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "26acbc94.464644",\r
+                "29ca41d0.155d6e",\r
+                "8eccfc5e.058248",\r
+                "74bea299.2fc214",\r
+                "ca45e630.8251e",\r
+                "bd55244d.57f018",\r
+                "f446816e.b70aa8",\r
+                "b3a04e31.994298",\r
+                "de69c0de.2774",\r
+                "145f15a6.badfba"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74bea299.2fc214",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1041.6660919189453,\r
+        "y": 257.2611792087555,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "c81a6b20.3c67a",\r
+                "3105aeca.f2a9f2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c81a6b20.3c67a",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 621.0940055847168,\r
-        "y": 487.6408796310425,\r
-        "z": "6d4d0934.24831",\r
+        "x": 1306.3884048461914,\r
+        "y": 239.81680130958557,\r
+        "z": "fa25b782.cc03a",\r
         "wires": [\r
             [\r
-                "5e754ce4.b92d84"\r
+                "86a36888.63694"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "5e754ce4.b92d84",\r
+        "id": "86a36888.63694",\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": 1487.3882751464844,\r
+        "y": 234.81667923927307,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3105aeca.f2a9f2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1291.8884048461914,\r
+        "y": 291.81676411628723,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "e367ae2f.4837d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e367ae2f.4837d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1463.888111114502,\r
+        "y": 291.8167622089386,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "5a431e2a.3fe42",\r
+                "5859a1a2.5df2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5859a1a2.5df2c8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.888282775879,\r
+        "y": 310.81668400764465,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "fcf67c01.2589c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8eccfc5e.058248",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.0550918579102,\r
+        "y": 331.7056429386139,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "4aaa97b8.591b",\r
+                "ac9c60b4.538be8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4aaa97b8.591b",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1288.8884353637695,\r
+        "y": 334.8167426586151,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "4f3006f4.4a2aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ac9c60b4.538be8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1249.8884201049805,\r
+        "y": 380.8167917728424,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "309ebf7d.9eaeb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309ebf7d.9eaeb",\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": 1398.3881340026855,\r
+        "y": 379.81677174568176,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ca45e630.8251e",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vnf-topology-operation-input.vnf-information.vnf-id\" value=\"$vnf-topology-operation-input.vnf-information.vnf-id\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1028.388427734375,\r
+        "y": 200.8167588710785,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a431e2a.3fe42",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vnfs.vnf[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1699.3882865905762,\r
+        "y": 246.8166801929474,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "aad2af6a.5ca7a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aad2af6a.5ca7a8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1955.3883056640625,\r
+        "y": 246.8166801929474,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "5de2b129.640c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5de2b129.640c08",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2131.888359069824,\r
+        "y": 249.8166801929474,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "46f375ea.217e34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46f375ea.217e34",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2298.8883743286133,\r
+        "y": 310.8166801929474,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "579c1f0d.46de88",\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": 1944.388298034668,\r
+        "y": 310.81668400764465,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fcf67c01.2589c8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1806.888298034668,\r
+        "y": 310.81668400764465,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "579c1f0d.46de88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26acbc94.464644",\r
+        "type": "set",\r
+        "name": "set vnfId and vnf-object-path",\r
+        "xml": "<set>\n<parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='vnf-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'` \" />",\r
+        "comments": "",\r
+        "x": 998.9051132202148,\r
+        "y": 546.3336856365204,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "29ca41d0.155d6e",\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": 874.566650390625,\r
-        "y": 598.566650390625,\r
-        "z": "6d4d0934.24831",\r
+        "x": 955.0162658691406,\r
+        "y": 623.8892447948456,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4f3006f4.4a2aa",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1484.1947937011719,\r
+        "y": 342.14194798469543,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd55244d.57f018",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 981.0000839233398,\r
+        "y": 382.00007796287537,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f446816e.b70aa8",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vnfs.vnf[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1005.0000686645508,\r
+        "y": 424.0000765323639,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "1ab96be7.cabb84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ab96be7.cabb84",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1266.000144958496,\r
+        "y": 428.00011134147644,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "29fae41e.925d84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29fae41e.925d84",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1458.0000915527344,\r
+        "y": 437.00015568733215,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "3df67c89.832674"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3df67c89.832674",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1644.0001068115234,\r
+        "y": 421.0000422000885,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "7d2244a.01d08bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d2244a.01d08bc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1795.0000305175781,\r
+        "y": 422.0000784397125,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            [\r
+                "83093bd6.426818",\r
+                "5e4d811b.25e5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83093bd6.426818",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1962.0001983642578,\r
+        "y": 396.00026202201843,\r
+        "z": "fa25b782.cc03a",\r
         "wires": []\r
+    },\r
+    {\r
+        "id": "5e4d811b.25e5b",\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": 1982.0001258850098,\r
+        "y": 453.0001976490021,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b3a04e31.994298",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 973.1014823913574,\r
+        "y": 467.804429769516,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de69c0de.2774",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$prop.vnfidxLen].\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1003.0002517700195,\r
+        "y": 506.00021290779114,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "145f15a6.badfba",\r
+        "type": "save",\r
+        "name": "delete AnAI - vnf-instance.orchestration-status",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf\"   \n\t\tkey=\"generic-vnf.vnf-id = $vnfId\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n<parameter name=\"vnf-type\" value=\"some vnf-type\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1060.0066452026367,\r
+        "y": 583.0106251239777,\r
+        "z": "fa25b782.cc03a",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index c90222c..ba54f84 100755 (executable)
@@ -268,15 +268,17 @@ GENERIC-RESOURCE-API sdwan-vf-operation-lanport-delete ${project.version} sync
 GENERIC-RESOURCE-API sdwan-get-vf-module-lanport-param ${project.version} sync
 GENERIC-RESOURCE-API sdwan-bandwidth-policy-change ${project.version} sync
 GENERIC-RESOURCE-API send-so-response ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-create ${project.version} sync
 GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-activate ${project.version} sync
+GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-create ${project.version} sync
 GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-deactivate ${project.version} sync
 GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-create ${project.version} sync
+GENERIC-RESOURCE-API sotn-vf-operation-uni-activate ${project.version} sync
+GENERIC-RESOURCE-API sotn-vf-operation-uni-create ${project.version} sync
+GENERIC-RESOURCE-API sotn-vf-operation-uni-deactivate ${project.version} sync
+GENERIC-RESOURCE-API sotn-vf-operation-uni-delete ${project.version} sync
 GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-activate ${project.version} sync
+GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-create ${project.version} sync
 GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-deactivate ${project.version} sync
 GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-delete ${project.version} sync
+GENERIC-RESOURCE-API sotn-get-vf-module-uni-param ${project.version} sync
+
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.xml
new file mode 100644 (file)
index 0000000..4527b78
--- /dev/null
@@ -0,0 +1,125 @@
+<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='sotn-create-otn-tunnel' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$oof.vpn.access-provider-id`'>\r
+                <outcome value='`$domain-A.provider-id`'>\r
+\ 1\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='tmp.otn-domain.' value='`$domain-A.`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='`$domain-B.provider-id`'>\r
+\ 1\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='$tmp.otn-domain.' value='`$domain-B.`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$oof.vpn.access-node-id`'>\r
+                <outcome value='`$oof.vpns[0].access-node-id`'>\r
+\ 1\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$oof.vpn.access-node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$otn-domain.node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].dst-ttp-id' value='`$otn-domain.ttp-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_dst-tpn' value='`$otn-domain.tpn`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$oof.vpn.access-node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$otn-domain.node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='`$oof.vpns[$oof.vpns_length].access-node-id`'>\r
+\ 1\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$oof.vpn.access-node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$otn-domain.node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].src-ttp-id' value='`$otn-domain.ttp-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_src-tpn' value='`$otn-domain.tpn`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$oof.vpn.access-node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$otn-domain.node-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />\r
+                            <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$prop.sdncRestApi.token_id`">\r
+                <outcome value=''>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`" />\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="patch"/>\r
+                        <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />\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
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`" />\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="patch"/>\r
+                        <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />\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 rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.xml
new file mode 100644 (file)
index 0000000..9a86f93
--- /dev/null
@@ -0,0 +1,266 @@
+<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='sotn-get-otn-tunnel-path-from-oof' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`" />\r
+                <parameter name="restapiUrl" value="`$prop.restapi.connection-oof-url`" />\r
+                <parameter name="restapiUser" value="`$prop.oof.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.oof.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="otn-oof"/>\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 OOF api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <for index='vidx' start='0' end='`$otn-oof.otn-links_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='otn-oof.link-name' value='`$otn-oof.solutions[$vidx].`' />\r
+                    </set>\r
+                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="logical-link" \r
+               key="logical-link.link-name = $otn-oof.link-name \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.cross-link' local-only='false' >\r
+                        <outcome value='success'>\r
+                            <switch test='`$tmp.aai.cross-link.link-role`'>\r
+                                <outcome value='cross-domain-link'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.cross-link.src-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[0].relationship-data[0].relationship-value`" />\r
+                                            <parameter name='tmp.cross-link.dst-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[1].relationship-data[0].relationship-value`" />\r
+                                        </set>\r
+                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="p-interface" \r
+               key="p-interface.interface-name = $tmp.src-ltpId \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.src-tp' local-only='false' >\r
+                                            <outcome value='success'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.src-pnf-name' value="`$tmp.aai.src-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`" />\r
+                                                </set>\r
+                                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="pnf" \r
+               key="pnf.pnf-name = $tmp.src-pnf-name \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.src-pnf' local-only='false' >\r
+                                                    <outcome value='success'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='domain-A.node-id' value="`$tmp.aai.src-pnf.pnf-id`" />\r
+                                                                <parameter name='domain-A.tpn' value='1' />\r
+                                                            </set>\r
+                                                            <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.src-pnf.relationship-list.relationship_length`' >\r
+                                                                <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\r
+                                                                    <outcome value='tunnel-termination-point'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.src-ttp-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                            </set>\r
+                                                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="tunnel-termination-point" \r
+               key="tunnel-termination-point.ttp-id = $tmp.src-ttp-id \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.src-ttp' local-only='false' >\r
+                                                                                <outcome value='success'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-A.ttp-id' value="`$tmp.aai.src-ttp.ttp-id`" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='network-resource'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.domain-A.network-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                            </set>\r
+                                                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="network-resource" \r
+               key="network-resource.network-id = $tmp.domain-A.network-id \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.src-network-resource' local-only='false' >\r
+                                                                                <outcome value='success'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-A.network-id' value="`$tmp.aai.src-network-resource.network-id`" />\r
+                                                                                        <parameter name='domain-A.provider-id' value="`$tmp.aai.src-network-resource.provider-id`" />\r
+                                                                                        <parameter name='domain-A.client-id' value="`$tmp.aai.src-network-resource.client-id`" />\r
+                                                                                        <parameter name='domain-A.te-topo-id' value="`$tmp.aai.src-network-resource.te-topo-id`" />\r
+                                                                                        <parameter name='domain-A.network-type' value="`$tmp.aai.src-network-resource.network-type`" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </block>\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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </get-resource>\r
+                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="p-interface" \r
+               key="p-interface.interface-name = $tmp.dst-ltpId \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.dst-tp' local-only='false' >\r
+                                            <outcome value='success'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.dst-pnf-name' value="`$tmp.aai.dst-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`" />\r
+                                                </set>\r
+                                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="pnf" \r
+               key="pnf.pnf-name = $tmp.dst-pnf-name \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.dst-pnf' local-only='false' >\r
+                                                    <outcome value='success'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='domain-B.node-id' value="`$tmp.aai.dst-pnf.pnf-id`" />\r
+                                                                <parameter name='domain-B.tpn' value='1' />\r
+                                                            </set>\r
+                                                            <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.dst-pnf.relationship-list.relationship_length`' >\r
+                                                                <switch test='`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].related-to`'>\r
+                                                                    <outcome value='tunnel-termination-point'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.dst-ttp-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                            </set>\r
+                                                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="tunnel-termination-point" \r
+               key="tunnel-termination-point.ttp-id = $tmp.dst-ttp-id \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.dst-ttp' local-only='false' >\r
+                                                                                <outcome value='success'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-B.ttp-id' value="`$tmp.aai.dst-ttp.ttp-id`" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='network-resource'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.domain-B.network-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                                                            </set>\r
+                                                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="network-resource" \r
+               key="network-resource.network-id = $tmp.domain-B.network-id \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.dst-network-resource' local-only='false' >\r
+                                                                                <outcome value='success'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='domain-B.network-id' value="`$tmp.aai.dst-network-resource.network-id`" />\r
+                                                                                        <parameter name='domain-B.provider-id' value="`$tmp.aai.dst-network-resource.provider-id`" />\r
+                                                                                        <parameter name='domain-B.client-id' value="`$tmp.aai.dst-network-resource.client-id`" />\r
+                                                                                        <parameter name='domain-B.te-topo-id' value="`$tmp.aai.dst-network-resource.te-topo-id`" />\r
+                                                                                        <parameter name='domain-B.network-type' value="`$tmp.aai.dst-network-resource.network-type`" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </block>\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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </get-resource>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-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 pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\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/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.xml
new file mode 100644 (file)
index 0000000..8629403
--- /dev/null
@@ -0,0 +1,38 @@
+<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='sotn-get-vf-module-uni-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$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.uni.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 == 'tpId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.uni.tpId' 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 == 'cVLAN'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.uni.cVLAN' 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
index ca13a5e..e2e61c6 100644 (file)
@@ -1,8 +1,71 @@
 <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
+        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='sotn-vf-operation-l2vpn-activate' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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
+                        <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <block>\r
+                                <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$vidx`' />\r
+                                            <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\r
+                <outcome value='Created'>\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='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="connectivity"\r
+                    key="connectivity.connectivity-id = $vnfId" >\r
+                <parameter name="operational-status" value="Active" />\r
+            </update>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 3876fd2..94e218b 100644 (file)
@@ -1,8 +1,91 @@
 <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
+        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='sotn-vf-operation-l2vpn-create' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vnf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-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="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
+      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vnf-topology-operation-input.vnf-request-input.vnf-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="`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\r
+            </set>\r
+            <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.connectivity-id"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$prop.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                  resource="connectivity"\r
+                  key='connectivity.connectivity-id = $prop.connectivity-id' >\r
+                <parameter name="operational-status" value="Created" />\r
+            </save>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index c16d3b0..20b28f2 100644 (file)
@@ -1,8 +1,83 @@
 <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
+        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='sotn-vf-operation-l2vpn-deactivate' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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
+                        <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <block>\r
+                                <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$vidx`' />\r
+                                                <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\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
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\r
+                <outcome value='Active'>\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='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="connectivity"\r
+                    key="connectivity.connectivity-id = $vnfId" >\r
+                <parameter name="operational-status" value="PendingDelete" />\r
+            </update>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 89a18ed..8585db5 100644 (file)
@@ -1,8 +1,92 @@
 <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
+        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='sotn-vf-operation-l2vpn-delete' mode='sync'>\r
         <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                <parameter name="vnf-topology-operation-input.vnf-information.vnf-id" value="$vnf-topology-operation-input.vnf-information.vnf-id"/>\r
+            </execute>\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
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                        <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test="`$tmp.nidx`">\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-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_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-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_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name='vnf-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vnf-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"\r
+                    resource="connectivity"\r
+                    key="connectivity.connectivity-id = $vnfId" >\r
+                <parameter name="operational-status" value="PendingDelete" />\r
+            </delete>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 9ccbd07..c1e677b 100644 (file)
@@ -3,6 +3,289 @@
     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='sotn-vf-operation-uni-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
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='vnf-index' value='`$idx`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.vnf-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <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
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="generic-vnf" \r
+               key="'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.generic-vnf' local-only='false' >\r
+                <block>\r
+                    <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.generic-vnf.relationship-list.relationship_length`' >\r
+                        <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\r
+                            <outcome value='uni'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='`tmp.unis.uni[$vidx].tpId`' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />\r
+                                    </set>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                        <parameter name="original_string" value='`tmp.unis.uni[$vidx].tpId`'/>\r
+                                        <parameter name="regex" value="nodeId"/>\r
+                                        <parameter name="tmp.unis.uni[$vidx].pnf-name" value=""/>\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
+                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="pnf" \r
+               key="`pnf.pnf-name = $tmp.unis.uni[$vidx].pnf-name AND depth = '0'`"\r
+        pfx='tmp.aai.pnf' local-only='false' >\r
+                                        <outcome value='success'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='`$tmp.unis.uni[$vidx].node-id`' value="`$tmp.aai.pnf.pnf-id`" />\r
+                                                </set>\r
+                                                <for silentFailure='true' index='ridx' start='0' end='`$tmp.aai.pnf.relationship-list.relationship_length`' >\r
+                                                    <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\r
+                                                        <outcome value='thirdparty-controller'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='`$tmp.unis.uni[$vidx].thirdparty-sdnc-id`' value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='network-resource'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='`$tmp.unis.uni[$vidx].network-id`' value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`" />\r
+                                                                </set>\r
+                                                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="network-resource" \r
+               key="`network-resource.network-id = $tmp.unis.uni[$vidx].network-id AND depth = '0'`"\r
+        pfx='tmp.aai.network-resource' local-only='false' >\r
+                                                                    <outcome value='success'>\r
+                                                                        <set>\r
+                                                                            <parameter name="`$tmp.unis.uni[$vidx].network-id`" value="`$tmp.aai.network-resource.network-id`" />\r
+                                                                            <parameter name="`$tmp.unis.uni[$vidx].provider-id`" value="`$tmp.aai.network-resource.provider-id`" />\r
+                                                                            <parameter name="`$tmp.unis.uni[$vidx].client-id`" value="`$tmp.aai.network-resource.client-id`" />\r
+                                                                            <parameter name="`$tmp.unis.uni[$vidx].te-topo-id`" value="`$tmp.aai.network-resource.te-topo-id`" />\r
+                                                                            <parameter name="`$tmp.unis.uni[$vidx].network-type`" value="`$tmp.aai.network-resource.network-type`" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </get-resource>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                    <switch test='`$tmp.unis.uni_length < 2`' >\r
+                        <outcome value='true'>\r
+                            <return status='success'>\r
+                                <parameter name='' value='' />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </get-resource>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync' ></call>\r
+            <for index='vidx' start='0' end='`$tmp.unis.uni_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='oof.vpn.' value='`$tmp.unis.uni[$vidx].`' />\r
+                    </set>\r
+                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $oof.vpn.thirdparty-sdnc-id 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='sotn-create-otn-tunnel' mode='sync' ></call>\r
+                    <set>\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.globals.etht-svc-bandwidth-profiles[0].bandwidth-profile-type' value='ietf-eth-tran-types:mef-10-bwp' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-type' value='ietf-eth-tran-types:p2p-svc' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].admin-status' value='ietf-te-types:tunnel-state-up' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-port-id' value='0' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].service-classification-type' value='ietf-eth-tran-types:port-classification' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-port-id' value='1' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].service-classification-type' value='ietf-eth-tran-types:port-classification' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-provider-id' value='`$oof.vpn.access-provider-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-client-id' value='`$oof.vpn.access-client-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-topology-id' value='`$oof.vpn.access-topology-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-node-id' value='`$oof.vpn.access-node-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-ltp-id' value='`$oof.vpn.src-access-ltp-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-node-id' value='`$oof.vpn.access-node-id`' />\r
+                        <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-ltp-id' value='`$oof.vpn.dst-access-ltp-id`' />\r
+                    </set>\r
+                    <switch test="`$prop.sdncRestApi.token_id`">\r
+                        <outcome value=''>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\r
+                                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`" />\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="patch"/>\r
+                                <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />\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
+                                <outcome value='failure'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                                    </return>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                            </execute>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\r
+                                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`" />\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="patch"/>\r
+                                <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />\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 rest api" />\r
+                                    </return>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                            </execute>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index f1c7ecd..a549708 100644 (file)
@@ -3,6 +3,146 @@
     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='sotn-vf-operation-uni-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='`$vnf-index`'>\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 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_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
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sotn-get-vf-module-uni-param' mode='sync' ></call>\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.vf-id"/>\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.vf-id`' />\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-id' value='`$prop.vf-id`'/>\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='uni' \r
+      key='uni.id = $prop.vf-id' >\r
+                <parameter name="id" value="`$prop.vf-id`" />\r
+                <parameter name="tpId" value='`$prop.uni.tpId`' />\r
+                <parameter name='cVLAN' value='`$prop.uni.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-uuid`' />\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.vf-id + '/vf-module-data/'` " />\r
+            </save>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="generic-vnf" \r
+               key="'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+               AND depth = '0'"\r
+        pfx='tmp.aai.generic-vnf' local-only='false' >\r
+                <block>\r
+                    <set>\r
+                        <parameter name="tmp.relationship_length" value='`$tmp.aai.generic-vnf.relationship-list.relation_length`'/>\r
+                    </set>\r
+                </block>\r
+            </get-resource>\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[$tmp.relationship_length].related-to`" value="uni" />\r
+                <parameter name="`relationship-list.relationship[$tmp.relationship_length].related-link`" value="`'/network/unis/uni/' + $prop.vf-id`" />\r
+                <parameter name="`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-key`" value="id" />\r
+                <parameter name="`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-value`" value="`$prop.vf-id`" />\r
+            </save>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 28faefe..69344e8 100644 (file)
@@ -1,8 +1,72 @@
 <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
+        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='sotn-vnf-topology-operation-underlay-activate' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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
+                        <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <block>\r
+                                <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$vidx`' />\r
+                                            <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\r
+                <outcome value='Created'>\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='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="generic-vnf"\r
+                    key="generic-vnf.vnf-id = $vnfId" >\r
+                <parameter name="orchestration-status" value="Active" />\r
+                <parameter name="vnf-type" value="some vnf-type" />\r
+            </update>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 1f7b013..ba1c3cd 100644 (file)
@@ -1,8 +1,109 @@
 <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='sotn-vnf-topology-operation-underlay-create' mode='sync'>\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='vnf-topology-operation-vpn-site-resource-create' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vnf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-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="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
+      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vnf-topology-operation-input.vnf-request-input.vnf-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="`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\r
+            </set>\r
+            <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.vnf-id"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$prop.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $prop.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                  resource="generic-vnf"\r
+                  key='generic-vnf.vnf-id = $prop.vnf-id' >\r
+                <parameter name="orchestration-status" value="Created" />\r
+                <parameter name="in-maint" value = "true" />\r
+                <parameter name="vnf-type" value='`$prop.vnfName`' />\r
+                <parameter name="vnf-name" value = "`$prop.vnfName`"/>\r
+                <parameter name="model-invariant-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`"/>\r
+                <parameter name="model-version-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`"/>\r
+                <parameter name="model-customization-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`"/>\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list'\r
+                  key='service-instance.service-instance-id = $service-data.service-information.service-instance-id\r
+         AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id\r
+         AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type'\r
+                  force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/generic-vnfs/generic-vnf/' + $prop.vnf-id`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="generic-vnf.vnf-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.vnf-id`" />\r
+                <!--key='service-instance.service-instance-id = $service-data.service-information.service-instance-id -->\r
+                <!--key='service-instance.service-instance-id = $service-data.service-instance-id -->\r
+            </save>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 28acdbf..139f12e 100644 (file)
@@ -1,8 +1,84 @@
 <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
+        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='sotn-vnf-topology-operation-underlay-deactivate' mode='sync'>\r
         <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_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
+                        <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <block>\r
+                                <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$vidx`' />\r
+                                                <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\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
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\r
+                <outcome value='Active'>\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='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name="vnf-object-path" value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vnf-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $vnf-topology-operation-input.vnf-information.vnf-id  + '/vnf-data/'` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="generic-vnf"\r
+                    key="generic-vnf.vnf-id = $vnfId" >\r
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <parameter name="vnf-type" value="some vnf-type" />\r
+            </update>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
index 7c106ee..130eee2 100644 (file)
@@ -1,8 +1,93 @@
 <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
+        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='sotn-vnf-topology-operation-underlay-delete' mode='sync'>\r
         <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                <parameter name="vnf-topology-operation-input.vnf-information.vnf-id" value="$vnf-topology-operation-input.vnf-information.vnf-id"/>\r
+            </execute>\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
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                        <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test="`$tmp.nidx`">\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-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_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-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_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name='vnf-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vnf-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"\r
+                    resource="generic-vnf"\r
+                    key="generic-vnf.vnf-id = $vnfId" >\r
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <parameter name="vnf-type" value="some vnf-type" />\r
+            </delete>\r
             <return status='success'>\r
                 <parameter name="ack-final-indicator" value="Y" />\r
                 <parameter name="error-code" value="200" />\r
diff --git a/platform-logic/restapi-templates/src/main/json/sotn-otn-tunnel-service.json b/platform-logic/restapi-templates/src/main/json/sotn-otn-tunnel-service.json
new file mode 100644 (file)
index 0000000..085d494
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "ietf-te:te": {
+        "tunnels":{
+            "tunnel":[
+                {
+                    "destination": ${oof.vpn.access-node-id},
+                    "source": ${otn-domain.node-id},
+                    "src-ttp-id": ${otn-domain.ttp-id},
+                    "ietf-otn-tunnel:src-tpn": ${otn-domain.tpn},
+                    "name": "otntunnel-22",
+                    "te-topology-identifier": {
+                        "client-id": ${otn-domain.client-id},
+                        "provider-id": ${otn-domain.provider-id},
+                        "topology-id": ${otn-domain.te-topo-id}
+                    }
+                },
+                {
+                    "destination": ${oof.vpn.access-node-id},
+                    "source": ${otn-domain.node-id},
+                    "src-ttp-id": ${otn-domain.ttp-id},
+                    "ietf-otn-tunnel:src-tpn": ${otn-domain.tpn},
+                    "name": "tptunnel-22",
+                    "dependency-tunnels": {
+                        "dependency-tunnel": [
+                            "name": "tptunnel-22"
+                        ]
+                    },
+                    "te-topology-identifier": {
+                        "client-id": ${otn-domain.client-id},
+                        "provider-id": ${otn-domain.provider-id},
+                        "topology-id": ${otn-domain.te-topo-id}
+                    }
+                }
+            ]
+        }
+    }
+}