aboutsummaryrefslogtreecommitdiffstats
path: root/platform-logic
diff options
context:
space:
mode:
authorHesam Rahimi <hesam.rahimi@huawei.com>2020-03-04 03:03:57 +0000
committerHesam Rahimi <hesam.rahimi@huawei.com>2020-03-04 21:52:46 +0000
commitae8f83510948c360ec4952fe7a73bfca1a930277 (patch)
treeaef6eaaa6a4256744f1c03c5cc2e5adedbc11ac9 /platform-logic
parent0a8e7414c87424bd9bf0616d14bce525c9a16e24 (diff)
DGs for SOTN NNI based service creation
Issue-ID: SDNC-900 Signed-off-by: Hesam Rahimi <hesam.rahimi@huawei.com> Change-Id: I3ae8efc39aaa5fc5de48b3323f986531d3c7fa74 Former-commit-id: 84477fc8f92e417f809ffe040ffb12de46a43a77
Diffstat (limited to 'platform-logic')
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.json448
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.json1239
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.json243
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json349
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json459
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json409
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json499
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json1312
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json616
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json349
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json474
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json409
-rw-r--r--platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json499
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/resources/graph.versions14
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.xml125
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.xml266
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.xml38
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.xml67
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml87
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml79
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml88
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml283
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml140
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml68
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml107
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml80
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml89
-rw-r--r--platform-logic/restapi-templates/src/main/json/sotn-otn-tunnel-service.json37
28 files changed, 8578 insertions, 295 deletions
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
index 00000000..26e9f8fe
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.json
@@ -0,0 +1,448 @@
+[
+ {
+ "id": "2d787bd1.a214b4",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 92,
+ "y": 22,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "99a6e8f9.6615a8"
+ ]
+ ]
+ },
+ {
+ "id": "99a6e8f9.6615a8",
+ "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": 206,
+ "y": 125.00003051757812,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "d3f739cf.6d5a28"
+ ]
+ ]
+ },
+ {
+ "id": "d3f739cf.6d5a28",
+ "type": "method",
+ "name": "sotn-create-otn-tunnel",
+ "xml": "<method rpc='sotn-create-otn-tunnel' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 217.0001220703125,
+ "y": 297,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "eb49715b.e15e8"
+ ]
+ ]
+ },
+ {
+ "id": "acad5285.a3e1a",
+ "type": "comment",
+ "name": "get cross-domain-link information",
+ "info": "",
+ "comments": "",
+ "x": 449.5001220703125,
+ "y": 31.286468505859375,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "eb49715b.e15e8",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 336.9688720703125,
+ "y": 425.74163818359375,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "96ed9e8f.b90f",
+ "f1e66bd.f624698",
+ "386c8b8a.515584"
+ ]
+ ]
+ },
+ {
+ "id": "96ed9e8f.b90f",
+ "type": "switchNode",
+ "name": "switch prop.sdncRestApi.token_id",
+ "xml": "<switch test=\"`$prop.sdncRestApi.token_id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 586,
+ "y": 625,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "f9d6c529.483238",
+ "aec39761.70cfc8"
+ ]
+ ]
+ },
+ {
+ "id": "f9d6c529.483238",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 882.8438110351562,
+ "y": 580.1218872070312,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "cb912ed0.0c0a3"
+ ]
+ ]
+ },
+ {
+ "id": "aec39761.70cfc8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 881.5,
+ "y": 659,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "a260c7eb.1e65d8"
+ ]
+ ]
+ },
+ {
+ "id": "a260c7eb.1e65d8",
+ "type": "execute",
+ "name": "execute RestconfApiCallNode Create ethernet Service with token",
+ "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`\" />",
+ "comments": "",
+ "outputs": 1,
+ "x": 1193,
+ "y": 661,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "b31b1f14.b450e",
+ "31c0814c.e11a0e"
+ ]
+ ]
+ },
+ {
+ "id": "cb912ed0.0c0a3",
+ "type": "execute",
+ "name": "execute RestconfApiCallNode Create ethernet Service without token",
+ "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\"/>",
+ "comments": "",
+ "outputs": 1,
+ "x": 1205,
+ "y": 584,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "31c0814c.e11a0e",
+ "b31b1f14.b450e"
+ ]
+ ]
+ },
+ {
+ "id": "b31b1f14.b450e",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1626.5,
+ "y": 652,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "6b799b05.9369c4"
+ ]
+ ]
+ },
+ {
+ "id": "6b799b05.9369c4",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "comments": "",
+ "outputs": 1,
+ "x": 1821,
+ "y": 645,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "401bdd4e.60ff34",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",
+ "comments": "",
+ "x": 1795.5,
+ "y": 583,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "31c0814c.e11a0e",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1611.5,
+ "y": 587,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "401bdd4e.60ff34"
+ ]
+ ]
+ },
+ {
+ "id": "f1e66bd.f624698",
+ "type": "switchNode",
+ "name": "switch eth topo's provider-id",
+ "xml": "<switch test='`$oof.vpn.access-provider-id`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 594,
+ "y": 173,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "daa01201.b40fe",
+ "ffd4b2da.f2213"
+ ]
+ ]
+ },
+ {
+ "id": "daa01201.b40fe",
+ "type": "outcome",
+ "name": "domain A's OTN topo's provider ID",
+ "xml": "<outcome value='`$domain-A.provider-id`'>\n\u0001",
+ "comments": "",
+ "outputs": 1,
+ "x": 897.285888671875,
+ "y": 108.82177734375,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "647bcb79.cd9c24"
+ ]
+ ]
+ },
+ {
+ "id": "647bcb79.cd9c24",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1154.117431640625,
+ "y": 107.34027099609375,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "7c841c48.339f24"
+ ]
+ ]
+ },
+ {
+ "id": "ffd4b2da.f2213",
+ "type": "outcome",
+ "name": "domain B's OTN topo's provider ID",
+ "xml": "<outcome value='`$domain-B.provider-id`'>\n\u0001",
+ "comments": "",
+ "outputs": 1,
+ "x": 895,
+ "y": 212,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "ada6a164.5b7e9"
+ ]
+ ]
+ },
+ {
+ "id": "7c841c48.339f24",
+ "type": "set",
+ "name": "set otn domain node",
+ "xml": "<set>\n<parameter name='tmp.otn-domain.' value='`$domain-A.`' />\n",
+ "comments": "",
+ "x": 1359,
+ "y": 106,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "ada6a164.5b7e9",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1150,
+ "y": 209,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "24ca0ba6.6ddfe4"
+ ]
+ ]
+ },
+ {
+ "id": "24ca0ba6.6ddfe4",
+ "type": "set",
+ "name": "set otn domain node",
+ "xml": "<set>\n<parameter name='$tmp.otn-domain.' value='`$domain-B.`' />\n",
+ "comments": "",
+ "x": 1354.882568359375,
+ "y": 207.65972900390625,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "386c8b8a.515584",
+ "type": "switchNode",
+ "name": "switch eth node ID",
+ "xml": "<switch test='`$oof.vpn.access-node-id`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 600,
+ "y": 427,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "d91602b.4cd09",
+ "c018f42b.2b1a68"
+ ]
+ ]
+ },
+ {
+ "id": "d91602b.4cd09",
+ "type": "outcome",
+ "name": "source eth node",
+ "xml": "<outcome value='`$oof.vpns[0].access-node-id`'>\n\u0001",
+ "comments": "",
+ "outputs": 1,
+ "x": 840.285888671875,
+ "y": 349.82177734375,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "fd2adb67.e7ca38"
+ ]
+ ]
+ },
+ {
+ "id": "fd2adb67.e7ca38",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1044.117431640625,
+ "y": 349.34027099609375,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "ad11583e.e14ea8"
+ ]
+ ]
+ },
+ {
+ "id": "17b601bf.a39ace",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1046,
+ "y": 469,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "97fd4aa8.fd21b8"
+ ]
+ ]
+ },
+ {
+ "id": "c018f42b.2b1a68",
+ "type": "outcome",
+ "name": "dest eth node",
+ "xml": "<outcome value='`$oof.vpns[$oof.vpns_length].access-node-id`'>\n\u0001",
+ "comments": "",
+ "outputs": 1,
+ "x": 841,
+ "y": 469,
+ "z": "17040f2b.d4a821",
+ "wires": [
+ [
+ "17b601bf.a39ace"
+ ]
+ ]
+ },
+ {
+ "id": "ad11583e.e14ea8",
+ "type": "set",
+ "name": "set attachment_param",
+ "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`' />",
+ "comments": "",
+ "x": 1286,
+ "y": 350,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "4add26c3.ec74e8",
+ "type": "comment",
+ "name": "cross domain OTN node is the dest of OTN tunnel",
+ "info": "",
+ "comments": "",
+ "x": 945,
+ "y": 306,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "15de3156.c96c3f",
+ "type": "comment",
+ "name": "cross domain OTN node is the source of OTN tunnel",
+ "info": "",
+ "comments": "",
+ "x": 954,
+ "y": 429,
+ "z": "17040f2b.d4a821",
+ "wires": []
+ },
+ {
+ "id": "97fd4aa8.fd21b8",
+ "type": "set",
+ "name": "set attachment_param",
+ "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`' />",
+ "comments": "",
+ "x": 1294,
+ "y": 474,
+ "z": "17040f2b.d4a821",
+ "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-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
index 00000000..10463711
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.json
@@ -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
index 00000000..811602d5
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.json
@@ -0,0 +1,243 @@
+[
+ {
+ "id": "92076785.102998",
+ "type": "for",
+ "name": "for each sotn-get-request-input-param",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-request-input.vf-module-input-parameters.param_length`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 257,
+ "y": 366.6666383743286,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "1481334b.aa109d"
+ ]
+ ]
+ },
+ {
+ "id": "d17e9aae.69c2d8",
+ "type": "dgstart",
+ "name": "DGSTART",
+ "outputs": 1,
+ "x": 89.3332290649414,
+ "y": 29,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "28ba91d2.47447e"
+ ]
+ ]
+ },
+ {
+ "id": "28ba91d2.47447e",
+ "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": 234.33323287963867,
+ "y": 110.0000171661377,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "bfc0526a.9023d"
+ ]
+ ]
+ },
+ {
+ "id": "bfc0526a.9023d",
+ "type": "method",
+ "name": "sotn-get-vf-module-uni-param",
+ "xml": "<method rpc='sotn-get-vf-module-uni-param' mode='sync'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 222.3333511352539,
+ "y": 198,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "b8fc2441.d8f338"
+ ]
+ ]
+ },
+ {
+ "id": "b8fc2441.d8f338",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 229.33324432373047,
+ "y": 284.0000581741333,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "92076785.102998"
+ ]
+ ]
+ },
+ {
+ "id": "1481334b.aa109d",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 513.2326469421387,
+ "y": 369.0103905200958,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "397c4a4d.4ed016",
+ "2bdd888b.6d1ef8",
+ "595a4395.a6883c",
+ "ea4e21ab.628e5"
+ ]
+ ]
+ },
+ {
+ "id": "397c4a4d.4ed016",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+ "comments": "",
+ "x": 733.7332763671875,
+ "y": 478.0107421875,
+ "z": "12466ca0.33d983",
+ "wires": []
+ },
+ {
+ "id": "595a4395.a6883c",
+ "type": "switchNode",
+ "name": "switch tpId",
+ "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tpId'`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 735.7326431274414,
+ "y": 296.01042914390564,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "7907fc56.fc4374"
+ ]
+ ]
+ },
+ {
+ "id": "7907fc56.fc4374",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 910.7330360412598,
+ "y": 294.01051592826843,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "6a4f5caf.0f6f14"
+ ]
+ ]
+ },
+ {
+ "id": "6a4f5caf.0f6f14",
+ "type": "set",
+ "name": "set tpId",
+ "xml": "<set>\n<parameter name='prop.uni.tpId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",
+ "comments": "",
+ "x": 1085.7331199645996,
+ "y": 295.61056327819824,
+ "z": "12466ca0.33d983",
+ "wires": []
+ },
+ {
+ "id": "2bdd888b.6d1ef8",
+ "type": "switchNode",
+ "name": "switch id",
+ "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 719.7319984436035,
+ "y": 247.3970763683319,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "7b22e7e.bf6e718"
+ ]
+ ]
+ },
+ {
+ "id": "7b22e7e.bf6e718",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 911.7319221496582,
+ "y": 247.39708304405212,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "ab2d859f.6acac8"
+ ]
+ ]
+ },
+ {
+ "id": "ab2d859f.6acac8",
+ "type": "set",
+ "name": "set id",
+ "xml": "<set>\n<parameter name='prop.uni.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",
+ "comments": "",
+ "x": 1055.7321891784668,
+ "y": 246.99721121788025,
+ "z": "12466ca0.33d983",
+ "wires": []
+ },
+ {
+ "id": "ea4e21ab.628e5",
+ "type": "switchNode",
+ "name": "switch cVLAN",
+ "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'cVLAN'`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 738,
+ "y": 374,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "c123c0b4.3c868"
+ ]
+ ]
+ },
+ {
+ "id": "c123c0b4.3c868",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 906,
+ "y": 371,
+ "z": "12466ca0.33d983",
+ "wires": [
+ [
+ "5bf6b706.8b8148"
+ ]
+ ]
+ },
+ {
+ "id": "5bf6b706.8b8148",
+ "type": "set",
+ "name": "set cVLAN",
+ "xml": "<set>\n<parameter name='prop.uni.cVLAN' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",
+ "comments": "",
+ "x": 1081.0000839233398,
+ "y": 372.6000473499298,
+ "z": "12466ca0.33d983",
+ "wires": []
+ }
+] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json
index a7b5394d..dd1ba06d 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.json
@@ -1,20 +1,20 @@
[
{
- "id": "6ddd4074.f6564",
+ "id": "f06d79a.4f13a08",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 234.80560302734375,
- "y": 111.47219848632812,
- "z": "d2e10b7b.600a68",
+ "x": 120,
+ "y": 66,
+ "z": "62554968.e321b8",
"wires": [
[
- "ddeb5b5a.bb49b"
+ "e698fb0d.22ccb"
]
]
},
{
- "id": "ddeb5b5a.bb49b",
+ "id": "e698fb0d.22ccb",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,352 @@
"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": 366.09129333496094,
- "y": 160.71030712127686,
- "z": "d2e10b7b.600a68",
+ "x": 251.2856903076172,
+ "y": 115.23810863494873,
+ "z": "62554968.e321b8",
"wires": [
[
- "b1bc4dd3.fa521"
+ "c77e5b12.74fa8"
]
]
},
{
- "id": "b1bc4dd3.fa521",
+ "id": "c77e5b12.74fa8",
"type": "method",
"name": "method sotn-vf-operation-l2vpn-activate",
"xml": "<method rpc='sotn-vf-operation-l2vpn-activate' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 369.2342224121094,
- "y": 245.47223091125488,
- "z": "d2e10b7b.600a68",
+ "x": 254.42861938476562,
+ "y": 200.00003242492676,
+ "z": "62554968.e321b8",
"wires": [
[
- "23b0f2c.b4c290e"
+ "dc8a4134.633b38"
]
]
},
{
- "id": "23b0f2c.b4c290e",
+ "id": "dc8a4134.633b38",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
- "comments": "",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
"outputs": 1,
- "x": 510.3329429626465,
- "y": 462.54641246795654,
- "z": "d2e10b7b.600a68",
+ "x": 622.2380447387695,
+ "y": 414.66666814964265,
+ "z": "62554968.e321b8",
"wires": [
[
- "6c6251b8.988708"
+ "6485c0f8.91ce08",
+ "a02d1e2f.e50b18",
+ "c0d6a6a1.052f28",
+ "aff44c8.fd218b",
+ "cdefed21.97b52",
+ "ef33383b.0eb5c8",
+ "6bb0bfe6.f5358"
]
]
},
{
- "id": "6c6251b8.988708",
+ "id": "6485c0f8.91ce08",
+ "type": "set",
+ "name": "set vnf-level-oper-status to Active",
+ "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`' />",
+ "comments": "",
+ "x": 1037.3850173950195,
+ "y": 601.6705513000488,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "a02d1e2f.e50b18",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 778.2500610351562,
- "y": 545.0833129882812,
- "z": "d2e10b7b.600a68",
+ "x": 957.5717086791992,
+ "y": 727.5970888137817,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "c0d6a6a1.052f28",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 1043.571662902832,
+ "y": 549.5968055725098,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "aff44c8.fd218b",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1052.0000610351562,
+ "y": 304.00000545661896,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "c419b86f.420228",
+ "5e5514b0.5b9124",
+ "dab73261.53c13"
+ ]
+ ]
+ },
+ {
+ "id": "dab73261.53c13",
+ "type": "outcome",
+ "name": "0",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1310.9689559936523,
+ "y": 265.96876499336213,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "ac6cfd44.a241c"
+ ]
+ ]
+ },
+ {
+ "id": "ac6cfd44.a241c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1465.7778434753418,
+ "y": 284.88903352897614,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "c419b86f.420228",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1304.0000953674316,
+ "y": 305.00008651893586,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "ac6cfd44.a241c"
+ ]
+ ]
+ },
+ {
+ "id": "5e5514b0.5b9124",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1297.000503540039,
+ "y": 338.0000903336331,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "639a074f.493e98"
+ ]
+ ]
+ },
+ {
+ "id": "639a074f.493e98",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1444.2700462341309,
+ "y": 338.55473539512604,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "6fa946fa.ca1978"
+ ]
+ ]
+ },
+ {
+ "id": "6fa946fa.ca1978",
+ "type": "for",
+ "name": "for vidx..service-data.vnfs.vnf_length[]",
+ "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1690.2861633300781,
+ "y": 345.4286558357999,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "154eb41a.640b64"
+ ]
+ ]
+ },
+ {
+ "id": "154eb41a.640b64",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1909.6357955932617,
+ "y": 344.9687359062955,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "330022d0.830a2e"
+ ]
+ ]
+ },
+ {
+ "id": "330022d0.830a2e",
+ "type": "switchNode",
+ "name": "switch vnfid found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2063.7153930664062,
+ "y": 344.67881796043366,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "fcbe4c85.417af"
+ ]
+ ]
+ },
+ {
+ "id": "fcbe4c85.417af",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2239.6675148010254,
+ "y": 344.57150003593415,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "2fb9529b.c7be6e"
+ ]
+ ]
+ },
+ {
+ "id": "2fb9529b.c7be6e",
+ "type": "set",
+ "name": "set tmp.vidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",
+ "comments": "",
+ "x": 2449.1998901367188,
+ "y": 346.3216001717374,
+ "z": "62554968.e321b8",
"wires": []
+ },
+ {
+ "id": "cdefed21.97b52",
+ "type": "save",
+ "name": "update AnAI - l2vpn.operational-status",
+ "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\" />",
+ "comments": "",
+ "outputs": 1,
+ "x": 1063.0000228881836,
+ "y": 668.0103769302368,
+ "z": "62554968.e321b8",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "ef33383b.0eb5c8",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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.' />",
+ "comments": "",
+ "x": 1042.0001373291016,
+ "y": 499.010338306427,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "6bb0bfe6.f5358",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1028.75,
+ "y": 404.00390815734863,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "5c7bc43a.bb701c",
+ "b67194e3.094198"
+ ]
+ ]
+ },
+ {
+ "id": "5c7bc43a.bb701c",
+ "type": "outcome",
+ "name": "outcome Created",
+ "xml": "<outcome value='Created'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1274.583293914795,
+ "y": 405.1150059700012,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "914253cd.1c469"
+ ]
+ ]
+ },
+ {
+ "id": "b67194e3.094198",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1252.5833129882812,
+ "y": 455.115017414093,
+ "z": "62554968.e321b8",
+ "wires": [
+ [
+ "b6453bfb.a302f"
+ ]
+ ]
+ },
+ {
+ "id": "b6453bfb.a302f",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1412.083080291748,
+ "y": 458.1150164604187,
+ "z": "62554968.e321b8",
+ "wires": []
+ },
+ {
+ "id": "914253cd.1c469",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1484.8896675109863,
+ "y": 416.4401812553406,
+ "z": "62554968.e321b8",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json
index 99d429eb..951a18f4 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.json
@@ -1,20 +1,20 @@
[
{
- "id": "db0f78a5.c01a3",
+ "id": "ed294889.e18cd8",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 160.27777099609375,
- "y": 91.94441223144531,
- "z": "7ef93f2c.40fb2",
+ "x": 117,
+ "y": 57,
+ "z": "a8db409e.810378",
"wires": [
[
- "d8303e2.7d965c"
+ "d573cd56.a0362"
]
]
},
{
- "id": "d8303e2.7d965c",
+ "id": "d573cd56.a0362",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,466 @@
"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": 291.56346130371094,
- "y": 141.18252086639404,
- "z": "7ef93f2c.40fb2",
+ "x": 248.2856903076172,
+ "y": 106.23810863494873,
+ "z": "a8db409e.810378",
"wires": [
[
- "c458b05f.c1372"
+ "ab294e07.a9e7f"
]
]
},
{
- "id": "c458b05f.c1372",
+ "id": "ab294e07.a9e7f",
"type": "method",
"name": "method sotn-vf-operation-l2vpn-create",
"xml": "<method rpc='sotn-vf-operation-l2vpn-create' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 294.7063903808594,
- "y": 225.94444465637207,
- "z": "7ef93f2c.40fb2",
+ "x": 251.42861938476562,
+ "y": 191.00003242492676,
+ "z": "a8db409e.810378",
"wires": [
[
- "c5107308.c6aab"
+ "3b2ee2be.0d5776"
]
]
},
{
- "id": "c5107308.c6aab",
+ "id": "3b2ee2be.0d5776",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 664.2380447387695,
+ "y": 394.6666717529297,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "7075470e.ead518",
+ "a887fb8.23d1908",
+ "c96cd735.589ad8",
+ "6d0e8b42.1f8964",
+ "49bfb25c.1c60ac",
+ "3b8acefc.66b31a",
+ "6eb961ad.5ae338",
+ "adbadf0e.275b3",
+ "c0c21f0e.1b5958",
+ "f1922be.86c2058",
+ "d0ca9568.fe847",
+ "5bbdffcc.b3f3b8"
+ ]
+ ]
+ },
+ {
+ "id": "a887fb8.23d1908",
+ "type": "set",
+ "name": "set vnf-level-oper-status to Created",
+ "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",
+ "comments": "",
+ "x": 1086.3848571777344,
+ "y": 758.6706044944003,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "7075470e.ead518",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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",
+ "comments": "",
+ "x": 1078.2380447387695,
+ "y": 653.6668565543368,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "49bfb25c.1c60ac",
+ "type": "execute",
+ "name": "execute generate-vnf-index",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.connectivity-id\"/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1066.571548461914,
+ "y": 603.3334405692294,
+ "z": "a8db409e.810378",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "c0c21f0e.1b5958",
+ "type": "set",
+ "name": "set vnf-index to service data",
+ "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\n",
+ "comments": "",
+ "x": 1077.5716247558594,
+ "y": 710.3334443839267,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "c96cd735.589ad8",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1093.5713653564453,
+ "y": 273.3333633216098,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "9138e1fa.f1d37",
+ "bf45ff7d.c852e"
+ ]
+ ]
+ },
+ {
+ "id": "9138e1fa.f1d37",
+ "type": "other",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1328.2857513427734,
+ "y": 268.47618367988616,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "4dbced61.ca9034"
+ ]
+ ]
+ },
+ {
+ "id": "4dbced61.ca9034",
+ "type": "set",
+ "name": "set vnf-index=0",
+ "xml": "<set>\n<parameter name='vnf-index' value='0' />\n",
+ "comments": "",
+ "x": 1488.5714569091797,
+ "y": 268.47627523262054,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "bf45ff7d.c852e",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1324.7142906188965,
+ "y": 301.7620151313022,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "dbddb28c.bce1e8"
+ ]
+ ]
+ },
+ {
+ "id": "33a0ff35.932e78",
+ "type": "set",
+ "name": "set vnf-index = vnf_length",
+ "xml": "<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",
+ "comments": "",
+ "x": 1717.571533203125,
+ "y": 280.0477407248691,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "36e21bba.2e2ef4",
+ "type": "for",
+ "name": "for each existing VNF",
+ "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1706.0001525878906,
+ "y": 315.04771259147674,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "7dde789c.f76928"
+ ]
+ ]
+ },
+ {
+ "id": "dbddb28c.bce1e8",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
"atomic": "false",
"comments": "",
"outputs": 1,
- "x": 435.8051109313965,
- "y": 443.01862621307373,
- "z": "7ef93f2c.40fb2",
+ "x": 1459.4285736083984,
+ "y": 303.76198461372405,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "33a0ff35.932e78",
+ "36e21bba.2e2ef4"
+ ]
+ ]
+ },
+ {
+ "id": "7dde789c.f76928",
+ "type": "switchNode",
+ "name": "switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",
+ "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2099.285888671875,
+ "y": 315.61919668037444,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "5924827c.34c2fc"
+ ]
+ ]
+ },
+ {
+ "id": "5924827c.34c2fc",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2380.571590423584,
+ "y": 314.19060209114105,
+ "z": "a8db409e.810378",
"wires": [
[
- "4e54cc73.474b5c"
+ "46ba128f.50acd4"
]
]
},
{
- "id": "4e54cc73.474b5c",
+ "id": "88b8e912.2900e8",
+ "type": "comment",
+ "name": "make sure this vnf-id doesn't exist already",
+ "info": "",
+ "comments": "",
+ "x": 2068.4285049438477,
+ "y": 279.1905887397006,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "6d0e8b42.1f8964",
+ "type": "set",
+ "name": "set new vnf_length",
+ "xml": "<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",
+ "comments": "",
+ "x": 1038.571548461914,
+ "y": 551.3334372313693,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "3b8acefc.66b31a",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 703.7222290039062,
- "y": 525.5555267333984,
- "z": "7ef93f2c.40fb2",
+ "x": 1025.5715103149414,
+ "y": 1021.5969560416415,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "6eb961ad.5ae338",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 1079.5715408325195,
+ "y": 799.5968749793246,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "46ba128f.50acd4",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF 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",
+ "comments": "",
+ "x": 2509.1429595947266,
+ "y": 365.1906163962558,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "adbadf0e.275b3",
+ "type": "save",
+ "name": "save AnAI - l2vpn.operational-status",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1134.5458450317383,
+ "y": 909.247092035599,
+ "z": "a8db409e.810378",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "204db5a4.c326da",
+ "type": "comment",
+ "name": "TODO: change AAI models",
+ "info": "",
+ "comments": "",
+ "x": 1068.1821060180664,
+ "y": 868.9743078025058,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "e76c21c2.4a838",
+ "type": "execute",
+ "name": "execute split parameterName",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1494.7395935058594,
+ "y": 362.7500076564029,
+ "z": "a8db409e.810378",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "11945653.6c33ba",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1298.4833908081055,
+ "y": 367.0018806727603,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "e76c21c2.4a838",
+ "e0fb04c6.a15c88"
+ ]
+ ]
+ },
+ {
+ "id": "f1922be.86c2058",
+ "type": "for",
+ "name": "for loop idx - VNF input parameters",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1083.7050476074219,
+ "y": 369.4462967189029,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "11945653.6c33ba"
+ ]
+ ]
+ },
+ {
+ "id": "d0ca9568.fe847",
+ "type": "set",
+ "name": "set vnf-request-input.",
+ "xml": "<set>\n<parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\n",
+ "comments": "",
+ "x": 1040.7046813964844,
+ "y": 439.7710037501529,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "e0fb04c6.a15c88",
+ "type": "set",
+ "name": "set parameterName",
+ "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",
+ "comments": "",
+ "x": 1471.7395935058594,
+ "y": 408.7500076564029,
+ "z": "a8db409e.810378",
+ "wires": []
+ },
+ {
+ "id": "5bbdffcc.b3f3b8",
+ "type": "for",
+ "name": "for each sdwan-get-request-input-param",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1096.7395935058594,
+ "y": 491.7500076564029,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "e0f56e7c.d34a1"
+ ]
+ ]
+ },
+ {
+ "id": "e0f56e7c.d34a1",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1322.9722595214844,
+ "y": 490.0937576564029,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "5be518f3.e26978"
+ ]
+ ]
+ },
+ {
+ "id": "5be518f3.e26978",
+ "type": "switchNode",
+ "name": "switch vnf name",
+ "xml": "<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1479.4722595214844,
+ "y": 488.09381869155914,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "3bfa8dc2.ee3a5a"
+ ]
+ ]
+ },
+ {
+ "id": "3bfa8dc2.ee3a5a",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1640.4726257324219,
+ "y": 488.0938797267154,
+ "z": "a8db409e.810378",
+ "wires": [
+ [
+ "5f201fd1.6acc3"
+ ]
+ ]
+ },
+ {
+ "id": "5f201fd1.6acc3",
+ "type": "set",
+ "name": "set vnf name",
+ "xml": "<set>\n<parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
+ "comments": "",
+ "x": 1798.4727478027344,
+ "y": 486.69391634780914,
+ "z": "a8db409e.810378",
"wires": []
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json
index 19781d05..e6d58408 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.json
@@ -1,20 +1,20 @@
[
{
- "id": "90b43524.1bba",
+ "id": "8805f76f.30a3e",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 178.13888549804688,
- "y": 111.47219848632812,
- "z": "c6830f2a.6a9d68",
+ "x": 120,
+ "y": 54,
+ "z": "8ff83d85.25fe1",
"wires": [
[
- "389b8a0e.3a0a5e"
+ "3261268f.b3fd8a"
]
]
},
{
- "id": "389b8a0e.3a0a5e",
+ "id": "3261268f.b3fd8a",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,412 @@
"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": 309.42457580566406,
- "y": 160.71030712127686,
- "z": "c6830f2a.6a9d68",
+ "x": 251.2856903076172,
+ "y": 103.23810863494873,
+ "z": "8ff83d85.25fe1",
"wires": [
[
- "39e685a3.66f172"
+ "620c0b27.171e7c"
]
]
},
{
- "id": "39e685a3.66f172",
+ "id": "620c0b27.171e7c",
"type": "method",
"name": "method sotn-vf-operation-l2vpn-deactivate",
"xml": "<method rpc='sotn-vf-operation-l2vpn-deactivate' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 312.5675048828125,
- "y": 245.47223091125488,
- "z": "c6830f2a.6a9d68",
+ "x": 254.42861938476562,
+ "y": 188.00003242492676,
+ "z": "8ff83d85.25fe1",
"wires": [
[
- "a281b71.8f33f48"
+ "27dae623.42e422"
]
]
},
{
- "id": "a281b71.8f33f48",
+ "id": "27dae623.42e422",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
- "comments": "",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
"outputs": 1,
- "x": 453.6662254333496,
- "y": 462.54641246795654,
- "z": "c6830f2a.6a9d68",
+ "x": 500.23804473876953,
+ "y": 393.6666717529297,
+ "z": "8ff83d85.25fe1",
"wires": [
[
- "dab0995.6fb4068"
+ "d20c3672.c43588",
+ "7a43ef5e.3b7f9",
+ "6f1a46ea.30b4e8",
+ "61b68e4a.28176",
+ "b50086a8.e06b78",
+ "f9b5f904.311908",
+ "afa01bdf.71f67"
]
]
},
{
- "id": "dab0995.6fb4068",
+ "id": "d20c3672.c43588",
+ "type": "set",
+ "name": "set vnf-level-oper-status to PendingDelete",
+ "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`' />",
+ "comments": "",
+ "x": 908.3849029541016,
+ "y": 542.670631554909,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "7a43ef5e.3b7f9",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 721.5833435058594,
- "y": 545.0833129882812,
- "z": "c6830f2a.6a9d68",
+ "x": 834.5716247558594,
+ "y": 651.5970618994907,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "6f1a46ea.30b4e8",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 885.5716247558594,
+ "y": 498.5968991788104,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "61b68e4a.28176",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 930.0000610351562,
+ "y": 283.000009059906,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "4517bda1.9ccc8c",
+ "b6fa38d4.2f92b8",
+ "36aca283.917aae"
+ ]
+ ]
+ },
+ {
+ "id": "36aca283.917aae",
+ "type": "outcome",
+ "name": "0",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1188.9689559936523,
+ "y": 244.96876859664917,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "3ec837a3.d44ab"
+ ]
+ ]
+ },
+ {
+ "id": "3ec837a3.d44ab",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1343.7778434753418,
+ "y": 263.8890371322632,
+ "z": "8ff83d85.25fe1",
"wires": []
+ },
+ {
+ "id": "4517bda1.9ccc8c",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1182.0000953674316,
+ "y": 284.0000901222229,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "3ec837a3.d44ab"
+ ]
+ ]
+ },
+ {
+ "id": "b6fa38d4.2f92b8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1175.000503540039,
+ "y": 317.00009393692017,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "3f560c20.eb87e4"
+ ]
+ ]
+ },
+ {
+ "id": "3f560c20.eb87e4",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1322.2700462341309,
+ "y": 317.5547389984131,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "9f9b02e0.fd0698",
+ "a7de5d34.00e2d8"
+ ]
+ ]
+ },
+ {
+ "id": "9f9b02e0.fd0698",
+ "type": "for",
+ "name": "for vidx..service-data.vnfs.vnf_length[]",
+ "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1568.2861633300781,
+ "y": 324.4286594390869,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "4f46568b.85da18"
+ ]
+ ]
+ },
+ {
+ "id": "4f46568b.85da18",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1787.6357955932617,
+ "y": 323.9687395095825,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "1df151a6.a0431e"
+ ]
+ ]
+ },
+ {
+ "id": "1df151a6.a0431e",
+ "type": "switchNode",
+ "name": "switch vnfid found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1941.7153930664062,
+ "y": 323.6788215637207,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "c4b1d74.4447c28"
+ ]
+ ]
+ },
+ {
+ "id": "c4b1d74.4447c28",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2117.6675148010254,
+ "y": 323.5715036392212,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "fef2ef1a.c2f0e"
+ ]
+ ]
+ },
+ {
+ "id": "fef2ef1a.c2f0e",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 2266.312973022461,
+ "y": 311.97913360595703,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "36c7875a.2b36c8"
+ ]
+ ]
+ },
+ {
+ "id": "36c7875a.2b36c8",
+ "type": "set",
+ "name": "set tmp.vidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",
+ "comments": "",
+ "x": 2528.1997680664062,
+ "y": 289.32155990600586,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "a7de5d34.00e2d8",
+ "type": "switchNode",
+ "name": "switch tmp.vidx ",
+ "xml": "<switch test=\"`$tmp.vidx`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1511.0000228881836,
+ "y": 378.99999713897705,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "df068370.3f2368"
+ ]
+ ]
+ },
+ {
+ "id": "df068370.3f2368",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1666.4286499023438,
+ "y": 378.5713806152344,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "dd6bf171.b47338"
+ ]
+ ]
+ },
+ {
+ "id": "dd6bf171.b47338",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1811.8573913574219,
+ "y": 378.71431827545166,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "b50086a8.e06b78",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 879.0000762939453,
+ "y": 391.8890240462497,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "211c79e5.c82526",
+ "33c4dba9.adcb6c"
+ ]
+ ]
+ },
+ {
+ "id": "211c79e5.c82526",
+ "type": "outcome",
+ "name": "outcome Active",
+ "xml": "<outcome value='Active'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1124.8333702087402,
+ "y": 393.0001218589023,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "5a9b43a8.5c8334"
+ ]
+ ]
+ },
+ {
+ "id": "5a9b43a8.5c8334",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1338.139762878418,
+ "y": 402.3253114493564,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "33c4dba9.adcb6c",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1102.8333892822266,
+ "y": 443.0001333029941,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ [
+ "ff316d.d574c69"
+ ]
+ ]
+ },
+ {
+ "id": "ff316d.d574c69",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1262.3331565856934,
+ "y": 446.00013234931976,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "f9b5f904.311908",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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.' />",
+ "comments": "",
+ "x": 888.0065612792969,
+ "y": 451.010439065285,
+ "z": "8ff83d85.25fe1",
+ "wires": []
+ },
+ {
+ "id": "afa01bdf.71f67",
+ "type": "save",
+ "name": "update AnAI - l2vpn.operational-status",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 930.0064239501953,
+ "y": 597.0105177434161,
+ "z": "8ff83d85.25fe1",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json
index 223bb835..385835c9 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.json
@@ -1,20 +1,20 @@
[
{
- "id": "8398072c.bb",
+ "id": "7d66251e.b82664",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 164.8055419921875,
- "y": 111.47222900390625,
- "z": "227abea9.82942a",
+ "x": 113,
+ "y": 47,
+ "z": "71661d78.a73ff4",
"wires": [
[
- "f7478e4.3f877f"
+ "4f798745.7c23f8"
]
]
},
{
- "id": "f7478e4.3f877f",
+ "id": "4f798745.7c23f8",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,504 @@
"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": 296.0912322998047,
- "y": 160.71033763885498,
- "z": "227abea9.82942a",
+ "x": 244.2856903076172,
+ "y": 96.23810863494873,
+ "z": "71661d78.a73ff4",
"wires": [
[
- "2116c7dc.76a62"
+ "1efd944f.808cec"
]
]
},
{
- "id": "2116c7dc.76a62",
+ "id": "1efd944f.808cec",
"type": "method",
"name": "method sotn-vf-operation-l2vpn-delete",
"xml": "<method rpc='sotn-vf-operation-l2vpn-delete' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 299.2341613769531,
- "y": 245.472261428833,
- "z": "227abea9.82942a",
+ "x": 247.42861938476562,
+ "y": 181.00003242492676,
+ "z": "71661d78.a73ff4",
"wires": [
[
- "6477dca3.236454"
+ "2676cdd4.4c0ad2"
]
]
},
{
- "id": "6477dca3.236454",
+ "id": "f7045a47.ec91a8",
+ "type": "comment",
+ "name": "site-vnf-topology-operation-delete",
+ "info": "",
+ "comments": "",
+ "x": 839.9162979125977,
+ "y": 108.58639907836914,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "2676cdd4.4c0ad2",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 467.23804473876953,
+ "y": 336.6666717529297,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "f0919342.f5b18",
+ "3e674db0.3066aa",
+ "36348cc4.967c94",
+ "556d053a.ecf65c",
+ "9da386b6.2f7bc8",
+ "3d13e6d3.244982",
+ "e37c16ee.29bad",
+ "3a03f985.f60a36",
+ "5d2f33ed.f40a3c",
+ "663336cd.33fb4"
+ ]
+ ]
+ },
+ {
+ "id": "556d053a.ecf65c",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 919.6660919189453,
+ "y": 254.2611792087555,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "1a39a448.9524cc",
+ "db3976bf.5d493"
+ ]
+ ]
+ },
+ {
+ "id": "1a39a448.9524cc",
+ "type": "other",
+ "name": "outcome Null",
+ "xml": "<outcome value=''>\n",
"comments": "",
"outputs": 1,
- "x": 440.33288192749023,
- "y": 462.54644298553467,
- "z": "227abea9.82942a",
+ "x": 1184.3884048461914,
+ "y": 236.81680130958557,
+ "z": "71661d78.a73ff4",
"wires": [
[
- "ef907cc.c0768"
+ "5a4bd76d.294688"
]
]
},
{
- "id": "ef907cc.c0768",
+ "id": "5a4bd76d.294688",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1365.3882751464844,
+ "y": 231.81667923927307,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "db3976bf.5d493",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1169.8884048461914,
+ "y": 288.81676411628723,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "c9f5f464.acb94"
+ ]
+ ]
+ },
+ {
+ "id": "c9f5f464.acb94",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1341.888111114502,
+ "y": 288.8167622089386,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "40524cb7.d8b3cc",
+ "f7ed532.06146b"
+ ]
+ ]
+ },
+ {
+ "id": "f7ed532.06146b",
+ "type": "switchNode",
+ "name": "switch tmp.nidx ",
+ "xml": "<switch test=\"`$tmp.nidx`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1516.888282775879,
+ "y": 307.81668400764465,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "be1fbab.e3a7448"
+ ]
+ ]
+ },
+ {
+ "id": "36348cc4.967c94",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 890.0550918579102,
+ "y": 328.7056429386139,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "cd00c4a5.6199c",
+ "b9b69fcf.de09f8"
+ ]
+ ]
+ },
+ {
+ "id": "cd00c4a5.6199c",
+ "type": "outcome",
+ "name": "outcome PendingDelete",
+ "xml": "<outcome value='PendingDelete'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1166.8884353637695,
+ "y": 331.8167426586151,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "a741ca6a.f08e98"
+ ]
+ ]
+ },
+ {
+ "id": "b9b69fcf.de09f8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1127.8884201049805,
+ "y": 377.8167917728424,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "40a415b6.d6dcac"
+ ]
+ ]
+ },
+ {
+ "id": "40a415b6.d6dcac",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1276.3881340026855,
+ "y": 376.81677174568176,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "9da386b6.2f7bc8",
+ "type": "execute",
+ "name": "execute requiredParameters",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 906.388427734375,
+ "y": 197.8167588710785,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "40524cb7.d8b3cc",
+ "type": "for",
+ "name": "for nidx..service-data.vnfs.vnf[]",
+ "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1577.3882865905762,
+ "y": 243.8166801929474,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "43e325ae.156bcc"
+ ]
+ ]
+ },
+ {
+ "id": "43e325ae.156bcc",
+ "type": "switchNode",
+ "name": "switch vnf-id found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1833.3883056640625,
+ "y": 243.8166801929474,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "9e9616bd.2cd428"
+ ]
+ ]
+ },
+ {
+ "id": "9e9616bd.2cd428",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2009.8883590698242,
+ "y": 246.8166801929474,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "42ca9813.a6a5e8"
+ ]
+ ]
+ },
+ {
+ "id": "42ca9813.a6a5e8",
+ "type": "set",
+ "name": "set tmp.nidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\n",
+ "comments": "",
+ "x": 2176.8883743286133,
+ "y": 307.8166801929474,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "44e24bd3.4cb9b4",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1822.388298034668,
+ "y": 307.81668400764465,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "be1fbab.e3a7448",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1684.888298034668,
+ "y": 307.81668400764465,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "44e24bd3.4cb9b4"
+ ]
+ ]
+ },
+ {
+ "id": "f0919342.f5b18",
+ "type": "set",
+ "name": "set vnfId and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 876.9051132202148,
+ "y": 543.3336856365204,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "3e674db0.3066aa",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 708.25,
- "y": 545.0833435058594,
- "z": "227abea9.82942a",
+ "x": 833.0162658691406,
+ "y": 620.8892447948456,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "a741ca6a.f08e98",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1362.1947937011719,
+ "y": 339.14194798469543,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "3d13e6d3.244982",
+ "type": "set",
+ "name": "set prop.vnfNewidx",
+ "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",
+ "comments": "",
+ "x": 859.0000839233398,
+ "y": 379.00007796287537,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "e37c16ee.29bad",
+ "type": "for",
+ "name": "for lidx..service-data.vnfs.vnf[]",
+ "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 883.0000686645508,
+ "y": 421.0000765323639,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "fe111823.451958"
+ ]
+ ]
+ },
+ {
+ "id": "fe111823.451958",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1144.000144958496,
+ "y": 425.00011134147644,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "b1807c80.f455e8"
+ ]
+ ]
+ },
+ {
+ "id": "b1807c80.f455e8",
+ "type": "switchNode",
+ "name": "switch vnf-id found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1336.0000915527344,
+ "y": 434.00015568733215,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "c1cf5e92.b6dff8"
+ ]
+ ]
+ },
+ {
+ "id": "c1cf5e92.b6dff8",
+ "type": "outcomeFalse",
+ "name": "false",
+ "xml": "<outcome value='false'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1522.0001068115234,
+ "y": 418.0000422000885,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "4f7d8dc5.1b171c"
+ ]
+ ]
+ },
+ {
+ "id": "4f7d8dc5.1b171c",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1673.0000305175781,
+ "y": 419.0000784397125,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ [
+ "e4e48378.71222",
+ "644d0d16.d332c4"
+ ]
+ ]
+ },
+ {
+ "id": "e4e48378.71222",
+ "type": "set",
+ "name": "set vnf data",
+ "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",
+ "comments": "",
+ "x": 1840.0001983642578,
+ "y": 393.00026202201843,
+ "z": "71661d78.a73ff4",
"wires": []
+ },
+ {
+ "id": "644d0d16.d332c4",
+ "type": "set",
+ "name": "set prop.vnfNewidx",
+ "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",
+ "comments": "",
+ "x": 1860.0001258850098,
+ "y": 450.0001976490021,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "3a03f985.f60a36",
+ "type": "set",
+ "name": "set new vnf length",
+ "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",
+ "comments": "",
+ "x": 851.1014823913574,
+ "y": 464.804429769516,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "5d2f33ed.f40a3c",
+ "type": "set",
+ "name": "Remove vnf from ServiceData",
+ "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$prop.vnfidxLen].\" value=\"\"/>\n\n",
+ "comments": "",
+ "x": 881.0002517700195,
+ "y": 503.00021290779114,
+ "z": "71661d78.a73ff4",
+ "wires": []
+ },
+ {
+ "id": "663336cd.33fb4",
+ "type": "save",
+ "name": "delete AnAI - l2vpn.operational-status",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 938.0066452026367,
+ "y": 580.0106251239777,
+ "z": "71661d78.a73ff4",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json
index 4d9aad4b..81ac6874 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.json
@@ -1,20 +1,20 @@
[
{
- "id": "b87fb992.37671",
+ "id": "fb32b655.b185b8",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 179.8055419921875,
- "y": 128.13888549804688,
- "z": "28baf2a.ead510e",
+ "x": 97,
+ "y": 26,
+ "z": "84e7e3f2.6b184",
"wires": [
[
- "527522f9.ff69e4"
+ "84e0c1e1.45193"
]
]
},
{
- "id": "527522f9.ff69e4",
+ "id": "84e0c1e1.45193",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,1317 @@
"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": 311.0912322998047,
- "y": 177.3769941329956,
- "z": "28baf2a.ead510e",
+ "x": 228.2856903076172,
+ "y": 75.23810863494873,
+ "z": "84e7e3f2.6b184",
"wires": [
[
- "74e85c6a.58678c"
+ "45da7482.2ad22c"
]
]
},
{
- "id": "74e85c6a.58678c",
+ "id": "45da7482.2ad22c",
"type": "method",
"name": "method sotn-vf-operation-uni-activate",
"xml": "<method rpc='sotn-vf-operation-uni-activate' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 314.2341613769531,
- "y": 262.13891792297363,
- "z": "28baf2a.ead510e",
+ "x": 231.42861938476562,
+ "y": 160.00003242492676,
+ "z": "84e7e3f2.6b184",
"wires": [
[
- "ae007ab1.699328"
+ "edcc85d8.9d3d28"
]
]
},
{
- "id": "ae007ab1.699328",
+ "id": "2c9ee1fb.c2a40e",
+ "type": "switchNode",
+ "name": "switch vf-modules.vf-module_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 703.9959564208984,
+ "y": 340.99998915195465,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "a85389a5.eba5b8",
+ "b56c9993.d26ec8",
+ "d2286cfd.202a6"
+ ]
+ ]
+ },
+ {
+ "id": "edcc85d8.9d3d28",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 322.6626205444336,
+ "y": 445.66670763492584,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "2c9ee1fb.c2a40e",
+ "fa8ab78.8a0bc48",
+ "83723db3.8501b",
+ "943ab36c.4be4",
+ "56a2543.f406bac",
+ "7638ccf.06d4134",
+ "a53f3f0c.46a7a",
+ "c42e922f.1abaa"
+ ]
+ ]
+ },
+ {
+ "id": "83723db3.8501b",
+ "type": "for",
+ "name": "for each vnf",
+ "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 669.0273170471191,
+ "y": 211.269144654274,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "b6860278.b7c3a"
+ ]
+ ]
+ },
+ {
+ "id": "fa8ab78.8a0bc48",
+ "type": "switchNode",
+ "name": "switch vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 673.9959716796875,
+ "y": 150.00001394748688,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "4d78f4ba.adcf7c"
+ ]
+ ]
+ },
+ {
+ "id": "4d78f4ba.adcf7c",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 853.9959526062012,
+ "y": 149.0000034570694,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "83071b4.81cf8e8"
+ ]
+ ]
+ },
+ {
+ "id": "83071b4.81cf8e8",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1003.4246788024902,
+ "y": 150.14292109012604,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "b6860278.b7c3a",
+ "type": "switchNode",
+ "name": "switch this vnf-id == input vnf-id",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\"> \n",
+ "comments": "",
+ "outputs": 1,
+ "x": 891.9959678649902,
+ "y": 212.00000965595245,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "a420300f.fcc77"
+ ]
+ ]
+ },
+ {
+ "id": "a420300f.fcc77",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1106.9959526062012,
+ "y": 210.0000034570694,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "61f2940f.e1eccc"
+ ]
+ ]
+ },
+ {
+ "id": "5ebe199d.38e1f8",
+ "type": "set",
+ "name": "set vnf-index",
+ "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
+ "comments": "",
+ "x": 1447.9959716796875,
+ "y": 178,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "b56c9993.d26ec8",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 963.9959716796875,
+ "y": 365,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "f74bba14.018558"
+ ]
+ ]
+ },
+ {
+ "id": "a85389a5.eba5b8",
+ "type": "outcome",
+ "name": "0",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 960.9959716796875,
+ "y": 293,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "f74bba14.018558"
+ ]
+ ]
+ },
+ {
+ "id": "f74bba14.018558",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1132.9959716796875,
+ "y": 327,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "d2286cfd.202a6",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
"comments": "",
"outputs": 1,
- "x": 455.33288192749023,
- "y": 479.2130994796753,
- "z": "28baf2a.ead510e",
+ "x": 925.9959487915039,
+ "y": 435.9999986886978,
+ "z": "84e7e3f2.6b184",
"wires": [
[
- "da013af.4338448"
+ "1141c0c2.8446df"
]
]
},
{
- "id": "da013af.4338448",
+ "id": "bd0fe0b8.95c3d",
+ "type": "set",
+ "name": "set vf-module_length",
+ "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",
+ "comments": "",
+ "x": 1279.995964050293,
+ "y": 434.0000126361847,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "1141c0c2.8446df",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1086.995994567871,
+ "y": 432.99999010562897,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "bd0fe0b8.95c3d",
+ "7d4d8763.0f4718"
+ ]
+ ]
+ },
+ {
+ "id": "7d4d8763.0f4718",
+ "type": "for",
+ "name": "for each existing vf-index",
+ "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1298.9959335327148,
+ "y": 486.99998915195465,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "39d7ac61.94fef4"
+ ]
+ ]
+ },
+ {
+ "id": "39d7ac61.94fef4",
+ "type": "switchNode",
+ "name": "switch vf-module-id found",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1541.995948791504,
+ "y": 481.9999986886978,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "1b63e74a.2edd39"
+ ]
+ ]
+ },
+ {
+ "id": "1b63e74a.2edd39",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1739.9959774017334,
+ "y": 469.00000536441803,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "21b15a7e.281f96"
+ ]
+ ]
+ },
+ {
+ "id": "21b15a7e.281f96",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1891.995948791504,
+ "y": 470.9999986886978,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "bfa5b77e.850078",
+ "9791123.9d23ff",
+ "5999c8a4.0563c8"
+ ]
+ ]
+ },
+ {
+ "id": "bfa5b77e.850078",
+ "type": "set",
+ "name": "set tmp.vidx and ctx.vnf-data",
+ "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",
+ "comments": "",
+ "x": 2119.996063232422,
+ "y": 413.0000025033951,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "9791123.9d23ff",
+ "type": "set",
+ "name": "set vf-module-request-input.",
+ "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",
+ "comments": "",
+ "x": 2123.996063232422,
+ "y": 467.0000025033951,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "943ab36c.4be4",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 723.25,
- "y": 561.75,
- "z": "28baf2a.ead510e",
+ "x": 597.9961547851562,
+ "y": 1640.501220703125,
+ "z": "84e7e3f2.6b184",
"wires": []
+ },
+ {
+ "id": "5999c8a4.0563c8",
+ "type": "call",
+ "name": "call sotn-get-vf-module-uni-param",
+ "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2154.45108795166,
+ "y": 518.0104948282242,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "56a2543.f406bac",
+ "type": "execute",
+ "name": "execute Properties",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 683.9959564208984,
+ "y": 280.5039049386978,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "61f2940f.e1eccc",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1270,
+ "y": 220,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "5ebe199d.38e1f8",
+ "97c5cadc.46fd38"
+ ]
+ ]
+ },
+ {
+ "id": "97c5cadc.46fd38",
+ "type": "set",
+ "name": "set tmp.vnf-id",
+ "xml": "<set>\n<parameter name='tmp.vnf-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n",
+ "comments": "",
+ "x": 1455,
+ "y": 235,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "7638ccf.06d4134",
+ "type": "get-resource",
+ "name": "get-resource generic-vnf",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 603,
+ "y": 552,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "6951bd2b.63d4e4"
+ ]
+ ]
+ },
+ {
+ "id": "6951bd2b.63d4e4",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 806,
+ "y": 547,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "c98c270d.88dcd8",
+ "b05ba34b.acc5f"
+ ]
+ ]
+ },
+ {
+ "id": "c98c270d.88dcd8",
+ "type": "for",
+ "name": "for each relationship in gen-vnf",
+ "xml": "<for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.generic-vnf.relationship-list.relationship_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1018,
+ "y": 550,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "b3a5598e.a41448"
+ ]
+ ]
+ },
+ {
+ "id": "b3a5598e.a41448",
+ "type": "switchNode",
+ "name": "switch related-to",
+ "xml": "<switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1244,
+ "y": 554,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "4e594d45.0e1984"
+ ]
+ ]
+ },
+ {
+ "id": "4e594d45.0e1984",
+ "type": "outcome",
+ "name": "uni",
+ "xml": "<outcome value='uni'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1433.285888671875,
+ "y": 562.82177734375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "3e26d342.6174fc"
+ ]
+ ]
+ },
+ {
+ "id": "3e26d342.6174fc",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1608.117431640625,
+ "y": 565.3402709960938,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "8d7c01bb.0e5ea",
+ "db36cb56.ed0998",
+ "9f8707c2.df5a68"
+ ]
+ ]
+ },
+ {
+ "id": "8d7c01bb.0e5ea",
+ "type": "set",
+ "name": "set tmp.unis.uni[].tpId",
+ "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",
+ "comments": "",
+ "x": 1825.117431640625,
+ "y": 563.3402709960938,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "b05ba34b.acc5f",
+ "type": "switchNode",
+ "name": "switch number of unis < 2",
+ "xml": "<switch test='`$tmp.unis.uni_length < 2`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 993,
+ "y": 714,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "9ad7b18c.9e2db"
+ ]
+ ]
+ },
+ {
+ "id": "11a2c1f3.2f15de",
+ "type": "returnSuccess",
+ "name": "return success",
+ "xml": "<return status='success'>\n<parameter name='' value='' />\n",
+ "comments": "",
+ "x": 1401,
+ "y": 716,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "9ad7b18c.9e2db",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1209,
+ "y": 715,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "11a2c1f3.2f15de"
+ ]
+ ]
+ },
+ {
+ "id": "db36cb56.ed0998",
+ "type": "execute",
+ "name": "execute split tpId to get pnf-name",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1864,
+ "y": 638,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "51f60529.b960dc",
+ "bd9180ed.9d6e6"
+ ]
+ ]
+ },
+ {
+ "id": "bd9180ed.9d6e6",
+ "type": "failure",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2087,
+ "y": 593,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "91a82817.a8c858"
+ ]
+ ]
+ },
+ {
+ "id": "51f60529.b960dc",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2089,
+ "y": 657,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "4dddc62b.304038"
+ ]
+ ]
+ },
+ {
+ "id": "91a82817.a8c858",
+ "type": "set",
+ "name": "set ipAddress prefixLength",
+ "xml": "<set>\n<parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />",
+ "comments": "",
+ "x": 2309,
+ "y": 595,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "4dddc62b.304038",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",
+ "comments": "",
+ "x": 2248,
+ "y": 676,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "9f8707c2.df5a68",
+ "type": "get-resource",
+ "name": "get-resource pnf",
+ "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"pnf\" \n\t\tkey=\"`pnf.pnf-name = $tmp.unis.uni[$vidx].pnf-name AND depth = '0'`\"\n pfx='tmp.aai.pnf' local-only='false' >\n\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1790,
+ "y": 731,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "7f07585.a7576a8"
+ ]
+ ]
+ },
+ {
+ "id": "7f07585.a7576a8",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1990.5,
+ "y": 749,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "2018b1.62ea675"
+ ]
+ ]
+ },
+ {
+ "id": "2018b1.62ea675",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 2153.88232421875,
+ "y": 783.6556396484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "a36c84bd.45b6f8",
+ "e1179ec.bdf3f6"
+ ]
+ ]
+ },
+ {
+ "id": "e1179ec.bdf3f6",
+ "type": "set",
+ "name": "set node-id",
+ "xml": "<set>\n<parameter name='`$tmp.unis.uni[$vidx].node-id`' value=\"`$tmp.aai.pnf.pnf-id`\" />\n",
+ "comments": "",
+ "x": 2390,
+ "y": 734,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "a36c84bd.45b6f8",
+ "type": "for",
+ "name": "for each relationship in pnf",
+ "xml": "<for silentFailure='true' index='ridx' start='0' end='`$tmp.aai.pnf.relationship-list.relationship_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2345.882568359375,
+ "y": 823.6597290039062,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "c153c531.99c278"
+ ]
+ ]
+ },
+ {
+ "id": "c153c531.99c278",
+ "type": "switchNode",
+ "name": "switch related-to",
+ "xml": "<switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2571.882568359375,
+ "y": 823.6597290039062,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "ebf22767.e2b168",
+ "17f20ef3.96aa91"
+ ]
+ ]
+ },
+ {
+ "id": "ebf22767.e2b168",
+ "type": "outcome",
+ "name": "network-resource",
+ "xml": "<outcome value='network-resource'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2770,
+ "y": 936,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "15e83210.af0fbe"
+ ]
+ ]
+ },
+ {
+ "id": "15e83210.af0fbe",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 2983,
+ "y": 937,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "7354a06a.e0a7c",
+ "82642fbf.6f96f"
+ ]
+ ]
+ },
+ {
+ "id": "7354a06a.e0a7c",
+ "type": "set",
+ "name": "set network-id",
+ "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",
+ "comments": "",
+ "x": 3218,
+ "y": 867,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "82642fbf.6f96f",
+ "type": "get-resource",
+ "name": "get-resource 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.unis.uni[$vidx].network-id AND depth = '0'`\"\n pfx='tmp.aai.network-resource' local-only='false' >\n\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 3226,
+ "y": 948,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "dfffc86d.811b38"
+ ]
+ ]
+ },
+ {
+ "id": "dfffc86d.811b38",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 3458.5,
+ "y": 944,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "c2666ab.b105298"
+ ]
+ ]
+ },
+ {
+ "id": "c2666ab.b105298",
+ "type": "set",
+ "name": "set network-id, topo-id, client-id, etc",
+ "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",
+ "comments": "",
+ "x": 3727,
+ "y": 943,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "a53f3f0c.46a7a",
+ "type": "call",
+ "name": "call GENERIC-RESOURCE-API:sotn-get-otn-tunnel-path-from-oof",
+ "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 782,
+ "y": 861,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "17f20ef3.96aa91",
+ "type": "outcome",
+ "name": "thirdparty-controller",
+ "xml": "<outcome value='thirdparty-controller'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2797,
+ "y": 801,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "a15f639f.76c57"
+ ]
+ ]
+ },
+ {
+ "id": "a15f639f.76c57",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 3010,
+ "y": 802,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "94cd4673.029758"
+ ]
+ ]
+ },
+ {
+ "id": "94cd4673.029758",
+ "type": "set",
+ "name": "set thirdparty-sdnc-id",
+ "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",
+ "comments": "",
+ "x": 3237,
+ "y": 801,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "5c2c3ff1.fc693",
+ "type": "comment",
+ "name": "when we reach here, we have 2 UNIs, so do ACTN operations",
+ "info": "",
+ "comments": "",
+ "x": 795,
+ "y": 807,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "c42e922f.1abaa",
+ "type": "for",
+ "name": "for vidx..unis.uni_length[]",
+ "xml": "<for index='vidx' start='0' end='`$tmp.unis.uni_length`' >",
+ "comments": "",
+ "outputs": 1,
+ "x": 648,
+ "y": 1053,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "1cfcb3ef.b12bfc"
+ ]
+ ]
+ },
+ {
+ "id": "70ff03f1.58983c",
+ "type": "set",
+ "name": "set oof.vpn",
+ "xml": "<set>\n<parameter name='oof.vpn.' value='`$tmp.unis.uni[$vidx].`' />",
+ "comments": "",
+ "x": 1074.0272216796875,
+ "y": 992.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "fcf606f6.efb428",
+ "type": "set",
+ "name": "set controller data",
+ "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",
+ "comments": "",
+ "x": 1554.0272216796875,
+ "y": 1105.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "18d11459.dc281c",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1384.0272216796875,
+ "y": 1105.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "fcf606f6.efb428"
+ ]
+ ]
+ },
+ {
+ "id": "71856f9f.960fe",
+ "type": "not-found",
+ "name": "not-found",
+ "xml": "<outcome value='not-found'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1388.0272216796875,
+ "y": 1145.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "48d45483.15892c"
+ ]
+ ]
+ },
+ {
+ "id": "f7967d43.ee995",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1380.0272216796875,
+ "y": 1185.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "8a5a416f.cf1fa"
+ ]
+ ]
+ },
+ {
+ "id": "48d45483.15892c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",
+ "comments": "",
+ "x": 1538.0272216796875,
+ "y": 1145.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "8a5a416f.cf1fa",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",
+ "comments": "",
+ "x": 1538.0272216796875,
+ "y": 1185.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "96b7c9e8.a8e308",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1384.0272216796875,
+ "y": 1225.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "f7f59d76.ec927"
+ ]
+ ]
+ },
+ {
+ "id": "9f0248ba.15c698",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1380.0272216796875,
+ "y": 1265.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "66fab2ba.c9700c"
+ ]
+ ]
+ },
+ {
+ "id": "66fab2ba.c9700c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",
+ "comments": "",
+ "x": 1538.0272216796875,
+ "y": 1265.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "f7f59d76.ec927",
+ "type": "set",
+ "name": "set token-id",
+ "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",
+ "comments": "",
+ "x": 1534.5272216796875,
+ "y": 1225.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "98b0b441.82bf68",
+ "type": "comment",
+ "name": "Get controller info and send request",
+ "info": "",
+ "comments": "",
+ "x": 1146.0272216796875,
+ "y": 1105.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "82fd1dc6.67489",
+ "type": "get-resource",
+ "name": "get-resource esr-thirdparty-sdnc",
+ "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = $oof.vpn.thirdparty-sdnc-id AND \n\t\t depth = '1'\"\n pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1138.0272216796875,
+ "y": 1145.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "18d11459.dc281c",
+ "71856f9f.960fe",
+ "f7967d43.ee995"
+ ]
+ ]
+ },
+ {
+ "id": "8222512c.b2b7f",
+ "type": "execute",
+ "name": "execute RestApiCallNode Get token",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",
+ "comments": "",
+ "outputs": 1,
+ "x": 1150.5272216796875,
+ "y": 1245.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "96b7c9e8.a8e308",
+ "9f0248ba.15c698"
+ ]
+ ]
+ },
+ {
+ "id": "21e9ada7.141962",
+ "type": "comment",
+ "name": "call domain controller to create underlay OTN tunnel",
+ "info": "",
+ "comments": "",
+ "x": 1199.5272216796875,
+ "y": 1330.49560546875,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "47386aa5.9bb954",
+ "type": "call",
+ "name": "call GENERIC-RESOURCE-API:sotn-create-otn-tunnel",
+ "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-create-otn-tunnel' mode='sync' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1219.5272216796875,
+ "y": 1374.49560546875,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "1cfcb3ef.b12bfc",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 801.5272216796875,
+ "y": 1385.0407409667969,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "82fd1dc6.67489",
+ "70ff03f1.58983c",
+ "e0cd8c60.4c6de",
+ "8b8f2197.efea1",
+ "8222512c.b2b7f",
+ "518a2698.5bffd8",
+ "47386aa5.9bb954"
+ ]
+ ]
+ },
+ {
+ "id": "cbbfd612.33a888",
+ "type": "comment",
+ "name": "Loop through UNIs and configure domain controllers",
+ "info": "",
+ "comments": "",
+ "x": 736.5003662109375,
+ "y": 1193.5003662109375,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "e0cd8c60.4c6de",
+ "type": "set",
+ "name": "set sotn_value",
+ "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' />",
+ "comments": "",
+ "x": 1065.52734375,
+ "y": 1453.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "8b8f2197.efea1",
+ "type": "set",
+ "name": "set attachment_param",
+ "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",
+ "comments": "",
+ "x": 1090.02734375,
+ "y": 1493.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "518a2698.5bffd8",
+ "type": "switchNode",
+ "name": "switch prop.sdncRestApi.token_id",
+ "xml": "<switch test=\"`$prop.sdncRestApi.token_id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1125.52734375,
+ "y": 1533.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "7015f66c.94fd18",
+ "82d35da9.66aaf"
+ ]
+ ]
+ },
+ {
+ "id": "dd59a6d0.4b0dc8",
+ "type": "execute",
+ "name": "execute RestconfApiCallNode Create ethernet Service with token",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"patch\"/>\n<parameter name='dirPath' value=\"/opt/sdnc/restapi/yang\" />\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",
+ "comments": "",
+ "outputs": 1,
+ "x": 1642.52734375,
+ "y": 1553.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "f3736e9e.60052",
+ "c00d7e66.d88b7"
+ ]
+ ]
+ },
+ {
+ "id": "f3736e9e.60052",
+ "type": "success",
+ "name": "success",
+ "xml": "<outcome value='success'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1986.02734375,
+ "y": 1553.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "113a662f.cf308a"
+ ]
+ ]
+ },
+ {
+ "id": "113a662f.cf308a",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "comments": "",
+ "outputs": 1,
+ "x": 2143.52734375,
+ "y": 1553.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "9be7bcfb.b7fdc",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",
+ "comments": "",
+ "x": 2140.02734375,
+ "y": 1513.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": []
+ },
+ {
+ "id": "c00d7e66.d88b7",
+ "type": "failure",
+ "name": "failure",
+ "xml": "<outcome value='failure'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1982.02734375,
+ "y": 1513.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "9be7bcfb.b7fdc"
+ ]
+ ]
+ },
+ {
+ "id": "7015f66c.94fd18",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1338.3711738586426,
+ "y": 1513.162670135498,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "d88a1a72.f911d8"
+ ]
+ ]
+ },
+ {
+ "id": "82d35da9.66aaf",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1342.02734375,
+ "y": 1553.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "dd59a6d0.4b0dc8"
+ ]
+ ]
+ },
+ {
+ "id": "d88a1a72.f911d8",
+ "type": "execute",
+ "name": "execute RestconfApiCallNode Create ethernet Service without token",
+ "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\"/>",
+ "comments": "",
+ "outputs": 1,
+ "x": 1652.52734375,
+ "y": 1513.040771484375,
+ "z": "84e7e3f2.6b184",
+ "wires": [
+ [
+ "c00d7e66.d88b7",
+ "f3736e9e.60052"
+ ]
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json
index e137522c..f2598166 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.json
@@ -1,37 +1,20 @@
[
{
- "id": "5567fb41.3853ac",
- "type": "block",
- "name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
- "comments": "",
- "outputs": 1,
- "x": 442.02733993530273,
- "y": 433.74087047576904,
- "z": "6cf3d2be.22379c",
- "wires": [
- [
- "a47debf4.9031c"
- ]
- ]
- },
- {
- "id": "67dcf0d.95d1c1",
+ "id": "e9f5d8f7.e285a8",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 166.5,
- "y": 82.66665649414062,
- "z": "6cf3d2be.22379c",
+ "x": 83.47266006469727,
+ "y": 26,
+ "z": "8abb02c9.ea909",
"wires": [
[
- "13cbcd0e.cde623"
+ "f361420f.d2dd5"
]
]
},
{
- "id": "13cbcd0e.cde623",
+ "id": "f361420f.d2dd5",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -39,40 +22,601 @@
"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": 297.7856903076172,
- "y": 131.90476512908936,
- "z": "6cf3d2be.22379c",
+ "x": 214.75835037231445,
+ "y": 75.23810863494873,
+ "z": "8abb02c9.ea909",
"wires": [
[
- "90d8ef48.9bbbb8"
+ "83b54aea.5a2e08"
]
]
},
{
- "id": "90d8ef48.9bbbb8",
+ "id": "83b54aea.5a2e08",
"type": "method",
"name": "method sotn-vf-operation-uni-create",
"xml": "<method rpc='sotn-vf-operation-uni-create' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 300.9286193847656,
- "y": 216.66668891906738,
- "z": "6cf3d2be.22379c",
+ "x": 217.9012794494629,
+ "y": 160.00003242492676,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "d23ea373.2facb"
+ ]
+ ]
+ },
+ {
+ "id": "129ae0d2.67909f",
+ "type": "switchNode",
+ "name": "switch vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 592,
+ "y": 45,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "4518c55e.2af6cc"
+ ]
+ ]
+ },
+ {
+ "id": "4518c55e.2af6cc",
+ "type": "other",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 778.6666793823242,
+ "y": 44.33329772949219,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "49f6673c.896c38"
+ ]
+ ]
+ },
+ {
+ "id": "49f6673c.896c38",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",
+ "comments": "",
+ "x": 960.3333053588867,
+ "y": 44.33329772949219,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "344a6d66.006ae2",
+ "type": "for",
+ "name": "for each vnf",
+ "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 581.5794200897217,
+ "y": 99.50003504753113,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "b740b835.934dd8"
+ ]
+ ]
+ },
+ {
+ "id": "b740b835.934dd8",
+ "type": "switchNode",
+ "name": "switch this vnf-id == input vnf-id",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\"> \n",
+ "comments": "",
+ "outputs": 1,
+ "x": 832.5795154571533,
+ "y": 95.16665554046631,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "7d8c54e9.05fcdc"
+ ]
+ ]
+ },
+ {
+ "id": "7d8c54e9.05fcdc",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1050.9128322601318,
+ "y": 97.1666374206543,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "4090d448.987d9c"
+ ]
+ ]
+ },
+ {
+ "id": "4090d448.987d9c",
+ "type": "set",
+ "name": "set vnf-index",
+ "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
+ "comments": "",
+ "x": 1204.2460041046143,
+ "y": 97.16665840148926,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "d6f734d6.542738",
+ "type": "switchNode",
+ "name": "switch vnf-index",
+ "xml": "<switch test='`$vnf-index`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 595.579439163208,
+ "y": 160.5000331401825,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "cc5e7b73.313338"
+ ]
+ ]
+ },
+ {
+ "id": "cc5e7b73.313338",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 757.5794849395752,
+ "y": 159.50003218650818,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "d5e799c5.aa66e8"
+ ]
+ ]
+ },
+ {
+ "id": "d5e799c5.aa66e8",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf id not found in service-data\" />\n",
+ "comments": "",
+ "x": 906.8295764923096,
+ "y": 157.27790999412537,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "2e3b155c.1acdba",
+ "type": "switchNode",
+ "name": "switch vf-modules.vf-module_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 630.2500219345093,
+ "y": 221.99999403953552,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "d6b8c302.00cb5",
+ "74fd2b9a.39bbc4"
+ ]
+ ]
+ },
+ {
+ "id": "d6b8c302.00cb5",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 861.2500324249268,
+ "y": 197.99999117851257,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "b130c62a.6d5b28"
+ ]
+ ]
+ },
+ {
+ "id": "74fd2b9a.39bbc4",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 861.2500324249268,
+ "y": 237.99999117851257,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "aa20e5dd.34f068"
+ ]
+ ]
+ },
+ {
+ "id": "b130c62a.6d5b28",
+ "type": "set",
+ "name": "set vf-index",
+ "xml": "<set>\n<parameter name='vf-index' value='0' />\n",
+ "comments": "",
+ "x": 1003.7500324249268,
+ "y": 197.99999117851257,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "aa20e5dd.34f068",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1005.6070766448975,
+ "y": 237.93650317192078,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "290ec3b5.b78dec",
+ "ba0b306b.1384c"
+ ]
+ ]
+ },
+ {
+ "id": "ba0b306b.1384c",
+ "type": "set",
+ "name": "set vf-index",
+ "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",
+ "comments": "",
+ "x": 1158.3055515289307,
+ "y": 207.55560186458752,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "290ec3b5.b78dec",
+ "type": "for",
+ "name": "for each existing vf-index",
+ "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1214.7340564727783,
+ "y": 260.7777316570282,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "f5468be4.2d7768"
+ ]
+ ]
+ },
+ {
+ "id": "55b24f6b.1c68",
+ "type": "comment",
+ "name": "make sure this network doesn't exist already",
+ "info": "",
+ "comments": "",
+ "x": 1438.384786605835,
+ "y": 219.03178906440735,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "f5468be4.2d7768",
+ "type": "switchNode",
+ "name": "switch vf-module-id found",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1490.0197772979736,
+ "y": 260.3492343425751,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "416b188c.9635e8"
+ ]
+ ]
+ },
+ {
+ "id": "416b188c.9635e8",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1390.7499752044678,
+ "y": 318.9206655025482,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "5ff9d421.bc0c2c"
+ ]
+ ]
+ },
+ {
+ "id": "5ff9d421.bc0c2c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",
+ "comments": "",
+ "x": 1538.500078201294,
+ "y": 318.7778575713746,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "a3005c7c.22f1c",
+ "type": "comment",
+ "name": "Take the parameter names by removing prefix",
+ "info": "",
+ "comments": "",
+ "x": 674.8297939300537,
+ "y": 294.8294517993927,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "c2f9b109.0e45",
+ "type": "for",
+ "name": "for loop idx - VF input parameters",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 636.8295917510986,
+ "y": 338.16278433799744,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "c2930fc2.e5909"
+ ]
+ ]
+ },
+ {
+ "id": "c2930fc2.e5909",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 851.6079349517822,
+ "y": 335.71836829185486,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "d1ed645d.aa3a78",
+ "6dcf8b92.c77424"
+ ]
+ ]
+ },
+ {
+ "id": "d1ed645d.aa3a78",
+ "type": "execute",
+ "name": "execute split parameterName",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1047.8641376495361,
+ "y": 313.46650671958923,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "6dcf8b92.c77424",
+ "type": "set",
+ "name": "set parameterName",
+ "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",
+ "comments": "",
+ "x": 1017.3085651397705,
+ "y": 350.46662306785583,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "d23ea373.2facb",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 290.5794315338135,
+ "y": 355.4961154460907,
+ "z": "8abb02c9.ea909",
"wires": [
[
- "5567fb41.3853ac"
+ "c2f9b109.0e45",
+ "129ae0d2.67909f",
+ "2e3b155c.1acdba",
+ "a11f77d.859bf88",
+ "7c53c20f.68b9dc",
+ "42215efb.1d8e4",
+ "91211121.8f53",
+ "d001c737.a47218",
+ "b74ff3ee.b1d98",
+ "344a6d66.006ae2",
+ "d6f734d6.542738",
+ "3cca5aeb.576896",
+ "6ba0a91d.74fdb8",
+ "c0fe8566.aad758",
+ "3368b1eb.e464fe",
+ "29fa2ed2.416422"
]
]
},
{
- "id": "a47debf4.9031c",
+ "id": "d001c737.a47218",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 709.9444580078125,
- "y": 516.2777709960938,
- "z": "6cf3d2be.22379c",
+ "x": 577.8019104003906,
+ "y": 893.00732421875,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "91211121.8f53",
+ "type": "save",
+ "name": "save service relationship in AAI",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 633.0794067382812,
+ "y": 851.83349609375,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "42215efb.1d8e4",
+ "type": "save",
+ "name": "save uni resource in AAI",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 615.0794677734375,
+ "y": 747.83349609375,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "b74ff3ee.b1d98",
+ "type": "set",
+ "name": "set vf-module-level-oper-status",
+ "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",
+ "comments": "",
+ "x": 632.579439163208,
+ "y": 698.5000331401825,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "7c53c20f.68b9dc",
+ "type": "set",
+ "name": "set vf-module-object-path",
+ "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",
+ "comments": "",
+ "x": 616.079475402832,
+ "y": 656.3335154056549,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "a11f77d.859bf88",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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",
+ "comments": "",
+ "x": 627.9325504302979,
+ "y": 604.8296692371368,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "c0fe8566.aad758",
+ "type": "set",
+ "name": "set new vf-module_length",
+ "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",
+ "comments": "",
+ "x": 608,
+ "y": 497,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "3cca5aeb.576896",
+ "type": "set",
+ "name": "set vf-module-request-input.",
+ "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",
+ "comments": "",
+ "x": 614.9995880126953,
+ "y": 391.9912657737732,
+ "z": "8abb02c9.ea909",
+ "wires": []
+ },
+ {
+ "id": "6ba0a91d.74fdb8",
+ "type": "call",
+ "name": "call sotn-get-vf-module-uni-param",
+ "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-vf-module-uni-param' mode='sync' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 653.8132629394531,
+ "y": 444.83709144592285,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "3368b1eb.e464fe",
+ "type": "execute",
+ "name": "execute generate-vf-id",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vf-id\"/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 606.8132781982422,
+ "y": 553.3409690856934,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "29fa2ed2.416422",
+ "type": "get-resource",
+ "name": "get-resource generic-vnf",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 605,
+ "y": 803,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "5c744e64.d3743"
+ ]
+ ]
+ },
+ {
+ "id": "5c744e64.d3743",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 808,
+ "y": 798,
+ "z": "8abb02c9.ea909",
+ "wires": [
+ [
+ "79532ac9.38abe4"
+ ]
+ ]
+ },
+ {
+ "id": "79532ac9.38abe4",
+ "type": "set",
+ "name": "set tmp.relationship_length",
+ "xml": "<set>\n<parameter name=\"tmp.relationship_length\" value='`$tmp.aai.generic-vnf.relationship-list.relation_length`'/>\n",
+ "comments": "",
+ "x": 991,
+ "y": 795,
+ "z": "8abb02c9.ea909",
"wires": []
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json
index 6b71cf5f..9730d51f 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.json
@@ -1,20 +1,20 @@
[
{
- "id": "8e70cbab.9e762",
+ "id": "f8944be3.096ab8",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 192.56666564941406,
- "y": 127.56666564941406,
- "z": "cee6034b.da01e8",
+ "x": 111,
+ "y": 56,
+ "z": "9dcfec88.5f292",
"wires": [
[
- "a562bec1.5c6bb"
+ "68420034.5c6d98"
]
]
},
{
- "id": "a562bec1.5c6bb",
+ "id": "68420034.5c6d98",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,352 @@
"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": 323.85235595703125,
- "y": 176.8047742843628,
- "z": "cee6034b.da01e8",
+ "x": 242.2856903076172,
+ "y": 105.23810863494873,
+ "z": "9dcfec88.5f292",
"wires": [
[
- "bd2e1e6.b1131e"
+ "9e33642a.9ab6b8"
]
]
},
{
- "id": "bd2e1e6.b1131e",
+ "id": "9e33642a.9ab6b8",
"type": "method",
"name": "method sotn-vnf-topology-operation-underlay-activate",
"xml": "<method rpc='sotn-vnf-topology-operation-underlay-activate' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 326.9952850341797,
- "y": 261.5666980743408,
- "z": "cee6034b.da01e8",
+ "x": 245.42861938476562,
+ "y": 190.00003242492676,
+ "z": "9dcfec88.5f292",
"wires": [
[
- "948a9c7.119abe"
+ "f3fc4610.118298"
]
]
},
{
- "id": "948a9c7.119abe",
+ "id": "f3fc4610.118298",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
- "comments": "",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
"outputs": 1,
- "x": 468.0940055847168,
- "y": 478.6408796310425,
- "z": "cee6034b.da01e8",
+ "x": 395.238037109375,
+ "y": 319.6666564941406,
+ "z": "9dcfec88.5f292",
"wires": [
[
- "1b5215d4.38c512"
+ "321f78ca.ccdc38",
+ "47a0d8c5.66ef38",
+ "30a9bb6d.ac3de4",
+ "470fa21f.c90dac",
+ "a9e79f17.0260f",
+ "79db1524.d2b97c",
+ "47e6b5ed.41cf1c"
]
]
},
{
- "id": "1b5215d4.38c512",
+ "id": "321f78ca.ccdc38",
+ "type": "set",
+ "name": "set vnf-level-oper-status to Active",
+ "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`' />",
+ "comments": "",
+ "x": 738.3849563598633,
+ "y": 556.6705458434299,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "47a0d8c5.66ef38",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 721.566650390625,
- "y": 589.566650390625,
- "z": "cee6034b.da01e8",
+ "x": 658.571647644043,
+ "y": 682.5970833571628,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "30a9bb6d.ac3de4",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 744.5716018676758,
+ "y": 504.5968001158908,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "470fa21f.c90dac",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 753,
+ "y": 259,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "bde1ee44.7683d",
+ "2e788e91.c6a1c2",
+ "946699e9.3b5b1"
+ ]
+ ]
+ },
+ {
+ "id": "946699e9.3b5b1",
+ "type": "outcome",
+ "name": "0",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1145.968994140625,
+ "y": 224.96875,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "5b4e6761.75d918"
+ ]
+ ]
+ },
+ {
+ "id": "5b4e6761.75d918",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1300.7778816223145,
+ "y": 243.889018535614,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "bde1ee44.7683d",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1139.0001335144043,
+ "y": 264.00007152557373,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "5b4e6761.75d918"
+ ]
+ ]
+ },
+ {
+ "id": "2e788e91.c6a1c2",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1132.0005416870117,
+ "y": 297.000075340271,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "ebf17a44.2210a8"
+ ]
+ ]
+ },
+ {
+ "id": "ebf17a44.2210a8",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1279.2700843811035,
+ "y": 297.5547204017639,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "e3ab2fd7.ebbf08"
+ ]
+ ]
+ },
+ {
+ "id": "e3ab2fd7.ebbf08",
+ "type": "for",
+ "name": "for vidx..service-data.vnfs.vnf_length[]",
+ "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1525.2862014770508,
+ "y": 304.42864084243774,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "18572251.98d83e"
+ ]
+ ]
+ },
+ {
+ "id": "18572251.98d83e",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1744.6358337402344,
+ "y": 303.96872091293335,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "4a39ea58.7fb184"
+ ]
+ ]
+ },
+ {
+ "id": "4a39ea58.7fb184",
+ "type": "switchNode",
+ "name": "switch vnfid found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1898.715431213379,
+ "y": 303.67880296707153,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "669b0d11.8a0824"
+ ]
+ ]
+ },
+ {
+ "id": "669b0d11.8a0824",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2109.6675758361816,
+ "y": 306.571494102478,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "e89a8750.1f8e18"
+ ]
+ ]
+ },
+ {
+ "id": "e89a8750.1f8e18",
+ "type": "set",
+ "name": "set tmp.vidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",
+ "comments": "",
+ "x": 2319.199951171875,
+ "y": 308.32159423828125,
+ "z": "9dcfec88.5f292",
"wires": []
+ },
+ {
+ "id": "a9e79f17.0260f",
+ "type": "save",
+ "name": "update AnAI - vnf-instance.orchestration-status",
+ "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\" />",
+ "comments": "",
+ "outputs": 1,
+ "x": 763.9999618530273,
+ "y": 623.0103714736179,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "79db1524.d2b97c",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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.' />",
+ "comments": "",
+ "x": 743.0000762939453,
+ "y": 454.01033284980804,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "47e6b5ed.41cf1c",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 729.7499389648438,
+ "y": 359.00390270072967,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "3e2d00ea.214d9",
+ "ed7ee56e.298fc8"
+ ]
+ ]
+ },
+ {
+ "id": "3e2d00ea.214d9",
+ "type": "outcome",
+ "name": "outcome Created",
+ "xml": "<outcome value='Created'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1109.5833320617676,
+ "y": 364.1149909766391,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "34b25335.603514"
+ ]
+ ]
+ },
+ {
+ "id": "ed7ee56e.298fc8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1087.583351135254,
+ "y": 414.1150024207309,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ [
+ "4a64950b.2e4a84"
+ ]
+ ]
+ },
+ {
+ "id": "4a64950b.2e4a84",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1247.0831184387207,
+ "y": 417.1150014670566,
+ "z": "9dcfec88.5f292",
+ "wires": []
+ },
+ {
+ "id": "34b25335.603514",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1319.889705657959,
+ "y": 375.44016626197845,
+ "z": "9dcfec88.5f292",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json
index 2a955c16..fe1d70f2 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.json
@@ -1,20 +1,20 @@
[
{
- "id": "6e8e8f80.d43c1",
+ "id": "630403de.7c4dfc",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 198.56666564941406,
- "y": 102.56666564941406,
- "z": "fcd8d790.9bb058",
+ "x": 130,
+ "y": 71,
+ "z": "adc7d7d7.2ba55",
"wires": [
[
- "bbddfda2.fd8ca8"
+ "80c50a18.8d75c"
]
]
},
{
- "id": "bbddfda2.fd8ca8",
+ "id": "80c50a18.8d75c",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,481 @@
"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": 482.85235595703125,
- "y": 163.8047742843628,
- "z": "fcd8d790.9bb058",
+ "x": 414.2856903076172,
+ "y": 132.23810863494873,
+ "z": "adc7d7d7.2ba55",
"wires": [
[
- "b5eed43.f629328"
+ "2da8c00e.5874f"
]
]
},
{
- "id": "b5eed43.f629328",
+ "id": "2da8c00e.5874f",
"type": "method",
"name": "method sotn-vnf-topology-operation-underlay-create",
"xml": "<method rpc='sotn-vnf-topology-operation-underlay-create' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 488.9952697753906,
- "y": 248.5666961669922,
- "z": "fcd8d790.9bb058",
+ "x": 420.42860412597656,
+ "y": 217.00003051757812,
+ "z": "adc7d7d7.2ba55",
"wires": [
[
- "5debc633.a3523"
+ "c4830870.f71be"
]
]
},
{
- "id": "5debc633.a3523",
+ "id": "c4830870.f71be",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 790.238037109375,
+ "y": 241.66668701171875,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "d09b0487.d267f8",
+ "4e465113.c34b3",
+ "6d4651f1.9a44a",
+ "b93f8dee.f542a",
+ "18feff02.43bff9",
+ "e9275990.6ea4e",
+ "273e48bf.25ca5",
+ "4b57404f.d373b8",
+ "4822a493.73c54c",
+ "567e338.a899b4c",
+ "616296b0.6f36",
+ "cdecd2ad.ea2458",
+ "9b5e953e.0822e8"
+ ]
+ ]
+ },
+ {
+ "id": "4e465113.c34b3",
+ "type": "set",
+ "name": "set vnf-level-oper-status to Created",
+ "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",
+ "comments": "",
+ "x": 1212.3848495483398,
+ "y": 605.6706197531894,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "d09b0487.d267f8",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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",
+ "comments": "",
+ "x": 1204.238037109375,
+ "y": 500.6668718131259,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "18feff02.43bff9",
+ "type": "execute",
+ "name": "execute generate-vnf-index",
+ "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vnf-id\"/>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1192.5715408325195,
+ "y": 450.3334558280185,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "567e338.a899b4c",
+ "type": "set",
+ "name": "set vnf-index to service data",
+ "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />\n",
+ "comments": "",
+ "x": 1203.5716171264648,
+ "y": 557.3334596427158,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "6d4651f1.9a44a",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1219.5713577270508,
+ "y": 120.33337858039886,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "c4be7092.54bab",
+ "bebf6c90.f10358"
+ ]
+ ]
+ },
+ {
+ "id": "c4be7092.54bab",
+ "type": "other",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1454.285743713379,
+ "y": 115.47619893867522,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "55302818.0621f"
+ ]
+ ]
+ },
+ {
+ "id": "55302818.0621f",
+ "type": "set",
+ "name": "set vnf-index=0",
+ "xml": "<set>\n<parameter name='vnf-index' value='0' />\n",
+ "comments": "",
+ "x": 1614.5714492797852,
+ "y": 115.4762904914096,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "bebf6c90.f10358",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1450.714282989502,
+ "y": 148.76203039009124,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "d6fccb24.04a71"
+ ]
+ ]
+ },
+ {
+ "id": "543cefe7.718a7",
+ "type": "set",
+ "name": "set vnf-index = vnf_length",
+ "xml": "<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",
+ "comments": "",
+ "x": 1843.5715255737305,
+ "y": 127.04775598365813,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "5d18757b.848c24",
+ "type": "for",
+ "name": "for each existing VNF",
+ "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1832.000144958496,
+ "y": 162.0477278502658,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "8ce4ca7d.ffb71"
+ ]
+ ]
+ },
+ {
+ "id": "d6fccb24.04a71",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
"atomic": "false",
"comments": "",
"outputs": 1,
- "x": 627.0940055847168,
- "y": 465.6408796310425,
- "z": "fcd8d790.9bb058",
+ "x": 1585.428565979004,
+ "y": 150.76199987251312,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "543cefe7.718a7",
+ "5d18757b.848c24"
+ ]
+ ]
+ },
+ {
+ "id": "8ce4ca7d.ffb71",
+ "type": "switchNode",
+ "name": "switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",
+ "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2225.2858810424805,
+ "y": 162.6192119391635,
+ "z": "adc7d7d7.2ba55",
"wires": [
[
- "f1ef9959.63e988"
+ "46146016.cb5b58"
]
]
},
{
- "id": "f1ef9959.63e988",
+ "id": "46146016.cb5b58",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2506.5715827941895,
+ "y": 161.1906173499301,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "14fd2dd2.04e2ea"
+ ]
+ ]
+ },
+ {
+ "id": "fac5d84d.dacdb8",
+ "type": "comment",
+ "name": "make sure this vnf-id doesn't exist already",
+ "info": "",
+ "comments": "",
+ "x": 2194.428497314453,
+ "y": 126.19060399848968,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "b93f8dee.f542a",
+ "type": "set",
+ "name": "set new vnf_length",
+ "xml": "<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",
+ "comments": "",
+ "x": 1150.571533203125,
+ "y": 398.33343505859375,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "e9275990.6ea4e",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 880.566650390625,
- "y": 576.566650390625,
- "z": "fcd8d790.9bb058",
+ "x": 1151.5715026855469,
+ "y": 868.5969713004306,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "4822a493.73c54c",
+ "type": "save",
+ "name": "save service relationship in AAI",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1184.2382736206055,
+ "y": 817.5968644889072,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "273e48bf.25ca5",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 1205.571533203125,
+ "y": 646.5968902381137,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "14fd2dd2.04e2ea",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF 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",
+ "comments": "",
+ "x": 2635.142951965332,
+ "y": 212.19063165504485,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "4b57404f.d373b8",
+ "type": "save",
+ "name": "save AnAI - vnf-instance.orchestration-status",
+ "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`\"/>",
+ "comments": "",
+ "outputs": 1,
+ "x": 1260.5458374023438,
+ "y": 756.2471072943881,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "1ddf67d5.b35a7",
+ "type": "comment",
+ "name": "TODO: change AAI models",
+ "info": "",
+ "comments": "",
+ "x": 1194.1820983886719,
+ "y": 715.9743230612949,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "eb3e5b54.ee7cc8",
+ "type": "execute",
+ "name": "execute split parameterName",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1620.7395858764648,
+ "y": 209.75002291519195,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "a93d9d55.574d98",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1424.483383178711,
+ "y": 214.00189593154937,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "eb3e5b54.ee7cc8",
+ "34cb35bb.2ef0aa"
+ ]
+ ]
+ },
+ {
+ "id": "616296b0.6f36",
+ "type": "for",
+ "name": "for loop idx - VNF input parameters",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1209.7050399780273,
+ "y": 216.44631197769195,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "a93d9d55.574d98"
+ ]
+ ]
+ },
+ {
+ "id": "cdecd2ad.ea2458",
+ "type": "set",
+ "name": "set vnf-request-input.",
+ "xml": "<set>\n<parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />\n",
+ "comments": "",
+ "x": 1166.7046737670898,
+ "y": 286.77101900894195,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "34cb35bb.2ef0aa",
+ "type": "set",
+ "name": "set parameterName",
+ "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",
+ "comments": "",
+ "x": 1597.7395858764648,
+ "y": 255.75002291519195,
+ "z": "adc7d7d7.2ba55",
+ "wires": []
+ },
+ {
+ "id": "9b5e953e.0822e8",
+ "type": "for",
+ "name": "for each sdwan-get-request-input-param",
+ "xml": "<for index=\"idx\" start=\"0\" end=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1222.7395858764648,
+ "y": 338.75002291519195,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "42766226.3db64c"
+ ]
+ ]
+ },
+ {
+ "id": "42766226.3db64c",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1448.9722518920898,
+ "y": 337.09377291519195,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "85dff1eb.0e22b8"
+ ]
+ ]
+ },
+ {
+ "id": "85dff1eb.0e22b8",
+ "type": "switchNode",
+ "name": "switch vnf name",
+ "xml": "<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1605.4722518920898,
+ "y": 335.0938339503482,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "2f903a44.280976"
+ ]
+ ]
+ },
+ {
+ "id": "2f903a44.280976",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1766.4726181030273,
+ "y": 335.09389498550445,
+ "z": "adc7d7d7.2ba55",
+ "wires": [
+ [
+ "55b726c2.cd02d"
+ ]
+ ]
+ },
+ {
+ "id": "55b726c2.cd02d",
+ "type": "set",
+ "name": "set vnf name",
+ "xml": "<set>\n<parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
+ "comments": "",
+ "x": 1924.4727401733398,
+ "y": 333.6939316065982,
+ "z": "adc7d7d7.2ba55",
"wires": []
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json
index 22f21465..543904d1 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.json
@@ -1,20 +1,20 @@
[
{
- "id": "cbc1a13.7b8456",
+ "id": "3ad24b85.b3bf64",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 154.56666564941406,
- "y": 94.56666564941406,
- "z": "81a75cb3.dfe96",
+ "x": 106,
+ "y": 56,
+ "z": "1749c920.27afb7",
"wires": [
[
- "58be845c.53f8dc"
+ "7476f33b.2d0eb4"
]
]
},
{
- "id": "58be845c.53f8dc",
+ "id": "7476f33b.2d0eb4",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,412 @@
"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": 438.85235595703125,
- "y": 155.8047742843628,
- "z": "81a75cb3.dfe96",
+ "x": 390.2856903076172,
+ "y": 117.23810863494873,
+ "z": "1749c920.27afb7",
"wires": [
[
- "1e9f5313.eb2125"
+ "7da838c5.7d227"
]
]
},
{
- "id": "1e9f5313.eb2125",
+ "id": "7da838c5.7d227",
"type": "method",
"name": "method sotn-vnf-topology-operation-underlay-deactivate",
"xml": "<method rpc='sotn-vnf-topology-operation-underlay-deactivate' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 444.9952697753906,
- "y": 240.5666961669922,
- "z": "81a75cb3.dfe96",
+ "x": 396.42860412597656,
+ "y": 202.00003051757812,
+ "z": "1749c920.27afb7",
"wires": [
[
- "1920f1ef.4bc3e6"
+ "a742330d.128a3"
]
]
},
{
- "id": "1920f1ef.4bc3e6",
+ "id": "a742330d.128a3",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
- "comments": "",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
"outputs": 1,
- "x": 583.0940055847168,
- "y": 457.6408796310425,
- "z": "81a75cb3.dfe96",
+ "x": 592.2380447387695,
+ "y": 360.66666814964265,
+ "z": "1749c920.27afb7",
"wires": [
[
- "7d3f17a8.8dc"
+ "dfd1a930.eeb17",
+ "b0be94f0.05dfb8",
+ "59f78da4.50f2fc",
+ "41673fa0.b1a818",
+ "cdfb0ad2.8ad0d8",
+ "4b93b56d.437c5c",
+ "614f37e0.0249a"
]
]
},
{
- "id": "7d3f17a8.8dc",
+ "id": "dfd1a930.eeb17",
+ "type": "set",
+ "name": "set vnf-level-oper-status to PendingDelete",
+ "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`' />",
+ "comments": "",
+ "x": 1000.3849029541016,
+ "y": 509.670627951622,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "b0be94f0.05dfb8",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 836.566650390625,
- "y": 568.566650390625,
- "z": "81a75cb3.dfe96",
+ "x": 926.5716247558594,
+ "y": 618.5970582962036,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "59f78da4.50f2fc",
+ "type": "set",
+ "name": "set vnf-index and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 977.5716247558594,
+ "y": 465.5968955755234,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "41673fa0.b1a818",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1022.0000610351562,
+ "y": 250.00000545661896,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "46f139dc.3ca98",
+ "7a6d1b04.564dbc",
+ "95730397.a4e998"
+ ]
+ ]
+ },
+ {
+ "id": "95730397.a4e998",
+ "type": "outcome",
+ "name": "0",
+ "xml": "<outcome value='0'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1280.9689559936523,
+ "y": 211.96876499336213,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "646213b6.68f42c"
+ ]
+ ]
+ },
+ {
+ "id": "646213b6.68f42c",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1435.7778434753418,
+ "y": 230.88903352897614,
+ "z": "1749c920.27afb7",
"wires": []
+ },
+ {
+ "id": "46f139dc.3ca98",
+ "type": "other",
+ "name": "Null",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1274.0000953674316,
+ "y": 251.00008651893586,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "646213b6.68f42c"
+ ]
+ ]
+ },
+ {
+ "id": "7a6d1b04.564dbc",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1267.000503540039,
+ "y": 284.0000903336331,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "4e29626e.e0608c"
+ ]
+ ]
+ },
+ {
+ "id": "4e29626e.e0608c",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1414.2700462341309,
+ "y": 284.55473539512604,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "530877d0.02663",
+ "a9f43f7c.095d3"
+ ]
+ ]
+ },
+ {
+ "id": "530877d0.02663",
+ "type": "for",
+ "name": "for vidx..service-data.vnfs.vnf_length[]",
+ "xml": "<for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1660.2861633300781,
+ "y": 291.4286558357999,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "a8e35f93.0e2bf"
+ ]
+ ]
+ },
+ {
+ "id": "a8e35f93.0e2bf",
+ "type": "block",
+ "name": "block",
+ "xml": "<block>\n",
+ "atomic": "false",
+ "comments": "",
+ "outputs": 1,
+ "x": 1879.6357955932617,
+ "y": 290.9687359062955,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "370233d.767e7cc"
+ ]
+ ]
+ },
+ {
+ "id": "370233d.767e7cc",
+ "type": "switchNode",
+ "name": "switch vnfid found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2033.7153930664062,
+ "y": 290.67881796043366,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "908635e8.5a6bb"
+ ]
+ ]
+ },
+ {
+ "id": "908635e8.5a6bb",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2209.6675148010254,
+ "y": 290.57150003593415,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "f0769224.c0af2"
+ ]
+ ]
+ },
+ {
+ "id": "f0769224.c0af2",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 2358.312973022461,
+ "y": 278.97913000267,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "6bf835a7.6620bc"
+ ]
+ ]
+ },
+ {
+ "id": "6bf835a7.6620bc",
+ "type": "set",
+ "name": "set tmp.vidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.vidx' value='`$vidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />\n",
+ "comments": "",
+ "x": 2620.1997680664062,
+ "y": 256.3215563027188,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "a9f43f7c.095d3",
+ "type": "switchNode",
+ "name": "switch tmp.vidx ",
+ "xml": "<switch test=\"`$tmp.vidx`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1603.0000228881836,
+ "y": 345.99999353569,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "b3149be7.2c6a9"
+ ]
+ ]
+ },
+ {
+ "id": "b3149be7.2c6a9",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1758.4286499023438,
+ "y": 345.57137701194733,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "4610208d.e47188"
+ ]
+ ]
+ },
+ {
+ "id": "4610208d.e47188",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1903.8573913574219,
+ "y": 345.7143146721646,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "cdfb0ad2.8ad0d8",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 971.0000762939453,
+ "y": 358.88902044296265,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "c03a8f6a.5ba2c",
+ "fbd10336.a597a8"
+ ]
+ ]
+ },
+ {
+ "id": "c03a8f6a.5ba2c",
+ "type": "outcome",
+ "name": "outcome Active",
+ "xml": "<outcome value='Active'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1216.8333702087402,
+ "y": 360.00011825561523,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "442f984.65ce9e8"
+ ]
+ ]
+ },
+ {
+ "id": "442f984.65ce9e8",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1430.139762878418,
+ "y": 369.32530784606934,
+ "z": "1749c920.27afb7",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "fbd10336.a597a8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1194.8333892822266,
+ "y": 410.00012969970703,
+ "z": "1749c920.27afb7",
+ "wires": [
+ [
+ "2dff766b.d66b12"
+ ]
+ ]
+ },
+ {
+ "id": "2dff766b.d66b12",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1354.3331565856934,
+ "y": 413.0001287460327,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "4b93b56d.437c5c",
+ "type": "set",
+ "name": "copy input data to service data",
+ "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.' />",
+ "comments": "",
+ "x": 980.0065612792969,
+ "y": 418.010435461998,
+ "z": "1749c920.27afb7",
+ "wires": []
+ },
+ {
+ "id": "614f37e0.0249a",
+ "type": "save",
+ "name": "update AnAI - vnf-instance.orchestration-status",
+ "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\" />",
+ "comments": "",
+ "outputs": 1,
+ "x": 1022.0064239501953,
+ "y": 564.0105141401291,
+ "z": "1749c920.27afb7",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json
index 6610951e..be1161f3 100644
--- a/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json
+++ b/platform-logic/generic-resource-api/src/main/json/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.json
@@ -1,20 +1,20 @@
[
{
- "id": "3747de4a.ccc95a",
+ "id": "99dfdf6b.5f9318",
"type": "dgstart",
"name": "DGSTART",
"outputs": 1,
- "x": 192.56666564941406,
- "y": 124.56666564941406,
- "z": "6d4d0934.24831",
+ "x": 99,
+ "y": 44,
+ "z": "fa25b782.cc03a",
"wires": [
[
- "a6a68d99.1f09a8"
+ "92759b22.eb00d"
]
]
},
{
- "id": "a6a68d99.1f09a8",
+ "id": "92759b22.eb00d",
"type": "service-logic",
"name": "GENERIC-RESOURCE-API ${project.version}",
"module": "GENERIC-RESOURCE-API",
@@ -22,57 +22,504 @@
"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": 476.85235595703125,
- "y": 185.8047742843628,
- "z": "6d4d0934.24831",
+ "x": 383.2856903076172,
+ "y": 105.23810863494873,
+ "z": "fa25b782.cc03a",
"wires": [
[
- "19971b48.295af5"
+ "2dedb06e.bc71a8"
]
]
},
{
- "id": "19971b48.295af5",
+ "id": "2dedb06e.bc71a8",
"type": "method",
"name": "method sotn-vnf-topology-operation-underlay-delete",
"xml": "<method rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync'>\n",
"comments": "",
"outputs": 1,
- "x": 482.9952697753906,
- "y": 270.5666961669922,
- "z": "6d4d0934.24831",
+ "x": 389.42860412597656,
+ "y": 190.00003051757812,
+ "z": "fa25b782.cc03a",
"wires": [
[
- "d89b2a32.f1b858"
+ "97c9b256.2d5028"
]
]
},
{
- "id": "d89b2a32.f1b858",
+ "id": "9d9a5f2a.b67c4",
+ "type": "comment",
+ "name": "site-vnf-topology-operation-delete",
+ "info": "",
+ "comments": "",
+ "x": 961.9162979125977,
+ "y": 111.58639907836914,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "97c9b256.2d5028",
"type": "block",
"name": "block : atomic",
- "xml": "<block atomic=\"true\">\n",
- "atomic": "false",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 589.2380447387695,
+ "y": 339.6666717529297,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "26acbc94.464644",
+ "29ca41d0.155d6e",
+ "8eccfc5e.058248",
+ "74bea299.2fc214",
+ "ca45e630.8251e",
+ "bd55244d.57f018",
+ "f446816e.b70aa8",
+ "b3a04e31.994298",
+ "de69c0de.2774",
+ "145f15a6.badfba"
+ ]
+ ]
+ },
+ {
+ "id": "74bea299.2fc214",
+ "type": "switchNode",
+ "name": "switch service-data.vnfs.vnf_length",
+ "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1041.6660919189453,
+ "y": 257.2611792087555,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "c81a6b20.3c67a",
+ "3105aeca.f2a9f2"
+ ]
+ ]
+ },
+ {
+ "id": "c81a6b20.3c67a",
+ "type": "other",
+ "name": "outcome Null",
+ "xml": "<outcome value=''>\n",
"comments": "",
"outputs": 1,
- "x": 621.0940055847168,
- "y": 487.6408796310425,
- "z": "6d4d0934.24831",
+ "x": 1306.3884048461914,
+ "y": 239.81680130958557,
+ "z": "fa25b782.cc03a",
"wires": [
[
- "5e754ce4.b92d84"
+ "86a36888.63694"
]
]
},
{
- "id": "5e754ce4.b92d84",
+ "id": "86a36888.63694",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1487.3882751464844,
+ "y": 234.81667923927307,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "3105aeca.f2a9f2",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1291.8884048461914,
+ "y": 291.81676411628723,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "e367ae2f.4837d8"
+ ]
+ ]
+ },
+ {
+ "id": "e367ae2f.4837d8",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1463.888111114502,
+ "y": 291.8167622089386,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "5a431e2a.3fe42",
+ "5859a1a2.5df2c8"
+ ]
+ ]
+ },
+ {
+ "id": "5859a1a2.5df2c8",
+ "type": "switchNode",
+ "name": "switch tmp.nidx ",
+ "xml": "<switch test=\"`$tmp.nidx`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1638.888282775879,
+ "y": 310.81668400764465,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "fcf67c01.2589c8"
+ ]
+ ]
+ },
+ {
+ "id": "8eccfc5e.058248",
+ "type": "switchNode",
+ "name": "switch vnf-level-oper-status",
+ "xml": "<switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1012.0550918579102,
+ "y": 331.7056429386139,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "4aaa97b8.591b",
+ "ac9c60b4.538be8"
+ ]
+ ]
+ },
+ {
+ "id": "4aaa97b8.591b",
+ "type": "outcome",
+ "name": "outcome PendingDelete",
+ "xml": "<outcome value='PendingDelete'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1288.8884353637695,
+ "y": 334.8167426586151,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "4f3006f4.4a2aa"
+ ]
+ ]
+ },
+ {
+ "id": "ac9c60b4.538be8",
+ "type": "other",
+ "name": "other",
+ "xml": "<outcome value='Other'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1249.8884201049805,
+ "y": 380.8167917728424,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "309ebf7d.9eaeb"
+ ]
+ ]
+ },
+ {
+ "id": "309ebf7d.9eaeb",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",
+ "comments": "",
+ "x": 1398.3881340026855,
+ "y": 379.81677174568176,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "ca45e630.8251e",
+ "type": "execute",
+ "name": "execute requiredParameters",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1028.388427734375,
+ "y": 200.8167588710785,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "5a431e2a.3fe42",
+ "type": "for",
+ "name": "for nidx..service-data.vnfs.vnf[]",
+ "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1699.3882865905762,
+ "y": 246.8166801929474,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "aad2af6a.5ca7a8"
+ ]
+ ]
+ },
+ {
+ "id": "aad2af6a.5ca7a8",
+ "type": "switchNode",
+ "name": "switch vnf-id found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1955.3883056640625,
+ "y": 246.8166801929474,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "5de2b129.640c08"
+ ]
+ ]
+ },
+ {
+ "id": "5de2b129.640c08",
+ "type": "outcomeTrue",
+ "name": "true",
+ "xml": "<outcome value='true'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 2131.888359069824,
+ "y": 249.8166801929474,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "46f375ea.217e34"
+ ]
+ ]
+ },
+ {
+ "id": "46f375ea.217e34",
+ "type": "set",
+ "name": "set tmp.nidx and ctx.vnf-data",
+ "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />\n",
+ "comments": "",
+ "x": 2298.8883743286133,
+ "y": 310.8166801929474,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "579c1f0d.46de88",
+ "type": "returnFailure",
+ "name": "return failure",
+ "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",
+ "comments": "",
+ "x": 1944.388298034668,
+ "y": 310.81668400764465,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "fcf67c01.2589c8",
+ "type": "outcome",
+ "name": "NULL",
+ "xml": "<outcome value=''>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1806.888298034668,
+ "y": 310.81668400764465,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "579c1f0d.46de88"
+ ]
+ ]
+ },
+ {
+ "id": "26acbc94.464644",
+ "type": "set",
+ "name": "set vnfId and vnf-object-path",
+ "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/'` \" />",
+ "comments": "",
+ "x": 998.9051132202148,
+ "y": 546.3336856365204,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "29ca41d0.155d6e",
"type": "returnSuccess",
"name": "return success",
"xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
"comments": "",
- "x": 874.566650390625,
- "y": 598.566650390625,
- "z": "6d4d0934.24831",
+ "x": 955.0162658691406,
+ "y": 623.8892447948456,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "4f3006f4.4a2aa",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1484.1947937011719,
+ "y": 342.14194798469543,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "bd55244d.57f018",
+ "type": "set",
+ "name": "set prop.vnfNewidx",
+ "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",
+ "comments": "",
+ "x": 981.0000839233398,
+ "y": 382.00007796287537,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "f446816e.b70aa8",
+ "type": "for",
+ "name": "for lidx..service-data.vnfs.vnf[]",
+ "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1005.0000686645508,
+ "y": 424.0000765323639,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "1ab96be7.cabb84"
+ ]
+ ]
+ },
+ {
+ "id": "1ab96be7.cabb84",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1266.000144958496,
+ "y": 428.00011134147644,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "29fae41e.925d84"
+ ]
+ ]
+ },
+ {
+ "id": "29fae41e.925d84",
+ "type": "switchNode",
+ "name": "switch vnf-id found",
+ "xml": "<switch test=\"`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`\">\n\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1458.0000915527344,
+ "y": 437.00015568733215,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "3df67c89.832674"
+ ]
+ ]
+ },
+ {
+ "id": "3df67c89.832674",
+ "type": "outcomeFalse",
+ "name": "false",
+ "xml": "<outcome value='false'>\n",
+ "comments": "",
+ "outputs": 1,
+ "x": 1644.0001068115234,
+ "y": 421.0000422000885,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "7d2244a.01d08bc"
+ ]
+ ]
+ },
+ {
+ "id": "7d2244a.01d08bc",
+ "type": "block",
+ "name": "block : atomic",
+ "xml": "<block atomic=\"true\">",
+ "atomic": "true",
+ "outputs": 1,
+ "x": 1795.0000305175781,
+ "y": 422.0000784397125,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ [
+ "83093bd6.426818",
+ "5e4d811b.25e5b"
+ ]
+ ]
+ },
+ {
+ "id": "83093bd6.426818",
+ "type": "set",
+ "name": "set vnf data",
+ "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",
+ "comments": "",
+ "x": 1962.0001983642578,
+ "y": 396.00026202201843,
+ "z": "fa25b782.cc03a",
"wires": []
+ },
+ {
+ "id": "5e4d811b.25e5b",
+ "type": "set",
+ "name": "set prop.vnfNewidx",
+ "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",
+ "comments": "",
+ "x": 1982.0001258850098,
+ "y": 453.0001976490021,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "b3a04e31.994298",
+ "type": "set",
+ "name": "set new vnf length",
+ "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",
+ "comments": "",
+ "x": 973.1014823913574,
+ "y": 467.804429769516,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "de69c0de.2774",
+ "type": "set",
+ "name": "Remove vnf from ServiceData",
+ "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$prop.vnfidxLen].\" value=\"\"/>\n\n",
+ "comments": "",
+ "x": 1003.0002517700195,
+ "y": 506.00021290779114,
+ "z": "fa25b782.cc03a",
+ "wires": []
+ },
+ {
+ "id": "145f15a6.badfba",
+ "type": "save",
+ "name": "delete AnAI - vnf-instance.orchestration-status",
+ "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",
+ "comments": "",
+ "outputs": 1,
+ "x": 1060.0066452026367,
+ "y": 583.0106251239777,
+ "z": "fa25b782.cc03a",
+ "wires": [
+ []
+ ]
}
] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/resources/graph.versions b/platform-logic/generic-resource-api/src/main/resources/graph.versions
index c90222c6..ba54f849 100755
--- a/platform-logic/generic-resource-api/src/main/resources/graph.versions
+++ b/platform-logic/generic-resource-api/src/main/resources/graph.versions
@@ -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
index 00000000..4527b788
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-create-otn-tunnel.xml
@@ -0,0 +1,125 @@
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+ <method rpc='sotn-create-otn-tunnel' mode='sync'>
+ <block atomic="true">
+ <switch test='`$oof.vpn.access-provider-id`'>
+ <outcome value='`$domain-A.provider-id`'>
+
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.otn-domain.' value='`$domain-A.`' />
+ </set>
+ </block>
+ </outcome>
+ <outcome value='`$domain-B.provider-id`'>
+
+ <block atomic="true">
+ <set>
+ <parameter name='$tmp.otn-domain.' value='`$domain-B.`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$oof.vpn.access-node-id`'>
+ <outcome value='`$oof.vpns[0].access-node-id`'>
+
+ <block atomic="true">
+ <set>
+ <parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$oof.vpn.access-node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$otn-domain.node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].dst-ttp-id' value='`$otn-domain.ttp-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_dst-tpn' value='`$otn-domain.tpn`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$oof.vpn.access-node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$otn-domain.node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />
+ </set>
+ </block>
+ </outcome>
+ <outcome value='`$oof.vpns[$oof.vpns_length].access-node-id`'>
+
+ <block atomic="true">
+ <set>
+ <parameter name='ietf-te_te.tunnels.tunnel[0].destination' value='`$oof.vpn.access-node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].source' value='`$otn-domain.node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].src-ttp-id' value='`$otn-domain.ttp-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].ietf-otn-tunnel_src-tpn' value='`$otn-domain.tpn`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].name' value='otntunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.client-id' value='`$otn-domain.client-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.provider-id' value='`$otn-domain.provider-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[0].te-topology-identifier.topology-id' value='`$otn-domain.te-topo-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].destination' value='`$oof.vpn.access-node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].source' value='`$otn-domain.node-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].name' value='tptunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].dependency-tunnels.dependency-tunnel[0].name' value='otntunnel-22' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.client-id' value='`$oof.vpn.access-client-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.provider-id' value='`$oof.vpn.access-provider-id`' />
+ <parameter name='ietf-te_te.tunnels.tunnel[1].te-topology-identifier.topology-id' value='`$oof.vpn.access-topology-id`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$prop.sdncRestApi.token_id`">
+ <outcome value=''>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="patch"/>
+ <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />
+ <parameter name="responsePrefix" value="vpn-result"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create vpn rest api" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </outcome>
+ <outcome value='Other'>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-te:te'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="patch"/>
+ <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />
+ <parameter name="responsePrefix" value="vpn-result"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create vpn rest api" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </block>
+ </method>
+</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
index 00000000..9a86f933
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-otn-tunnel-path-from-oof.xml
@@ -0,0 +1,266 @@
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+ <method rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync'>
+ <block atomic="true">
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/' + $prop.restapi.oof-getpath.templatefile`" />
+ <parameter name="restapiUrl" value="`$prop.restapi.connection-oof-url`" />
+ <parameter name="restapiUser" value="`$prop.oof.user`" />
+ <parameter name="restapiPassword" value="`$prop.oof.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="post"/>
+ <parameter name="responsePrefix" value="otn-oof"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing OOF api" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ </execute>
+ <for index='vidx' start='0' end='`$otn-oof.otn-links_length`' >
+ <block atomic="true">
+ <set>
+ <parameter name='otn-oof.link-name' value='`$otn-oof.solutions[$vidx].`' />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="logical-link"
+ key="logical-link.link-name = $otn-oof.link-name
+ AND depth = '0'"
+ pfx='tmp.aai.cross-link' local-only='false' >
+ <outcome value='success'>
+ <switch test='`$tmp.aai.cross-link.link-role`'>
+ <outcome value='cross-domain-link'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.cross-link.src-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[0].relationship-data[0].relationship-value`" />
+ <parameter name='tmp.cross-link.dst-ltpId' value="`$tmp.aai.cross-link.relationship-list.relationship[1].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="p-interface"
+ key="p-interface.interface-name = $tmp.src-ltpId
+ AND depth = '0'"
+ pfx='tmp.aai.src-tp' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='tmp.src-pnf-name' value="`$tmp.aai.src-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="pnf"
+ key="pnf.pnf-name = $tmp.src-pnf-name
+ AND depth = '0'"
+ pfx='tmp.aai.src-pnf' local-only='false' >
+ <outcome value='success'>
+ <block>
+ <set>
+ <parameter name='domain-A.node-id' value="`$tmp.aai.src-pnf.pnf-id`" />
+ <parameter name='domain-A.tpn' value='1' />
+ </set>
+ <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.src-pnf.relationship-list.relationship_length`' >
+ <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>
+ <outcome value='tunnel-termination-point'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.src-ttp-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="tunnel-termination-point"
+ key="tunnel-termination-point.ttp-id = $tmp.src-ttp-id
+ AND depth = '0'"
+ pfx='tmp.aai.src-ttp' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='domain-A.ttp-id' value="`$tmp.aai.src-ttp.ttp-id`" />
+ </set>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ <outcome value='network-resource'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.domain-A.network-id' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="network-resource"
+ key="network-resource.network-id = $tmp.domain-A.network-id
+ AND depth = '0'"
+ pfx='tmp.aai.src-network-resource' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='domain-A.network-id' value="`$tmp.aai.src-network-resource.network-id`" />
+ <parameter name='domain-A.provider-id' value="`$tmp.aai.src-network-resource.provider-id`" />
+ <parameter name='domain-A.client-id' value="`$tmp.aai.src-network-resource.client-id`" />
+ <parameter name='domain-A.te-topo-id' value="`$tmp.aai.src-network-resource.te-topo-id`" />
+ <parameter name='domain-A.network-type' value="`$tmp.aai.src-network-resource.network-type`" />
+ </set>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="p-interface"
+ key="p-interface.interface-name = $tmp.dst-ltpId
+ AND depth = '0'"
+ pfx='tmp.aai.dst-tp' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='tmp.dst-pnf-name' value="`$tmp.aai.dst-tp.relationship-list.relationship[0].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="pnf"
+ key="pnf.pnf-name = $tmp.dst-pnf-name
+ AND depth = '0'"
+ pfx='tmp.aai.dst-pnf' local-only='false' >
+ <outcome value='success'>
+ <block>
+ <set>
+ <parameter name='domain-B.node-id' value="`$tmp.aai.dst-pnf.pnf-id`" />
+ <parameter name='domain-B.tpn' value='1' />
+ </set>
+ <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.dst-pnf.relationship-list.relationship_length`' >
+ <switch test='`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].related-to`'>
+ <outcome value='tunnel-termination-point'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.dst-ttp-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="tunnel-termination-point"
+ key="tunnel-termination-point.ttp-id = $tmp.dst-ttp-id
+ AND depth = '0'"
+ pfx='tmp.aai.dst-ttp' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='domain-B.ttp-id' value="`$tmp.aai.dst-ttp.ttp-id`" />
+ </set>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ <outcome value='network-resource'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.domain-B.network-id' value="`$tmp.aai.dst-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="network-resource"
+ key="network-resource.network-id = $tmp.domain-B.network-id
+ AND depth = '0'"
+ pfx='tmp.aai.dst-network-resource' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='domain-B.network-id' value="`$tmp.aai.dst-network-resource.network-id`" />
+ <parameter name='domain-B.provider-id' value="`$tmp.aai.dst-network-resource.provider-id`" />
+ <parameter name='domain-B.client-id' value="`$tmp.aai.dst-network-resource.client-id`" />
+ <parameter name='domain-B.te-topo-id' value="`$tmp.aai.dst-network-resource.te-topo-id`" />
+ <parameter name='domain-B.network-type' value="`$tmp.aai.dst-network-resource.network-type`" />
+ </set>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <break/>
+ </block>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying pnf from AnAI with pnf-name = ' + $prop.connection-attachement.access-node-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ </block>
+ </for>
+ </block>
+ </method>
+</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
index 00000000..8629403f
--- /dev/null
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-get-vf-module-uni-param.xml
@@ -0,0 +1,38 @@
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+ <method rpc='sotn-get-vf-module-uni-param' mode='sync'>
+ <block atomic="true">
+ <for index="idx" start="0" end="`$vf-module-request-input.vf-module-input-parameters.param_length`">
+ <block>
+ <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`">
+ <outcome value='true'>
+ <set>
+ <parameter name='prop.uni.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tpId'`">
+ <outcome value='true'>
+ <set>
+ <parameter name='prop.uni.tpId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'cVLAN'`">
+ <outcome value='true'>
+ <set>
+ <parameter name='prop.uni.cVLAN' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ <return status='success'>
+ <parameter name="ack-final-indicator" value="Y" />
+ <parameter name="error-code" value="200" />
+ <parameter name="error-message" value="`$error-message`" />
+ </return>
+ </block>
+ </for>
+ </block>
+ </method>
+</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-vf-operation-l2vpn-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.xml
index ca13a5e6..e2e61c6c 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-activate.xml
@@ -1,8 +1,71 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vf-operation-l2vpn-activate' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value='0'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block>
+ <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.vidx' value='`$vidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='Created'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <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/'` " />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />
+ <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`' />
+ <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`' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="connectivity"
+ key="connectivity.connectivity-id = $vnfId" >
+ <parameter name="operational-status" value="Active" />
+ </update>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml
index 3876fd24..94e218b0 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-create.xml
@@ -1,8 +1,91 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vf-operation-l2vpn-create' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <set>
+ <parameter name='vnf-index' value='0' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <set>
+ <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />
+ </set>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id
+ + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">
+ <block>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+ <parameter name="original_string" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`'/>
+ <parameter name="regex" value="_"/>
+ <parameter name="ctx_memory_result_key" value="param-prefix"/>
+ </execute>
+ <set>
+ <parameter name="`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />
+ </set>
+ <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">
+ <block>
+ <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">
+ <outcome value='true'>
+ <set>
+ <parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <set>
+ <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
+ <parameter name="ctx-destination" value="prop.connectivity-id"/>
+ </execute>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />
+ <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`' />
+ <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`' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$prop.vnf-id`' />
+ <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/'` " />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="connectivity"
+ key='connectivity.connectivity-id = $prop.connectivity-id' >
+ <parameter name="operational-status" value="Created" />
+ </save>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml
index c16d3b0e..20b28f29 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-deactivate.xml
@@ -1,8 +1,83 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vf-operation-l2vpn-deactivate' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value='0'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block>
+ <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.vidx' value='`$vidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <switch test="`$tmp.vidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='Active'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <!--parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <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/'` " />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />
+ <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`' />
+ <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`' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="connectivity"
+ key="connectivity.connectivity-id = $vnfId" >
+ <parameter name="operational-status" value="PendingDelete" />
+ </update>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml
index 89a18ed8..8585db55 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-l2vpn-delete.xml
@@ -1,8 +1,92 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vf-operation-l2vpn-delete' mode='sync'>
<block atomic="true">
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >
+ <parameter name="vnf-topology-operation-input.vnf-information.vnf-id" value="$vnf-topology-operation-input.vnf-information.vnf-id"/>
+ </execute>
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test="`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='PendingDelete'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='prop.vnfidxLen' value='`0`' />
+ </set>
+ <for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block atomic="true">
+ <switch test="`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='false'>
+ <block atomic="true">
+ <set>
+ <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />
+ <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-data.`' />
+ </set>
+ <set>
+ <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <set>
+ <parameter name="service-data.vnfs.vnf_length" value='`$prop.vnfidxLen`'/>
+ </set>
+ <set>
+ <parameter name="service-data.vnfs.vnf[$prop.vnfidxLen]." value=""/>
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <parameter name='vnf-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $vnf-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'` " />
+ </set>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="connectivity"
+ key="connectivity.connectivity-id = $vnfId" >
+ <parameter name="operational-status" value="PendingDelete" />
+ </delete>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml
index 9ccbd07f..c1e677ba 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-activate.xml
@@ -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}'>
<method rpc='sotn-vf-operation-uni-activate' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='vnf-index' value='`$idx`' />
+ </set>
+ <set>
+ <parameter name='tmp.vnf-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+ <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+ <parameter name='contextPrefix' value='prop' />
+ </execute>
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>
+ <outcome value='0'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <set>
+ <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />
+ </set>
+ <for index='idx' start='0' end='`$vf-module-length`' >
+ <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`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.vidx' value='`$idx`' />
+ <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />
+ </set>
+ <set>
+ <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id'
+ AND depth = '0'"
+ pfx='tmp.aai.generic-vnf' local-only='false' >
+ <block>
+ <for silentFailure='true' index='vidx' start='0' end='`$tmp.aai.generic-vnf.relationship-list.relationship_length`' >
+ <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>
+ <outcome value='uni'>
+ <block atomic="true">
+ <set>
+ <parameter name='`tmp.unis.uni[$vidx].tpId`' value="`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].relationship-data[0].relationship-value`" />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+ <parameter name="original_string" value='`tmp.unis.uni[$vidx].tpId`'/>
+ <parameter name="regex" value="nodeId"/>
+ <parameter name="tmp.unis.uni[$vidx].pnf-name" value=""/>
+ <outcome value='success'>
+ <set>
+ <parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />
+ <parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />
+ </set>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='' />
+ <parameter name='error-message' value="An error occured while splitting sna1_route" />
+ </return>
+ </outcome>
+ </execute>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="pnf"
+ key="`pnf.pnf-name = $tmp.unis.uni[$vidx].pnf-name AND depth = '0'`"
+ pfx='tmp.aai.pnf' local-only='false' >
+ <outcome value='success'>
+ <block>
+ <set>
+ <parameter name='`$tmp.unis.uni[$vidx].node-id`' value="`$tmp.aai.pnf.pnf-id`" />
+ </set>
+ <for silentFailure='true' index='ridx' start='0' end='`$tmp.aai.pnf.relationship-list.relationship_length`' >
+ <switch test='`$tmp.aai.src-pnf.relationship-list.relationship[$vidx].related-to`'>
+ <outcome value='thirdparty-controller'>
+ <block atomic="true">
+ <set>
+ <parameter name='`$tmp.unis.uni[$vidx].thirdparty-sdnc-id`' value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`" />
+ </set>
+ </block>
+ </outcome>
+ <outcome value='network-resource'>
+ <block atomic="true">
+ <set>
+ <parameter name='`$tmp.unis.uni[$vidx].network-id`' value="`$tmp.aai.pnf.relationship-list.relationship[$ridx].relationship-data[0].relationship-value`" />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="network-resource"
+ key="`network-resource.network-id = $tmp.unis.uni[$vidx].network-id AND depth = '0'`"
+ pfx='tmp.aai.network-resource' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name="`$tmp.unis.uni[$vidx].network-id`" value="`$tmp.aai.network-resource.network-id`" />
+ <parameter name="`$tmp.unis.uni[$vidx].provider-id`" value="`$tmp.aai.network-resource.provider-id`" />
+ <parameter name="`$tmp.unis.uni[$vidx].client-id`" value="`$tmp.aai.network-resource.client-id`" />
+ <parameter name="`$tmp.unis.uni[$vidx].te-topo-id`" value="`$tmp.aai.network-resource.te-topo-id`" />
+ <parameter name="`$tmp.unis.uni[$vidx].network-type`" value="`$tmp.aai.network-resource.network-type`" />
+ </set>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </get-resource>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ <switch test='`$tmp.unis.uni_length < 2`' >
+ <outcome value='true'>
+ <return status='success'>
+ <parameter name='' value='' />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </get-resource>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-get-otn-tunnel-path-from-oof' mode='sync' ></call>
+ <for index='vidx' start='0' end='`$tmp.unis.uni_length`' >
+ <block atomic="true">
+ <set>
+ <parameter name='oof.vpn.' value='`$tmp.unis.uni[$vidx].`' />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="esr-thirdparty-sdnc"
+ key="esr-thirdparty-sdnc.thirdparty-sdnc-id = $oof.vpn.thirdparty-sdnc-id AND
+ depth = '1'"
+ pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >
+ <outcome value='success'>
+ <set>
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />
+ <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="post"/>
+ <parameter name="responsePrefix" value="token-result"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <outcome value='success'>
+ <set>
+ <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />
+ </set>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing get token rest api" />
+ </return>
+ </outcome>
+ </execute>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-create-otn-tunnel' mode='sync' ></call>
+ <set>
+ <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' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-type' value='ietf-eth-tran-types:p2p-svc' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].admin-status' value='ietf-te-types:tunnel-state-up' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[0].access-port-id' value='0' />
+ <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' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].etht-svc-access-ports[1].access-port-id' value='1' />
+ <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' />
+ </set>
+ <set>
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-provider-id' value='`$oof.vpn.access-provider-id`' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-client-id' value='`$oof.vpn.access-client-id`' />
+ <parameter name='ietf-eth-tran-service_etht-svc.etht-svc-instances[0].access-topology-id' value='`$oof.vpn.access-topology-id`' />
+ <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`' />
+ <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`' />
+ <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`' />
+ <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`' />
+ </set>
+ <switch test="`$prop.sdncRestApi.token_id`">
+ <outcome value=''>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="patch"/>
+ <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />
+ <parameter name="responsePrefix" value="vpn-result"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create vpn rest api" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </outcome>
+ <outcome value='Other'>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restconfapicall.RestconfApiCallNode' method='sendRequest' >
+ <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/restconf/data/ietf-eth-tran-service:etht-svc'`" />
+ <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />
+ <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />
+ <parameter name="format" value="json"/>
+ <parameter name="httpMethod" value="patch"/>
+ <parameter name='dirPath' value="/opt/sdnc/restapi/yang" />
+ <parameter name="responsePrefix" value="vpn-result"/>
+ <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>
+ <parameter name="trustStorePassword" value="adminadmin"/>
+ <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>
+ <parameter name="keyStorePassword" value="adminadmin"/>
+ <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error executing Create vpn rest api" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </block>
+ </for>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml
index f1c7ecd6..a549708d 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vf-operation-uni-create.xml
@@ -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}'>
<method rpc='sotn-vf-operation-uni-create' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="404" />
+ <parameter name="error-message" value="There are no VNFs in MD-SAL" />
+ </return>
+ </outcome>
+ </switch>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='vnf-index' value='`$idx`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test='`$vnf-index`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>
+ <outcome value=''>
+ <set>
+ <parameter name='vf-index' value='0' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <set>
+ <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />
+ </set>
+ <for index='idx' start='0' end='`$vf-index`' >
+ <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`">
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">
+ <block>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+ <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>
+ <parameter name="regex" value="_"/>
+ <parameter name="ctx_memory_result_key" value="param-prefix"/>
+ </execute>
+ <set>
+ <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]`'/>
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-get-vf-module-uni-param' mode='sync' ></call>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
+ <parameter name="ctx-destination" value="prop.vf-id"/>
+ </execute>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.vf-id`' />
+ <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.`' />
+ <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.`' />
+ <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.`' />
+ <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.`' />
+ <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.`' />
+ <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.`' />
+ <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.`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />
+ </set>
+ <set>
+ <parameter name='vf-module-id' value='`$prop.vf-id`'/>
+ <parameter name='vf-module-object-path' 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/'
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id
+ + '/vf-module-data/vf-module-topology/'`"/>
+ <parameter name='vnf-object-path'
+ 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/vnf-topology/'`"/>
+ <parameter name='service-object-path'
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $vf-module-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+ </set>
+ <set>
+ <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' />
+ <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`' />
+ <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`' />
+ </set>
+ <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='uni'
+ key='uni.id = $prop.vf-id' >
+ <parameter name="id" value="`$prop.vf-id`" />
+ <parameter name="tpId" value='`$prop.uni.tpId`' />
+ <parameter name='cVLAN' value='`$prop.uni.vlanId`' />
+ <parameter name='operational-status' value='Created' />
+ <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />
+ <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />
+ <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />
+ <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/'` " />
+ </save>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="'generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id'
+ AND depth = '0'"
+ pfx='tmp.aai.generic-vnf' local-only='false' >
+ <block>
+ <set>
+ <parameter name="tmp.relationship_length" value='`$tmp.aai.generic-vnf.relationship-list.relation_length`'/>
+ </set>
+ </block>
+ </get-resource>
+ <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list'
+ key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id'
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="`relationship-list.relationship[$tmp.relationship_length].related-to`" value="uni" />
+ <parameter name="`relationship-list.relationship[$tmp.relationship_length].related-link`" value="`'/network/unis/uni/' + $prop.vf-id`" />
+ <parameter name="`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-key`" value="id" />
+ <parameter name="`relationship-list.relationship[$tmp.relationship_length].relationship-data[0].relationship-value`" value="`$prop.vf-id`" />
+ </save>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml
index 28faefee..69344e8a 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-activate.xml
@@ -1,8 +1,72 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vnf-topology-operation-underlay-activate' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value='0'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block>
+ <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.vidx' value='`$vidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='Created'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <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/'` " />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='Active' />
+ <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`' />
+ <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`' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $vnfId" >
+ <parameter name="orchestration-status" value="Active" />
+ <parameter name="vnf-type" value="some vnf-type" />
+ </update>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml
index 1f7b0138..ba1c3cdd 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-create.xml
@@ -1,8 +1,109 @@
<service-logic
- xmlns='http://www.onap.org/sdnc/svclogic'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
- <method rpc='sotn-vnf-topology-operation-underlay-create' mode='sync'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+ <method rpc='vnf-topology-operation-vpn-site-resource-create' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <set>
+ <parameter name='vnf-index' value='0' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <set>
+ <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />
+ </set>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id
+ + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">
+ <block>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+ <parameter name="original_string" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`'/>
+ <parameter name="regex" value="_"/>
+ <parameter name="ctx_memory_result_key" value="param-prefix"/>
+ </execute>
+ <set>
+ <parameter name="`vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='vnf-request-input.' value='`$vnf-topology-operation-input.vnf-request-input.`' />
+ </set>
+ <for index="idx" start="0" end="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">
+ <block>
+ <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">
+ <outcome value='true'>
+ <set>
+ <parameter name='prop.vnfName' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <set>
+ <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >
+ <parameter name="ctx-destination" value="prop.vnf-id"/>
+ </execute>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id' value='`$prop.vnf-id`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.vnf-id' value='`$prop.vnf-id`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />
+ <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`' />
+ <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`' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$prop.vnf-id`' />
+ <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/'` " />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key='generic-vnf.vnf-id = $prop.vnf-id' >
+ <parameter name="orchestration-status" value="Created" />
+ <parameter name="in-maint" value = "true" />
+ <parameter name="vnf-type" value='`$prop.vnfName`' />
+ <parameter name="vnf-name" value = "`$prop.vnfName`"/>
+ <parameter name="model-invariant-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`"/>
+ <parameter name="model-version-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`"/>
+ <parameter name="model-customization-id" value = "`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`"/>
+ </save>
+ <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='service-instance:relationship-list'
+ key='service-instance.service-instance-id = $service-data.service-information.service-instance-id
+ AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.global-customer-id
+ AND service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.subscription-service-type'
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />
+ <parameter name="relationship-list.relationship[0].related-link" value="`'/network/generic-vnfs/generic-vnf/' + $prop.vnf-id`" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="generic-vnf.vnf-id" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.vnf-id`" />
+ <!--key='service-instance.service-instance-id = $service-data.service-information.service-instance-id -->
+ <!--key='service-instance.service-instance-id = $service-data.service-instance-id -->
+ </save>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml
index 28acdbf6..139f12e8 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-deactivate.xml
@@ -1,8 +1,84 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vnf-topology-operation-underlay-deactivate' mode='sync'>
<block atomic="true">
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value='0'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='vidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block>
+ <switch test="`$service-data.vnfs.vnf[$vidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.vidx' value='`$vidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$vidx].`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <switch test="`$tmp.vidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='Active'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <!--parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' /-->
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <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/'` " />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$tmp.vidx].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />
+ <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`' />
+ <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`' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $vnfId" >
+ <parameter name="orchestration-status" value="PendingDelete" />
+ <parameter name="vnf-type" value="some vnf-type" />
+ </update>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml
index 7c106ee8..130eee23 100644
--- a/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/sotn_nni/GENERIC-RESOURCE-API_sotn-vnf-topology-operation-underlay-delete.xml
@@ -1,8 +1,93 @@
<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}'>
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
<method rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync'>
<block atomic="true">
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >
+ <parameter name="vnf-topology-operation-input.vnf-information.vnf-id" value="$vnf-topology-operation-input.vnf-information.vnf-id"/>
+ </execute>
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test="`$service-data.vnfs.vnf[$nidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='ctx.vnf-data.' value='`$service-data.vnfs.vnf[$nidx].vnf-data.`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='PendingDelete'>
+ <block atomic="true"></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='prop.vnfidxLen' value='`0`' />
+ </set>
+ <for index='lidx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <block atomic="true">
+ <switch test="`$service-data.vnfs.vnf[$lidx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`">
+ <outcome value='false'>
+ <block atomic="true">
+ <set>
+ <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$lidx].vnf-id`' />
+ <parameter name='service-data.vnfs.vnf[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$lidx].vnf-data.`' />
+ </set>
+ <set>
+ <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <set>
+ <parameter name="service-data.vnfs.vnf_length" value='`$prop.vnfidxLen`'/>
+ </set>
+ <set>
+ <parameter name="service-data.vnfs.vnf[$prop.vnfidxLen]." value=""/>
+ </set>
+ <set>
+ <parameter name='vnfId' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <parameter name='vnf-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $vnf-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'` " />
+ </set>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $vnfId" >
+ <parameter name="orchestration-status" value="PendingDelete" />
+ <parameter name="vnf-type" value="some vnf-type" />
+ </delete>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
<parameter name="error-code" value="200" />
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
index 00000000..085d4944
--- /dev/null
+++ b/platform-logic/restapi-templates/src/main/json/sotn-otn-tunnel-service.json
@@ -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}
+ }
+ }
+ ]
+ }
+ }
+}