DG's to support SDNR RANSIM Netconf Notification 11/89811/1
authorSandeep Shah <sandeep.shah2@techmahindra.com>
Thu, 13 Jun 2019 14:02:06 +0000 (09:02 -0500)
committerSandeep Shah <sandeep.shah2@techmahindra.com>
Thu, 13 Jun 2019 14:02:06 +0000 (09:02 -0500)
DG's to handle Netconf notification from the RAN network regarding
neighbor list change. DG will update ConfigDB and also publish DMAAP
message to be consumed by Policy for closed loop automation SON use
case.

Issue-ID: CCSDK-1397
Signed-off-by: SandeepLinux <sandeeplinux1068@gmail.com>
Change-Id: I6a153e08b6abea035fd34208ad91f0c58c9ba4ef

platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_handle-nbrlist-change-notif.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_handle-nbrlist-change-notif.xml [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-add-nbr-to-configdb-per-nbrlist-change-notif.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-dmaap-publish-template.json [new file with mode: 0644]

diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_handle-nbrlist-change-notif.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_handle-nbrlist-change-notif.json
new file mode 100644 (file)
index 0000000..64a92f0
--- /dev/null
@@ -0,0 +1,580 @@
+[
+    {
+        "id": "4516c711.3577f8",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='handle-nbrlist-change-notif' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 106,
+        "y": 175,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "9fcef6.65d8a108"
+            ]
+        ]
+    },
+    {
+        "id": "93c36047.53405",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 109,
+        "y": 24.999996185302734,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "2d3470c1.2d733"
+            ]
+        ]
+    },
+    {
+        "id": "2d3470c1.2d733",
+        "type": "service-logic",
+        "name": "oofpcipoc-api ${project.version}",
+        "module": "oofpcipoc-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='oofpcipoc-api' version='${project.version}'>",
+        "outputs": 1,
+        "x": 166.99998474121094,
+        "y": 86.00009155273438,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "4516c711.3577f8"
+            ]
+        ]
+    },
+    {
+        "id": "9fcef6.65d8a108",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 128.48959732055664,
+        "y": 344.0000305175781,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "9031fa86.08b668",
+                "49935087.66b48",
+                "2a374237.9dc55e",
+                "523cdfb2.ababa",
+                "29f0db5d.e621f4",
+                "593dbda3.561b94",
+                "ec5b41e1.3ed6e"
+            ]
+        ]
+    },
+    {
+        "id": "9031fa86.08b668",
+        "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=\"SUCCESSFUL Execution\" />\n",
+        "comments": "",
+        "x": 225.0002670288086,
+        "y": 574.0001831054688,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "9d47fa1e.0535e8",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Input RPC Payload request. FAP #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].alias`\"/>\n<parameter name=\"field4\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].cid`\"/>\n<parameter name=\"field5\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].phy-cell-id-in-use`\"/>\n<parameter name=\"field6\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].pnf-name`\"/>\n<parameter name=\"field7\" value=\"Number of neigbors Changed/To Be Added #:  \"/>\n<parameter name=\"field8\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 793.0005493164062,
+        "y": 41.00004577636719,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "db5169d7.5ce438",
+        "type": "comment",
+        "name": "handle-nbrlist-change-notif",
+        "info": "",
+        "comments": "",
+        "x": 352,
+        "y": 30.010412216186523,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "2a374237.9dc55e",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 462.085693359375,
+        "y": 113.96358489990234,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "14401c1b.9b0284"
+            ]
+        ]
+    },
+    {
+        "id": "49935087.66b48",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"RPC to handle nbrlist change notification invoked. Number of FAP services for which neighbors have changed:  \"/>\n<parameter name=\"field2\" value=\"`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 278.0002975463867,
+        "y": 153.02084350585938,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7faa2631.7c5a58",
+        "type": "set",
+        "name": "set tmp variables for notif input parms",
+        "xml": "<set>\n<parameter name=\"tmp.alias\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].alias`\"/>\n<parameter name=\"tmp.cid\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].cid`\"/>\n<parameter name=\"tmp.phy-cell-id-in-use\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].phy-cell-id-in-use`\"/>\n<parameter name=\"tmp.pnf-name\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].pnf-name`\"/>\n<parameter name=\"tmp.lte-cell-number-of-entries\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`\"/>",
+        "comments": "",
+        "x": 748.0010986328125,
+        "y": 208.89947509765625,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "523cdfb2.ababa",
+        "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%/sdnr-oofpcipoc-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 473.00018310546875,
+        "y": 174.0208282470703,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "29f0db5d.e621f4",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Properties read ..configDB URL\"/>\n<parameter name=\"field2\" value=\"`$prop.configdb.url`\"/>\n<parameter name=\"field3\" value=\"Properties read ..DMAAP Msg Router URL\"/>\n<parameter name=\"field4\" value=\"`$prop.configdb.url`\"/>\n<parameter name=\"field5\" value=\"`$prop.dmaap-message-router.url`\"/>\n<parameter name=\"field6\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"field7\" value=\"`$prop.controller.url`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 438.00030517578125,
+        "y": 228.02090454101562,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "14401c1b.9b0284",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 614,
+        "y": 76,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "9d47fa1e.0535e8",
+                "1c58f8bf.dba947"
+            ]
+        ]
+    },
+    {
+        "id": "1c58f8bf.dba947",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idy' start='0' end=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 786,
+        "y": 106,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "f16f8e26.83186"
+            ]
+        ]
+    },
+    {
+        "id": "f16f8e26.83186",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Neighbor #:  \"/>\n<parameter name=\"field2\" value=\"`$idy`\"/>\n<parameter name=\"field3\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].plmnid`\"/>\n<parameter name=\"field4\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].cid`\"/>\n<parameter name=\"field5\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 937,
+        "y": 100,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "593dbda3.561b94",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 311,
+        "y": 353,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "be3ed8bf.c5f9d8"
+            ]
+        ]
+    },
+    {
+        "id": "be3ed8bf.c5f9d8",
+        "type": "block",
+        "name": "block : ConfigDB Update",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 492,
+        "y": 345,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "7faa2631.7c5a58",
+                "2df3d172.69f40e"
+            ]
+        ]
+    },
+    {
+        "id": "2df3d172.69f40e",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idy' start='0' end=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 709,
+        "y": 319,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "b03cb32a.dd65e"
+            ]
+        ]
+    },
+    {
+        "id": "83ef920c.2db7d",
+        "type": "set",
+        "name": "set tmp variables for notif neigbor input parms",
+        "xml": "<set>\n<parameter name=\"tmp.nbr.plmnid\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].plmnid`\"/>\n<parameter name=\"tmp.nbr.cid\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].cid`\"/>\n<parameter name=\"tmp.nbr.phy-cell-id\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].phy-cell-id`\"/>\n<parameter name=\"tmp.nbr.pnf-name\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].pnf-name`\"/>\n<parameter name=\"tmp.nbr.blacklisted\" value=\"`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].blacklisted`\"/>",
+        "comments": "",
+        "x": 1107,
+        "y": 193,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "b03cb32a.dd65e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 842,
+        "y": 267,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "83ef920c.2db7d",
+                "94362525.ddff98",
+                "b52b841c.250db8",
+                "8ef1f19b.70c28"
+            ]
+        ]
+    },
+    {
+        "id": "94362525.ddff98",
+        "type": "execute",
+        "name": "generate configdb add URL for nbr",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.configdb.add-nbrlist-change-per-notif`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.configdb.add-nbrlist-change-per-notif.url\"/>\n    <parameter name=\"target\" value=\"{cellId}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.cid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1105,
+        "y": 239,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b52b841c.250db8",
+        "type": "record",
+        "name": "record configdb RestAPI parms",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"URL for configDB neighbor cell ADD\"/>\n<parameter name='field2' value=\"`$prop.configdb.url + $tmp.configdb.add-nbrlist-change-per-notif.url`\" />\n<parameter name='field3' value=\"`$tmp.nbr.cid`\" />\n<parameter name='field4' value=\"`$tmp.nbr.blacklisted`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1100,
+        "y": 288,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8ef1f19b.70c28",
+        "type": "execute",
+        "name": "Add neighbor to Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-add-nbr-to-configdb-per-nbrlist-change-notif.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.configdb.url + $tmp.configdb.add-nbrlist-change-per-notif.url`\"/>\n<parameter name=\"httpMethod\" value=\"PUT\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-configdb-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />\n<parameter name='accept' value='application/json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1071,
+        "y": 366,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "3994f34f.8e13fc",
+                "b6596c18.0f6a8"
+            ]
+        ]
+    },
+    {
+        "id": "3994f34f.8e13fc",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1273,
+        "y": 333,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "7eb76e31.a0512"
+            ]
+        ]
+    },
+    {
+        "id": "b6596c18.0f6a8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1265.999891281128,
+        "y": 411.99990940093994,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "14e02b1e.c62315"
+            ]
+        ]
+    },
+    {
+        "id": "7eb76e31.a0512",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1433.9998779296875,
+        "y": 290.0000305175781,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "72b6d90.f14b728"
+            ]
+        ]
+    },
+    {
+        "id": "72b6d90.f14b728",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y'/>\n<parameter name=\"error-code\" value=\"500\" />\n<parameter name=\"error-message\" value=\"Error adding neighbor to configdb. Aborting notification handler\" />",
+        "comments": "",
+        "x": 1612.999568939209,
+        "y": 286.99999809265137,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "14e02b1e.c62315",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1423.9996337890625,
+        "y": 377.9999694824219,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "cebe84be.1a3318"
+            ]
+        ]
+    },
+    {
+        "id": "cebe84be.1a3318",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/configuration-phy-cell-id.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Neighbor Added to ConfigDB \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1602.9997024536133,
+        "y": 376.99995613098145,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ec5b41e1.3ed6e",
+        "type": "block",
+        "name": "block : Publish DMAAP Message",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 413,
+        "y": 436,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "e91dd48a.05eb08",
+                "3fb77eff.422562"
+            ]
+        ]
+    },
+    {
+        "id": "3fb77eff.422562",
+        "type": "execute",
+        "name": "execute DmaapMsg",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap.nbrlist-change.topic`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='contentType' value='application/json' />\n    <parameter name='responsePrefix' value='dmaap' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 643.5,
+        "y": 504.08331298828125,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "35a9b31.3a83c4c",
+                "8b2365df.8d4838"
+            ]
+        ]
+    },
+    {
+        "id": "e91dd48a.05eb08",
+        "type": "set",
+        "name": "set",
+        "xml": "<set>\n<parameter name='tmp.oofpcipoc-dmaap.requestID' value='`$prop.oofpcipoc-dmaap.requestID`'/>\n<parameter name='tmp.oofpcipoc-dmaap.aai' value=\"`$prop.oofpcipoc-dmaap.aai`\"/>\n<parameter name='tmp.oofpcipoc-dmaap.version' value='`$prop.oofpcipoc-dmaap.version`'/>\n<parameter name='tmp.oofpcipoc-dmaap.action' value='`$prop.oofpcipoc-dmaap.action`'/>\n<parameter name='tmp.oofpcipoc-dmaap.payload' value='`$handle-nbrlist-change-notif-input.payload`'/>",
+        "comments": "",
+        "x": 638.166748046875,
+        "y": 410.08331298828125,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "35a9b31.3a83c4c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 839,
+        "y": 444,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "61201a29.a16fd4"
+            ]
+        ]
+    },
+    {
+        "id": "8b2365df.8d4838",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 824.9998779296875,
+        "y": 577.9999389648438,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "72b300f.e04af"
+            ]
+        ]
+    },
+    {
+        "id": "61201a29.a16fd4",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1029.9998779296875,
+        "y": 474.0000305175781,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "8fed2904.c2cde8"
+            ]
+        ]
+    },
+    {
+        "id": "8fed2904.c2cde8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y'/>\n<parameter name=\"error-code\" value=\"500\" />\n<parameter name=\"error-message\" value=\"Error publishing DMAAP message. ConfigDB Updated; TO be rolled back...will handle next release\" />",
+        "comments": "",
+        "x": 1208.999568939209,
+        "y": 470.99999809265137,
+        "z": "9baea81e.ce8a98",
+        "wires": []
+    },
+    {
+        "id": "72b300f.e04af",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1019.9996337890625,
+        "y": 561.9999694824219,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            [
+                "6bff7ffa.3f521"
+            ]
+        ]
+    },
+    {
+        "id": "6bff7ffa.3f521",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/configuration-phy-cell-id.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"DMAAP Message Successfully Published \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1198.9997024536133,
+        "y": 560.9999561309814,
+        "z": "9baea81e.ce8a98",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_handle-nbrlist-change-notif.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_handle-nbrlist-change-notif.xml
new file mode 100644 (file)
index 0000000..dca5ce4
--- /dev/null
@@ -0,0 +1,161 @@
+<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='oofpcipoc-api' version='${project.version}'>
+    <method rpc='handle-nbrlist-change-notif' mode='sync'>
+        <block atomic='true'>
+            <for index='idx' start='0' end="`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`" >
+                <block atomic='true'>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Input RPC Payload request. FAP #:  "/>
+                        <parameter name="field2" value="`$idx`"/>
+                        <parameter name="field3" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].alias`"/>
+                        <parameter name="field4" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].cid`"/>
+                        <parameter name="field5" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].phy-cell-id-in-use`"/>
+                        <parameter name="field6" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].pnf-name`"/>
+                        <parameter name="field7" value="Number of neigbors Changed/To Be Added #:  "/>
+                        <parameter name="field8" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`"/>
+                    </record>
+                    <for index='idy' start='0' end="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`" >
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log" />
+                            <parameter name="level" value="info" />
+                            <parameter name="field1" value="Neighbor #:  "/>
+                            <parameter name="field2" value="`$idy`"/>
+                            <parameter name="field3" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].plmnid`"/>
+                            <parameter name="field4" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].cid`"/>
+                            <parameter name="field5" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].phy-cell-id`"/>
+                            <parameter name="field6" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].pnf-name`"/>
+                            <parameter name="field7" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].blacklisted`"/>
+                        </record>
+                    </for>
+                </block>
+            </for>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="RPC to handle nbrlist change notification invoked. Number of FAP services for which neighbors have changed:  "/>
+                <parameter name="field2" value="`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`"/>
+            </record>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/sdnr-oofpcipoc-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Properties read ..configDB URL"/>
+                <parameter name="field2" value="`$prop.configdb.url`"/>
+                <parameter name="field3" value="Properties read ..DMAAP Msg Router URL"/>
+                <parameter name="field4" value="`$prop.configdb.url`"/>
+                <parameter name="field5" value="`$prop.dmaap-message-router.url`"/>
+                <parameter name="field6" value="`$prop.controller.pwd`"/>
+                <parameter name="field7" value="`$prop.controller.url`"/>
+            </record>
+            <for index='idx' start='0' end="`$handle-nbrlist-change-notif-input.fap-service-number-of-entries-changed`" >
+                <block atomic='true'>
+                    <set>
+                        <parameter name="tmp.alias" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].alias`"/>
+                        <parameter name="tmp.cid" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].cid`"/>
+                        <parameter name="tmp.phy-cell-id-in-use" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].phy-cell-id-in-use`"/>
+                        <parameter name="tmp.pnf-name" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].pnf-name`"/>
+                        <parameter name="tmp.lte-cell-number-of-entries" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`"/>
+                    </set>
+                    <for index='idy' start='0' end="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-cell-number-of-entries`" >
+                        <block atomic='true'>
+                            <set>
+                                <parameter name="tmp.nbr.plmnid" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].plmnid`"/>
+                                <parameter name="tmp.nbr.cid" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].cid`"/>
+                                <parameter name="tmp.nbr.phy-cell-id" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].phy-cell-id`"/>
+                                <parameter name="tmp.nbr.pnf-name" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].pnf-name`"/>
+                                <parameter name="tmp.nbr.blacklisted" value="`$handle-nbrlist-change-notif-input.fap-service[$idx].lte-ran-neighbor-list-in-use-lte-cell-changed[$idy].blacklisted`"/>
+                            </set>
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                <parameter name="source" value="`$prop.restapi.configdb.add-nbrlist-change-per-notif`"/>
+                                <parameter name="outputPath" value="tmp.configdb.add-nbrlist-change-per-notif.url"/>
+                                <parameter name="target" value="{cellId}"/>
+                                <parameter name="replacement" value="`$tmp.cid`"/>
+                            </execute>
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                <parameter name="file" value="/opt/opendaylight/current/data/log/handle-nbrlist-change-notif.log" />
+                                <parameter name="level" value="info" />
+                                <parameter name="field1" value="URL for configDB neighbor cell ADD"/>
+                                <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.add-nbrlist-change-per-notif.url`" />
+                                <parameter name='field3' value="`$tmp.nbr.cid`" />
+                                <parameter name='field4' value="`$tmp.nbr.blacklisted`" />
+                            </record>
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-add-nbr-to-configdb-per-nbrlist-change-notif.json'`" />
+                                <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.add-nbrlist-change-per-notif.url`"/>
+                                <parameter name="httpMethod" value="PUT"/>
+                                <parameter name="responsePrefix" value="oofpci-configdb-response"/>
+                                <parameter name='contentType' value='application/json' />
+                                <parameter name='format' value='json' />
+                                <parameter name='accept' value='application/json' />
+                                <outcome value='failure'>
+                                    <block>
+                                        <return status='failure'>
+                                            <parameter name='ack-final' value='Y'/>
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="Error adding neighbor to configdb. Aborting notification handler" />
+                                        </return>
+                                    </block>
+                                </outcome>
+                                <outcome value='success'>
+                                    <block>
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                            <parameter name="file" value="/opt/opendaylight/current/data/log/configuration-phy-cell-id.log" />
+                                            <parameter name="level" value="info" />
+                                            <parameter name="field1" value="Neighbor Added to ConfigDB "/>
+                                        </record>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </block>
+                    </for>
+                </block>
+            </for>
+            <block atomic='true'>
+                <set>
+                    <parameter name='tmp.oofpcipoc-dmaap.requestID' value='`$prop.oofpcipoc-dmaap.requestID`'/>
+                    <parameter name='tmp.oofpcipoc-dmaap.aai' value="`$prop.oofpcipoc-dmaap.aai`"/>
+                    <parameter name='tmp.oofpcipoc-dmaap.version' value='`$prop.oofpcipoc-dmaap.version`'/>
+                    <parameter name='tmp.oofpcipoc-dmaap.action' value='`$prop.oofpcipoc-dmaap.action`'/>
+                    <parameter name='tmp.oofpcipoc-dmaap.payload' value='`$handle-nbrlist-change-notif-input.payload`'/>
+                </set>
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish.templatefile`" />
+                    <parameter name='restapiUrl' value="`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap.nbrlist-change.topic`" />
+                    <parameter name='format' value='json' />
+                    <parameter name='httpMethod' value='POST' />
+                    <parameter name='contentType' value='application/json' />
+                    <parameter name='responsePrefix' value='dmaap' />
+                    <outcome value='failure'>
+                        <block>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Error publishing DMAAP message. ConfigDB Updated; TO be rolled back...will handle next release" />
+                            </return>
+                        </block>
+                    </outcome>
+                    <outcome value='success'>
+                        <block>
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                <parameter name="file" value="/opt/opendaylight/current/data/log/configuration-phy-cell-id.log" />
+                                <parameter name="level" value="info" />
+                                <parameter name="field1" value="DMAAP Message Successfully Published "/>
+                            </record>
+                        </block>
+                    </outcome>
+                </execute>
+            </block>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="SUCCESSFUL Execution" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-add-nbr-to-configdb-per-nbrlist-change-notif.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-add-nbr-to-configdb-per-nbrlist-change-notif.json
new file mode 100644 (file)
index 0000000..5751e15
--- /dev/null
@@ -0,0 +1,4 @@
+{
+  "targetCellId": ${tmp.nbr.cid},
+  "ho": ${tmp.nbr.blacklisted}
+}
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-dmaap-publish-template.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-dmaap-publish-template.json
new file mode 100644 (file)
index 0000000..d488f27
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "requestID": ${tmp.oofpcipoc-dmaap.requestID},
+    "AAI": ${tmp.oofpcipoc-dmaap.aai},
+    "from": "SDNR",
+    "version": ${tmp.oofpcipoc-dmaap.version},
+    "Action": ${tmp.oofpcipoc-dmaap.action},
+    "Payload": ${tmp.oofpcipoc-dmaap.payload}
+}