Calculating the maximum tpn for otn tunnels among all domains 25/121725/2
authorHesam Rahimi <hesam.rahimi@huawei.com>
Mon, 7 Jun 2021 20:02:32 +0000 (20:02 +0000)
committerHerbert Eiselt <herbert.eiselt@highstreet-technologies.com>
Thu, 17 Jun 2021 15:49:33 +0000 (15:49 +0000)
Issue-ID: SDNC-1563
Signed-off-by: Hesam Rahimi <hesam.rahimi@huawei.com>
Change-Id: I4a0207d09698d7bd5f9c35160f98b64bb8221e39

Former-commit-id: c53664df29b5fed1c2c413434cefa890f68ec815

platform-logic/generic-resource-api/src/main/json/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-trans-slice-allocate.json
platform-logic/generic-resource-api/src/main/json/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-trans-slice-modify.json
platform-logic/generic-resource-api/src/main/resources/graph.versions
platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-trans-slice-allocate.xml
platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-trans-slice-modify.xml

diff --git a/platform-logic/generic-resource-api/src/main/json/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.json b/platform-logic/generic-resource-api/src/main/json/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.json
new file mode 100644 (file)
index 0000000..f1c1bcb
--- /dev/null
@@ -0,0 +1,277 @@
+[\r
+    {\r
+        "id": "dcad323c.dc4798",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 128,\r
+        "y": 72,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "2c6d583b.e0ed6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c6d583b.e0ed6",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 264,\r
+        "y": 185,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "710efd23.956604"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "710efd23.956604",\r
+        "type": "method",\r
+        "name": "tsli-vnf-topology-operation-find-maximum-used-tpn",\r
+        "xml": "<method rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 380.0001220703125,\r
+        "y": 287,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "86a8a352.0226a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86a8a352.0226a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 554.9688720703125,\r
+        "y": 367.74163818359375,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "d7203925.27f628",\r
+                "5563cab3.b9ec1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7203925.27f628",\r
+        "type": "save",\r
+        "name": "get all-vpn-bindings from aai",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vpn-bindings\"\n\t    key=\"selflink = 'https://aai.onap:8443/aai/v21/network/vpn-bindings\"\n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.aai.allvpnbindings\" >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 781,\r
+        "y": 368,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "8a1cac64.d9f088",\r
+                "28ca26e4.951a3a",\r
+                "79b4f344.796bac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8a1cac64.d9f088",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1003,\r
+        "y": 366,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "cb805cfc.55e7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28ca26e4.951a3a",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1013.490966796875,\r
+        "y": 242.57403564453125,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "79b4f344.796bac",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1011,\r
+        "y": 286,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "e9ad4f40.e410c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb805cfc.55e7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1167,\r
+        "y": 367,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "d1872098.535da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9ad4f40.e410c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n",\r
+        "comments": "",\r
+        "x": 1178,\r
+        "y": 285,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d1872098.535da",\r
+        "type": "for",\r
+        "name": "for allvpnbidx in allvpnbindings",\r
+        "xml": "<for index='allvpnbidx' start='0' end='`$tmp.aai.allvpnbindings.vpn-binding_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 155,\r
+        "y": 517,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "867efd8f.191748"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "867efd8f.191748",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 418,\r
+        "y": 517,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "3686747b.9b8034"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3686747b.9b8034",\r
+        "type": "switchNode",\r
+        "name": "switch customer-vpn-id is greater than maxtpn",\r
+        "xml": "<switch test=\"`$tmp.aai.allvpnbindings.vpn-binding[$allvpnbidx].customer-vpn-id >= $maxtpn `\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 707,\r
+        "y": 517,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "56c65c47.d113d4",\r
+                "dfa2f5df.4bb658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56c65c47.d113d4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 989,\r
+        "y": 497,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "25625bbf.e04704"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dfa2f5df.4bb658",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 989,\r
+        "y": 546,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "25625bbf.e04704",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1157,\r
+        "y": 497,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": [\r
+            [\r
+                "a0dd57a5.212ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5563cab3.b9ec1c",\r
+        "type": "set",\r
+        "name": "set maxtpn",\r
+        "xml": "<set>\n<parameter name='maxtpn' value='0' />\n\n\n",\r
+        "comments": "",\r
+        "x": 747,\r
+        "y": 305,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0dd57a5.212ef",\r
+        "type": "set",\r
+        "name": "set maxtpn",\r
+        "xml": "<set>\n<parameter name='maxtpn' value='`$tmp.aai.allvpnbindings.vpn-binding[$allvpnbidx].customer-vpn-id`' />\n",\r
+        "comments": "",\r
+        "x": 1332,\r
+        "y": 497,\r
+        "z": "ad0d9df6.18fd58",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index 47e80d2..0ec5d2e 100644 (file)
                 "d6aa9ec.33fa46",\r
                 "6c32ab13.072304",\r
                 "35f98555.2ceed2",\r
-                "63cf541.20dacac"\r
+                "63cf541.20dacac",\r
+                "eb9a9d75.279478"\r
             ]\r
         ]\r
     },\r
         "xml": "<call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof' mode='sync' >\n\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 2825,\r
-        "y": 2386,\r
+        "x": 2829,\r
+        "y": 2315,\r
         "z": "cd8c161.e76ffe8",\r
         "wires": [\r
             []\r
         "name": "set attachment_param",\r
         "xml": "<set>\n<parameter name='prop.connection-attachment.access-provider-id' value='`$param-prefix-domainA[$param-prefix-domainA_length -9]`' />\n<parameter name='prop.connection-attachment.access-client-id' value='`$param-prefix-domainA[$param-prefix-domainA_length -7]`' />\n<parameter name='prop.connection-attachment.access-topology-id' value='`$param-prefix-domainA[$param-prefix-domainA_length -5]`' />\n<parameter name='prop.connection-attachment.access-node-id' value='`$param-prefix-domainA[$param-prefix-domainA_length -3]`' />\n<parameter name='prop.connection-attachment.access-ltp-id' value='`$param-prefix-domainA[$param-prefix-domainA_length -1]`' />\n\n<parameter name='prop.remote.connection-attachment.access-provider-id' value='`$param-prefix-domainB[$param-prefix-domainB_length -9]`' />\n<parameter name='prop.remote.connection-attachment.access-client-id' value='`$param-prefix-domainB[$param-prefix-domainB_length -7]`' />\n<parameter name='prop.remote.connection-attachment.access-topology-id' value='`$param-prefix-domainB[$param-prefix-domainB_length -5]`' />\n<parameter name='prop.remote.connection-attachment.access-node-id' value='`$param-prefix-domainB[$param-prefix-domainB_length -3]`' />\n<parameter name='prop.remote.connection-attachment.access-ltp-id' value='`$param-prefix-domainB[$param-prefix-domainB_length -1]`' />\n\n<!--<parameter name='prop.remote.connection-attachment.access-provider-id' value='`$oof.vpn.access-provider-id`' />-->\n<!--<parameter name='prop.remote.connection-attachment.access-client-id' value='`$oof.vpn.access-client-id`' />-->\n<!--<parameter name='prop.remote.connection-attachment.access-topology-id' value='`$oof.vpn.access-topology-id`' />-->\n<!--<parameter name='prop.remote.connection-attachment.access-node-id' value='`$oof.vpn.access-node-id`' />-->\n<!--<parameter name='prop.remote.connection-attachment.access-ltp-id' value='`$oof.vpn.src-access-ltp-id`' />-->\n",\r
         "comments": "",\r
-        "x": 2623,\r
-        "y": 2265,\r
+        "x": 2627,\r
+        "y": 2194,\r
         "z": "cd8c161.e76ffe8",\r
         "wires": []\r
     },\r
         "name": "TODO: FIXME",\r
         "info": "put proper values for src topology-id, node-id, ltp-id, etc (in domain A)\nand dst topology-id, node-id, ltp-id, etc (in domain B)",\r
         "comments": "",\r
-        "x": 2589,\r
-        "y": 2199,\r
+        "x": 2593,\r
+        "y": 2128,\r
         "z": "cd8c161.e76ffe8",\r
         "wires": []\r
     },\r
         "name": "set query_param",\r
         "xml": "<set>\n<parameter name='prop.ethsrvType' value='`$network-route-A`' />\n\n",\r
         "comments": "",\r
-        "x": 2604,\r
-        "y": 2318,\r
+        "x": 2608,\r
+        "y": 2247,\r
         "z": "cd8c161.e76ffe8",\r
         "wires": []\r
     },\r
         "id": "3340e53d.b2b492",\r
         "type": "save",\r
         "name": "save vpn-binding otnIdx resource (aka. OTN) in AAI",\r
-        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding' \n      key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\n<parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\n<parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\n<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />\n<!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\n<parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\n<!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\n<parameter name='access-client-id' value='`$tmp.access-client-id`' />\n<!--<parameter name='access-topology-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-topology-id`' />-->\n<parameter name='access-topology-id' value='`$tmp.access-topology-id`' />\n<!--<parameter name='src-access-node-id' value='`$tmp.otninfo[$otnidx].srcPort.src-access-node-id`' />-->\n<parameter name='src-access-node-id' value='`$tmp.domainG-src-access-node-id`' />\n<parameter name='src-access-ltp-id' value='`$tmp.otninfo[$otnidx].srcPort.src-tunnel-tp-id`' />\n<!--<parameter name='dst-access-node-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-node-id`' />-->\n<parameter name='dst-access-node-id' value='`$tmp.domainG-dst-access-node-id`' />\n<parameter name='dst-access-ltp-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-tunnel-tp-id`' />\n<parameter name='route-distinguisher' value='`$gfp`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\n\n\n<parameter name='vpn-region' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.url`' />\n<parameter name='vpn-description' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.user`' />\n<parameter name='vpn-platform' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.password`' />\n\n<!-- The following line is in lieu of vpn-binding.slice-id (new attribute in latest AAI) -->\n<parameter name='ops-note' value='`$tmp.aai.service-instance.service-instance-id`' />\n\n",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding' \n      key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\n<parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\n<parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\n<!--<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />-->\n<parameter name='customer-vpn-id' value='`($maxtpn + $gfp)`' />\n<!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\n<parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\n<!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\n<parameter name='access-client-id' value='`$tmp.access-client-id`' />\n<!--<parameter name='access-topology-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-topology-id`' />-->\n<parameter name='access-topology-id' value='`$tmp.access-topology-id`' />\n<!--<parameter name='src-access-node-id' value='`$tmp.otninfo[$otnidx].srcPort.src-access-node-id`' />-->\n<parameter name='src-access-node-id' value='`$tmp.domainG-src-access-node-id`' />\n<parameter name='src-access-ltp-id' value='`$tmp.otninfo[$otnidx].srcPort.src-tunnel-tp-id`' />\n<!--<parameter name='dst-access-node-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-node-id`' />-->\n<parameter name='dst-access-node-id' value='`$tmp.domainG-dst-access-node-id`' />\n<parameter name='dst-access-ltp-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-tunnel-tp-id`' />\n<parameter name='route-distinguisher' value='`$gfp`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\n\n\n<parameter name='vpn-region' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.url`' />\n<parameter name='vpn-description' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.user`' />\n<parameter name='vpn-platform' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.password`' />\n\n<!-- The following line is in lieu of vpn-binding.slice-id (new attribute in latest AAI) -->\n<parameter name='ops-note' value='`$tmp.aai.service-instance.service-instance-id`' />\n\n",\r
         "comments": "",\r
         "outputs": 1,\r
         "x": 3768,\r
         "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n    <parameter name=\"filename\" value=\"`$filenamemm`\" />\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 2615,\r
-        "y": 2432,\r
+        "x": 2619,\r
+        "y": 2361,\r
+        "z": "cd8c161.e76ffe8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba4816e9.f5d79",\r
+        "type": "set",\r
+        "name": "set maxtpn",\r
+        "xml": "<set>\n<parameter name='maxtpn' value='`($maxtpn + $gfp)`' />",\r
+        "comments": "",\r
+        "x": 3646,\r
+        "y": 2964,\r
+        "z": "cd8c161.e76ffe8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb9a9d75.279478",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:tsli-vnf-topology-operation-find-maximum-used-tpn",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2812,\r
+        "y": 2425,\r
         "z": "cd8c161.e76ffe8",\r
         "wires": [\r
             []\r
index 0d4161a..4249096 100644 (file)
                 "c6ccb3e9.91ea18",\r
                 "6963f6fb.4a135",\r
                 "40ae5836.eda238",\r
-                "31cde3.5ded021e"\r
+                "31cde3.5ded021e",\r
+                "e15a89e6.e78d8"\r
             ]\r
         ]\r
     },\r
         "xml": "<for index='otnidx' start='0' end='`$tmp.otninfo_length`' >",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 4274,\r
-        "y": 2329,\r
+        "x": 4269,\r
+        "y": 2390,\r
         "z": "a1c94a24.22ed9",\r
         "wires": [\r
             [\r
         "id": "5b2c57a6.c56358",\r
         "type": "save",\r
         "name": "save vpn-binding otnIdx resource (aka. OTN) in AAI",\r
-        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding' \n      key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\n<parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\n<parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\n<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />\n<!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\n<parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\n<!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\n<parameter name='access-client-id' value='`$tmp.access-client-id`' />\n<!--<parameter name='access-topology-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-topology-id`' />-->\n<parameter name='access-topology-id' value='`$tmp.access-topology-id`' />\n<!--<parameter name='src-access-node-id' value='`$tmp.otninfo[$otnidx].srcPort.src-access-node-id`' />-->\n<parameter name='src-access-node-id' value='`$tmp.domainG-src-access-node-id`' />\n<parameter name='src-access-ltp-id' value='`$tmp.otninfo[$otnidx].srcPort.src-tunnel-tp-id`' />\n<!--<parameter name='dst-access-node-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-node-id`' />-->\n<parameter name='dst-access-node-id' value='`$tmp.domainG-dst-access-node-id`' />\n<parameter name='dst-access-ltp-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-tunnel-tp-id`' />\n<parameter name='route-distinguisher' value='`$gfp`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\n\n\n<parameter name='vpn-region' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.url`' />\n<parameter name='vpn-description' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.user`' />\n<parameter name='vpn-platform' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.password`' />\n\n<!-- The following line is in lieu of vpn-binding.slice-id (new attribute in latest AAI) -->\n<parameter name='ops-note' value='`$tmp.aai.service-instance.service-instance-id`' />\n\n\n",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='vpn-binding' \n      key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\n<parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\n<parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\n<!--<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />-->\n<parameter name='customer-vpn-id' value='`($maxtpn + $gfp)`' />\n<!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\n<parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\n<!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\n<parameter name='access-client-id' value='`$tmp.access-client-id`' />\n<!--<parameter name='access-topology-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-topology-id`' />-->\n<parameter name='access-topology-id' value='`$tmp.access-topology-id`' />\n<!--<parameter name='src-access-node-id' value='`$tmp.otninfo[$otnidx].srcPort.src-access-node-id`' />-->\n<parameter name='src-access-node-id' value='`$tmp.domainG-src-access-node-id`' />\n<parameter name='src-access-ltp-id' value='`$tmp.otninfo[$otnidx].srcPort.src-tunnel-tp-id`' />\n<!--<parameter name='dst-access-node-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-node-id`' />-->\n<parameter name='dst-access-node-id' value='`$tmp.domainG-dst-access-node-id`' />\n<parameter name='dst-access-ltp-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-tunnel-tp-id`' />\n<parameter name='route-distinguisher' value='`$gfp`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`' />\n\n\n<parameter name='vpn-region' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.url`' />\n<parameter name='vpn-description' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.user`' />\n<parameter name='vpn-platform' value='`$prop.sdncRestApi.thirdpartySdnc.domainG.password`' />\n\n<!-- The following line is in lieu of vpn-binding.slice-id (new attribute in latest AAI) -->\n<parameter name='ops-note' value='`$tmp.aai.service-instance.service-instance-id`' />\n\n\n",\r
         "comments": "",\r
         "outputs": 1,\r
         "x": 5397,\r
         "wires": [\r
             []\r
         ]\r
+    },\r
+    {\r
+        "id": "e15a89e6.e78d8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:tsli-vnf-topology-operation-find-maximum-used-tpn",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4436,\r
+        "y": 2331,\r
+        "z": "a1c94a24.22ed9",\r
+        "wires": [\r
+            []\r
+        ]\r
     }\r
 ]
\ No newline at end of file
index 64cfedc..063b287 100755 (executable)
@@ -287,4 +287,6 @@ GENERIC-RESOURCE-API tsli-vnf-topology-operation-trans-slice-deactivate ${projec
 GENERIC-RESOURCE-API tsli-vnf-topology-operation-trans-slice-delete ${project.version} sync
 GENERIC-RESOURCE-API tsli-vnf-topology-operation-trans-slice-modify ${project.version} sync
 GENERIC-RESOURCE-API tsli-vnf-topology-operation-get-otn-tunnel-path-from-oof ${project.version} sync
+GENERIC-RESOURCE-API tsli-vnf-topology-operation-find-maximum-used-tpn ${project.version} sync
+
 
diff --git a/platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.xml b/platform-logic/generic-resource-api/src/main/xml/trans_slicing/GENERIC-RESOURCE-API_tsli-vnf-topology-operation-find-maximum-used-tpn.xml
new file mode 100644 (file)
index 0000000..111aed3
--- /dev/null
@@ -0,0 +1,42 @@
+<service-logic\r
+        xmlns='http://www.onap.org/sdnc/svclogic'\r
+        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='maxtpn' value='0' />\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="vpn-bindings"\r
+                          key="selflink = 'https://aai.onap:8443/aai/v21/network/vpn-bindings"\r
+                          local-only="false"\r
+                          pfx="tmp.aai.allvpnbindings" >\r
+                <outcome value='not-found'></outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value='' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <for index='allvpnbidx' start='0' end='`$tmp.aai.allvpnbindings.vpn-binding_length`' >\r
+                            <block atomic='true'>\r
+                                <switch test="`$tmp.aai.allvpnbindings.vpn-binding[$allvpnbidx].customer-vpn-id >= $maxtpn `">\r
+                                    <outcome value='true'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='maxtpn' value='`$tmp.aai.allvpnbindings.vpn-binding[$allvpnbidx].customer-vpn-id`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='false'></outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 446a74a..4c336b6 100644 (file)
                                                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
                                                                                                         <parameter name="filename" value="`$filenamemm`" />\r
                                                                                                     </execute>\r
+                                                                                                    <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync' ></call>\r
                                                                                                     <for index='otnidx' start='0' end='`$tmp.otninfo_length`' >\r
                                                                                                         <block atomic='true'>\r
                                                                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
                                                                                                                   key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\r
                                                                                                                 <parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\r
                                                                                                                 <parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\r
-                                                                                                                <parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />\r
+                                                                                                                <!--<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />-->\r
+                                                                                                                <parameter name='customer-vpn-id' value='`($maxtpn + $gfp)`' />\r
                                                                                                                 <!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\r
                                                                                                                 <parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\r
                                                                                                                 <!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\r
index 6d57a78..9a8a917 100644 (file)
                                                                                                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
                                                                                                         <parameter name="filename" value="`$filenamemm`" />\r
                                                                                                     </execute>\r
+                                                                                                    <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-find-maximum-used-tpn' mode='sync' ></call>\r
                                                                                                     <for index='otnidx' start='0' end='`$tmp.otninfo_length`' >\r
                                                                                                         <block atomic='true'>\r
                                                                                                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
                                                                                                                   key='vpn-binding.vpn-id = $prop.vpn-binding-otnidx-uuid' >\r
                                                                                                                 <parameter name='vpn-id' value='`$prop.vpn-binding-otnidx-uuid`' />\r
                                                                                                                 <parameter name='vpn-name' value='`$prop.otn-tunnel-name`' />\r
-                                                                                                                <parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />\r
+                                                                                                                <!--<parameter name='customer-vpn-id' value='`($idx + 1) * 10`' />-->\r
+                                                                                                                <parameter name='customer-vpn-id' value='`($maxtpn + $gfp)`' />\r
                                                                                                                 <!--<parameter name='access-provider-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-provider-id`' />-->\r
                                                                                                                 <parameter name='access-provider-id' value='`$tmp.access-provider-id`' />\r
                                                                                                                 <!--<parameter name='access-client-id' value='`$tmp.otninfo[$otnidx].dstPort.dst-access-client-id`' />-->\r