Service Logic (DG/Templates) for SDNR OOF PCI POC 38/84938/2 0.3.4 3.0.2-ONAP
authorSandeep Shah <sandeep.shah2@techmahindra.com>
Wed, 10 Apr 2019 16:34:16 +0000 (11:34 -0500)
committerDan Timoney <dtimoney@att.com>
Wed, 10 Apr 2019 21:36:50 +0000 (21:36 +0000)
DG's, templates, property files to support service logic for SDNR OOF
PCI POC use case. Also includes the required changes to POM files to
appropriately copy the above artifacts to docker-state folder in
respective sub-folders.

Change-Id: I9b16c798bcc9ba3a28d5a99f4c3d1562f5ed0468
Issue-ID: CCSDK-1204
Signed-off-by: SandeepLinux <sandeep.shah2@techmahindra.com>
21 files changed:
odlsli/odlsli-alpine/src/main/properties/sdnr-oofpcipoc-api-dg.properties [new file with mode: 0644]
odlsli/src/main/properties/sdnr-oofpcipoc-api-dg.properties [new file with mode: 0644]
platform-logic/installer/src/assembly/assemble_zip.xml
platform-logic/oofpcipoc-api/pom.xml [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_add-neighbor.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_configuration-phy-cell-id.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_delete-neighbor.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_generic-neighbor-configuration.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_greeting.json [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/resources/graph.versions [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_add-neighbor.xml [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_configuration-phy-cell-id.xml [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_delete-neighbor.xml [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_generic-neighbor-configuration.xml [new file with mode: 0644]
platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_greeting.xml [new file with mode: 0644]
platform-logic/pom.xml
platform-logic/restapi-templates/pom.xml [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-addNeighbor.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-deleteNeighbor.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-generic-neighbor-patch.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/oofpcipoc-pci-patch.json [new file with mode: 0644]

diff --git a/odlsli/odlsli-alpine/src/main/properties/sdnr-oofpcipoc-api-dg.properties b/odlsli/odlsli-alpine/src/main/properties/sdnr-oofpcipoc-api-dg.properties
new file mode 100644 (file)
index 0000000..d4f7e3c
--- /dev/null
@@ -0,0 +1,35 @@
+restapi.templateDir=/opt/onap/ccsdk/restapi/templates
+controller.url=http://localhost:8181
+controller.user=admin
+controller.pwd=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+honeycomb.url=http://{honeycomb-instance-ip}:8183
+honeycomb.user=admin
+honeycomb.pwd=admin
+restapi.trustStoreFileName=/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks
+restapi.trustStorePassword=adminadmin
+restapi.keyStoreFileName=/opt/onap/sdnc/data/stores/sdnc.p12
+restapi.keyStorePassword=adminadmin
+restapi.connection-oof-url=http://oof.api.simpledemo.onap.org:8698/api/oof/v1/route
+naming.gen-name.url=http://neng-serv:8080
+naming.gen-name.user=ccsdkapps
+naming.gen-name.pwd=ccsdkapps
+
+
+#Patch Targets
+oofpcipoc.patch.pci.target=/oofpcipoc:phy-cell-id-in-use
+oofpcipoc.patch.pci.target2=/oofpcipoc:fap-service[oofpcipoc:alias='{alias}']/oofpcipoc:x-0005b9-lte
+
+
+# Templates
+restapi.pci-patch.templatefile=oofpcipoc-pci-patch.json
+restapi.neighbor-add.templatefile=oofpcipoc-addNeighbor.json
+restapi.neighbor-delete.templatefile=oofpcipoc-deleteNeighbor.json
+restapi.generic-neighbor-patch.template=oofpcipoc-generic-neighbor-patch.json
+
+# URLs
+restapi.config=/restconf/config
+restapi.radio-access=/restconf/config/oofpcipoc:radio-access
+restapi.fap-service=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}
+restapi.x-005b9-lte=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/x-0005b9-lte
+restapi.lte-ran-neighbor-list-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use
+restapi.lte-ran-neighbor-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use/lte-ran-neighbor-list-in-use-lte-cell/{plmnid}/{cid}
diff --git a/odlsli/src/main/properties/sdnr-oofpcipoc-api-dg.properties b/odlsli/src/main/properties/sdnr-oofpcipoc-api-dg.properties
new file mode 100644 (file)
index 0000000..d4f7e3c
--- /dev/null
@@ -0,0 +1,35 @@
+restapi.templateDir=/opt/onap/ccsdk/restapi/templates
+controller.url=http://localhost:8181
+controller.user=admin
+controller.pwd=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+honeycomb.url=http://{honeycomb-instance-ip}:8183
+honeycomb.user=admin
+honeycomb.pwd=admin
+restapi.trustStoreFileName=/opt/onap/sdnc/data/stores/truststore.openecomp.client.jks
+restapi.trustStorePassword=adminadmin
+restapi.keyStoreFileName=/opt/onap/sdnc/data/stores/sdnc.p12
+restapi.keyStorePassword=adminadmin
+restapi.connection-oof-url=http://oof.api.simpledemo.onap.org:8698/api/oof/v1/route
+naming.gen-name.url=http://neng-serv:8080
+naming.gen-name.user=ccsdkapps
+naming.gen-name.pwd=ccsdkapps
+
+
+#Patch Targets
+oofpcipoc.patch.pci.target=/oofpcipoc:phy-cell-id-in-use
+oofpcipoc.patch.pci.target2=/oofpcipoc:fap-service[oofpcipoc:alias='{alias}']/oofpcipoc:x-0005b9-lte
+
+
+# Templates
+restapi.pci-patch.templatefile=oofpcipoc-pci-patch.json
+restapi.neighbor-add.templatefile=oofpcipoc-addNeighbor.json
+restapi.neighbor-delete.templatefile=oofpcipoc-deleteNeighbor.json
+restapi.generic-neighbor-patch.template=oofpcipoc-generic-neighbor-patch.json
+
+# URLs
+restapi.config=/restconf/config
+restapi.radio-access=/restconf/config/oofpcipoc:radio-access
+restapi.fap-service=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}
+restapi.x-005b9-lte=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/x-0005b9-lte
+restapi.lte-ran-neighbor-list-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use
+restapi.lte-ran-neighbor-in-use=/restconf/config/oofpcipoc:radio-access/fap-service/{alias}/cell-config/lte/lte-ran/lte-ran-neighbor-list-in-use/lte-ran-neighbor-list-in-use-lte-cell/{plmnid}/{cid}
index 46a8b61..4d4e5fb 100644 (file)
@@ -8,9 +8,9 @@
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
-  
+
        http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                <include>**/graph.versions</include>
                        </includes>
                </fileSet>
+               <fileSet>
+                               <directory>../target/restapi</directory>
+                               <outputDirectory>restapi</outputDirectory>
+                               <includes>
+                                               <include>**/*</include>
+                               </includes>
+               </fileSet>
 
                <fileSet>
                        <directory>src/main/scripts</directory>
diff --git a/platform-logic/oofpcipoc-api/pom.xml b/platform-logic/oofpcipoc-api/pom.xml
new file mode 100644 (file)
index 0000000..8898c69
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.onap.ccsdk.distribution</groupId>
+               <artifactId>distribution-platform-logic</artifactId>
+               <version>0.4.2-SNAPSHOT</version>
+       </parent>
+
+       <artifactId>platform-logic-oofpcipocapi</artifactId>
+       <version>0.4.2-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
+       <name>ccsdk-distribution :: platform-logic :: ${project.artifactId}</name>
+       <description>Contains platform-level service logic for the oofpcipoc-api</description>
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>2.6</version>
+                               <executions>
+                                       <execution>
+                                               <id>copy-version</id>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals><!-- here the phase you need -->
+                                               <phase>validate</phase>
+                                               <configuration>
+                                                       <outputDirectory>../target/graphs/oofpcipocapi</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>src/main/xml</directory>
+                                                                       <includes>
+                                                                               <include>*.xml</include>
+                                                                       </includes>
+                                                                       <filtering>true</filtering>
+                                                               </resource>
+                                                               <resource>
+                                                                       <directory>src/main/resources</directory>
+                                                                       <includes>
+                                                                               <include>graph.versions</include>
+                                                                       </includes>
+                                                                       <filtering>true</filtering>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
+</project>
diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_add-neighbor.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_add-neighbor.json
new file mode 100644 (file)
index 0000000..8b3a703
--- /dev/null
@@ -0,0 +1,530 @@
+[
+    {
+        "id": "f22345c.de9f5b8",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='add-neighbor' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 148.0103988647461,
+        "y": 257.98956298828125,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "d7c5d576.1a7868"
+            ]
+        ]
+    },
+    {
+        "id": "882b1b72.c01588",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 168.010404586792,
+        "y": 59.989585876464844,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "96efced.3d6433"
+            ]
+        ]
+    },
+    {
+        "id": "96efced.3d6433",
+        "type": "service-logic",
+        "name": "oofpcipoc-api 0.4.2-SNAPSHOT",
+        "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='0.4.2-SNAPSHOT'>",
+        "outputs": 1,
+        "x": 169.01039123535156,
+        "y": 141.98968315124512,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "f22345c.de9f5b8"
+            ]
+        ]
+    },
+    {
+        "id": "d7c5d576.1a7868",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 134.50000381469727,
+        "y": 452.9896240234375,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "ff63b265.d194a",
+                "add1f4bf.f5ec98",
+                "f85efba7.e52cf8",
+                "5b7bde21.76a44",
+                "dd389a0f.51a588",
+                "9b68a77d.4364d8"
+            ]
+        ]
+    },
+    {
+        "id": "ff63b265.d194a",
+        "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 add-neighbor Execution\" />\n",
+        "comments": "",
+        "x": 405.01065826416016,
+        "y": 599.9897012710571,
+        "z": "cc83b660.90f568",
+        "wires": []
+    },
+    {
+        "id": "9832e91f.5dea28",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Input RPC Payload request for Alias:  \"/>\n<parameter name=\"field2\" value=\"`$add-neighbor-input.alias`\"/>\n<parameter name=\"field3\" value=\"Input RPC Payload request for add-neighbor. Neighbor Cell #:  \"/>\n<parameter name=\"field4\" value=\"`$idx`\"/>\n<parameter name=\"field5\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`\"/>\n<parameter name=\"field6\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`\"/>\n<parameter name=\"field7\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].phy-cell-id`\"/>\n<parameter name=\"field8\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].pnf-name`\"/>\n<parameter name=\"field9\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 717.0112991333008,
+        "y": 36.98963642120361,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e5a7e054.27e8c",
+        "type": "comment",
+        "name": "Add Neighbor",
+        "info": "",
+        "comments": "",
+        "x": 371.010404586792,
+        "y": 20,
+        "z": "cc83b660.90f568",
+        "wires": []
+    },
+    {
+        "id": "4725ca86.5a91c4",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 911.0106582641602,
+        "y": 520.6666460037231,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "419e89e2.878848"
+            ]
+        ]
+    },
+    {
+        "id": "419e89e2.878848",
+        "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 getting details about new neighbor \" />",
+        "comments": "",
+        "x": 1114.0104713439941,
+        "y": 526.6666889190674,
+        "z": "cc83b660.90f568",
+        "wires": []
+    },
+    {
+        "id": "b77d4baf.430698",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 894.0104560852051,
+        "y": 604.6667747497559,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "3d864d85.162082"
+            ]
+        ]
+    },
+    {
+        "id": "3d864d85.162082",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1060.01025390625,
+        "y": 608.6667079925537,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "d764eca7.6c1dd"
+            ]
+        ]
+    },
+    {
+        "id": "d764eca7.6c1dd",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Details about newly added Neighbor\"/>\n<parameter name=\"field2\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`\"/>\n<parameter name=\"field3\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`\"/>\n<parameter name=\"field4\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`\"/>\n<parameter name=\"field5\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`\"/>\n<parameter name=\"field6\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1236.010196685791,
+        "y": 607.6669750213623,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e945229c.9e3f8",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Setting variables for Neighbor Add PUT operation\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>\n<parameter name=\"field3\" value=\"`$tmp.plmnid`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$tmp.pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$tmp.blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 614.0113372802734,
+        "y": 442.0000858306885,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f85efba7.e52cf8",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$add-neighbor-input.lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 566.0961723327637,
+        "y": 44.95317363739014,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "9832e91f.5dea28"
+            ]
+        ]
+    },
+    {
+        "id": "add1f4bf.f5ec98",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"RPC to add neighbors. Number of neighbors to add: \"/>\n<parameter name=\"field2\" value=\"`$add-neighbor-input.lte-cell-number-of-entries`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 387.0107116699219,
+        "y": 85.01043033599854,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9b68a77d.4364d8",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$add-neighbor-input.lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 323.0105800628662,
+        "y": 453.99998664855957,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "d54b1c5c.89e1a"
+            ]
+        ]
+    },
+    {
+        "id": "2a7d5b86.2f1f74",
+        "type": "set",
+        "name": "set tmp variables for the requested neighbor to be added",
+        "xml": "<set>\n<parameter name=\"tmp.plmnid\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`\"/>\n<parameter name=\"tmp.cid\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`\"/>\n<parameter name=\"tmp.phy-cell-id\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].phy-cell-id`\"/>\n<parameter name=\"tmp.pnf-name\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].pnf-name`\"/>\n<parameter name=\"tmp.blacklisted\" value=\"`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].blacklisted`\"/>\n<parameter name=\"tmp.alias\" value=\"`$add-neighbor-input.alias`\"/>",
+        "comments": "",
+        "x": 876.0115585327148,
+        "y": 125.88908386230469,
+        "z": "cc83b660.90f568",
+        "wires": []
+    },
+    {
+        "id": "2241af1e.1c926",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 914.0107421875,
+        "y": 383.00007915496826,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "1cb43b66.fbd255"
+            ]
+        ]
+    },
+    {
+        "id": "90d94f4f.9d631",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 905.0107002258301,
+        "y": 464.00000190734863,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "70dd741.ff0be8c"
+            ]
+        ]
+    },
+    {
+        "id": "1cb43b66.fbd255",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1047.0106716156006,
+        "y": 342.0001106262207,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "469db094.1216"
+            ]
+        ]
+    },
+    {
+        "id": "469db094.1216",
+        "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 a new neighbor\" />",
+        "comments": "",
+        "x": 1226.010362625122,
+        "y": 339.00007820129395,
+        "z": "cc83b660.90f568",
+        "wires": []
+    },
+    {
+        "id": "70dd741.ff0be8c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1070.0104293823242,
+        "y": 463.00006198883057,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "2f306524.135d7a"
+            ]
+        ]
+    },
+    {
+        "id": "2f306524.135d7a",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"PUT New Neighbor Executed Successfully \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1243.0105438232422,
+        "y": 464.0000944137573,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d54b1c5c.89e1a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 403.0103988647461,
+        "y": 392.0104808807373,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "2a7d5b86.2f1f74",
+                "e945229c.9e3f8",
+                "6df2494b.4e3978",
+                "89170580.861658",
+                "27948b9f.2a3644",
+                "4d365ed1.6f0aa",
+                "9041c096.4c873",
+                "a5298f6.4caf87",
+                "98094ef7.d5497",
+                "75189f8.6382e6"
+            ]
+        ]
+    },
+    {
+        "id": "5b7bde21.76a44",
+        "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": 612.0106506347656,
+        "y": 91.01041412353516,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "dd389a0f.51a588",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Properties read .. neighbor-add template\"/>\n<parameter name=\"field2\" value=\"`$prop.neighbor-add.templatefile`\"/>\n<parameter name=\"field3\" value=\"`$prop.controller.user`\"/>\n<parameter name=\"field4\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"field5\" value=\"`$prop.controller.url`\"/>\n<parameter name=\"field6\" value=\"`$prop.restapi.lte-ran-neighbor-in-use`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 572.010778427124,
+        "y": 141.01051807403564,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6df2494b.4e3978",
+        "type": "execute",
+        "name": "generate neighbor add URL",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.lte-ran-neighbor-in-use`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{alias}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.alias`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 811.0109329223633,
+        "y": 217.01056575775146,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "89170580.861658",
+        "type": "execute",
+        "name": "add a neighbor using PUT",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-addNeighbor.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.add-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PUT\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-add-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 652.0107727050781,
+        "y": 489.01055335998535,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "2241af1e.1c926",
+                "90d94f4f.9d631"
+            ]
+        ]
+    },
+    {
+        "id": "27948b9f.2a3644",
+        "type": "execute",
+        "name": "Get newly added neighbor details",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.add-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"GET\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 638.0105438232422,
+        "y": 547.0106000900269,
+        "z": "cc83b660.90f568",
+        "wires": [
+            [
+                "4725ca86.5a91c4",
+                "b77d4baf.430698"
+            ]
+        ]
+    },
+    {
+        "id": "1daa570b.6f6d19",
+        "type": "execute",
+        "name": "Recofigure PCI for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-pci-patch.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PATCH\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-patch-response\"/>\n<parameter name='contentType' value='application/yang.patch+json' /> \n<parameter name='accept' value='application/yang.patch-status+json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 845.0104293823242,
+        "y": 795.0104370117188,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4d365ed1.6f0aa",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.add-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{plmnid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.plmnid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 850.0106201171875,
+        "y": 304.01040267944336,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9041c096.4c873",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.add-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{cid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.cid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 678.0105667114258,
+        "y": 399.0104055404663,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a5298f6.4caf87",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Add Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 764.010498046875,
+        "y": 257.0104036331177,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "98094ef7.d5497",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Add Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 791.0104560852051,
+        "y": 347.01040410995483,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "75189f8.6382e6",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Temporary variable for Neighbor Cell #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$tmp.plmnid`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$tmp.pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$tmp.blacklisted`\"/>\n<parameter name=\"field8\" value=\"`$tmp.alias`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 760.0104751586914,
+        "y": 173.01042461395264,
+        "z": "cc83b660.90f568",
+        "wires": [
+            []
+        ]
+    }
+]
diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_configuration-phy-cell-id.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_configuration-phy-cell-id.json
new file mode 100644 (file)
index 0000000..3df8daf
--- /dev/null
@@ -0,0 +1,577 @@
+[
+    {
+        "id": "c92045e8.ea6de8",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='configuration-phy-cell-id' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 146.01040649414062,
+        "y": 255.98958015441895,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "9f1b4c27.d960a"
+            ]
+        ]
+    },
+    {
+        "id": "9539a9a2.85af98",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 162.010404586792,
+        "y": 59.989585876464844,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "3e707ad2.360716"
+            ]
+        ]
+    },
+    {
+        "id": "3e707ad2.360716",
+        "type": "service-logic",
+        "name": "oofpcipoc-api 0.4.2-SNAPSHOT",
+        "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='0.4.2-SNAPSHOT'>",
+        "outputs": 1,
+        "x": 163.01039123535156,
+        "y": 141.98968315124512,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "c92045e8.ea6de8"
+            ]
+        ]
+    },
+    {
+        "id": "9f1b4c27.d960a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 128.50000381469727,
+        "y": 452.9896240234375,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "3b3e33d7.8ccbec",
+                "aea59ecf.32eac",
+                "64536be7.433404",
+                "1c97574b.348629",
+                "d18d833e.494d1",
+                "9cf5b7f.c337448"
+            ]
+        ]
+    },
+    {
+        "id": "3b3e33d7.8ccbec",
+        "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": 574.010663986206,
+        "y": 766.9897136688232,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "1659db0a.819375",
+        "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=\"Input RPC Payload request. FAP #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].alias`\"/>\n<parameter name=\"field4\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].cid`\"/>\n<parameter name=\"field5\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].phy-cell-id-in-use`\"/>\n<parameter name=\"field6\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].pnf-name`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 714.0109386444092,
+        "y": 45.989633560180664,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "719be637.af1098",
+        "type": "comment",
+        "name": "configuration-phy-cell-id",
+        "info": "",
+        "comments": "",
+        "x": 365.010404586792,
+        "y": 20,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "fdc1c4b9.c07738",
+        "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=\"Initial FAP Service PCI PARMS\"/>\n<parameter name=\"field2\" value=\"`$oofpcigetfapservice.fap-service[0].alias`\"/>\n<parameter name=\"field3\" value=\"`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.phy-cell-id-in-use`\"/>\n<parameter name=\"field4\" value=\"`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.pnf-name`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1173.0104751586914,
+        "y": 248.99999809265137,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8e0153f0.5dad7",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 873.0106048583984,
+        "y": 214.00000953674316,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "b5827573.4ab448"
+            ]
+        ]
+    },
+    {
+        "id": "b5827573.4ab448",
+        "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 executing Get odutopo node details rest api\" />",
+        "comments": "",
+        "x": 1189.0105895996094,
+        "y": 206.0000286102295,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "7c752a60.4979e4",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 910.0107460021973,
+        "y": 311.99999237060547,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "e7ad2f93.1f739"
+            ]
+        ]
+    },
+    {
+        "id": "e7ad2f93.1f739",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.0104560852051,
+        "y": 254.00000095367432,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "fdc1c4b9.c07738"
+            ]
+        ]
+    },
+    {
+        "id": "cb2275bc.1f41e8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 905.0105609893799,
+        "y": 566.6666400432587,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "905dd9f3.40a588"
+            ]
+        ]
+    },
+    {
+        "id": "905dd9f3.40a588",
+        "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 executing patch rest api\" />",
+        "comments": "",
+        "x": 1115.0104541778564,
+        "y": 585.6666898727417,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "5c97d0d3.3281d",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 896.010419845581,
+        "y": 705.6667537689209,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "8d8c927b.5b512"
+            ]
+        ]
+    },
+    {
+        "id": "8d8c927b.5b512",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1084.010290145874,
+        "y": 703.6666603088379,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "989894d0.463e08"
+            ]
+        ]
+    },
+    {
+        "id": "989894d0.463e08",
+        "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=\"Post Reconfig FAP Service PCI PARMS\"/>\n<parameter name=\"field2\" value=\"`$oofpcigetfapservice.fap-service[0].alias`\"/>\n<parameter name=\"field3\" value=\"`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.phy-cell-id-in-use`\"/>\n<parameter name=\"field4\" value=\"`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.pnf-name`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1268.0102233886719,
+        "y": 677.6668834686279,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fcc41fc.bfb59e",
+        "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=\"Setting variables for GET operation\"/>\n<parameter name=\"field2\" value=\"`$tmp.fap-service-url`\"/>\n<parameter name=\"field3\" value=\"`$tmp.alias`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.phy-cell-id-in-use`\"/>\n<parameter name=\"field6\" value=\"`$tmp.pnf-name`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 639.011058807373,
+        "y": 299.00009632110596,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "64536be7.433404",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$configuration-phy-cell-id-input.fap-service-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 560.0960960388184,
+        "y": 43.95316982269287,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "1659db0a.819375"
+            ]
+        ]
+    },
+    {
+        "id": "aea59ecf.32eac",
+        "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=\"RPC to Configure PCI INVOKED. Number of Cells to configure: \"/>\n<parameter name=\"field2\" value=\"`$configuration-phy-cell-id-input.fap-service-number-of-entries`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 381.01070404052734,
+        "y": 85.01043033599854,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9cf5b7f.c337448",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$configuration-phy-cell-id-input.fap-service-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 317.0105800628662,
+        "y": 453.99998664855957,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "6b550b6e.4ab944"
+            ]
+        ]
+    },
+    {
+        "id": "65d9020f.1c2dbc",
+        "type": "set",
+        "name": "set tmp variables for the requested fap service input parms",
+        "xml": "<set>\n<parameter name=\"tmp.alias\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].alias`\"/>\n<parameter name=\"tmp.cid\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].cid`\"/>\n<parameter name=\"tmp.phy-cell-id-in-use\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].phy-cell-id-in-use`\"/>\n<parameter name=\"tmp.pnf-name\" value=\"`$configuration-phy-cell-id-input.fap-service[$idx].pnf-name`\"/>\n",
+        "comments": "",
+        "x": 767.0114974975586,
+        "y": 176.88908100128174,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "10092a64.445696",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 908.0107421875,
+        "y": 383.00007915496826,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "83ffe0f1.145c2"
+            ]
+        ]
+    },
+    {
+        "id": "2f27ee2e.cd2152",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 905.0106735229492,
+        "y": 512.0000009536743,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "9a40bd5d.b03b7"
+            ]
+        ]
+    },
+    {
+        "id": "83ffe0f1.145c2",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1041.0106716156006,
+        "y": 342.0001106262207,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "ebac1d30.63c39"
+            ]
+        ]
+    },
+    {
+        "id": "ebac1d30.63c39",
+        "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 executing patch rest api\" />",
+        "comments": "",
+        "x": 1220.010362625122,
+        "y": 339.00007820129395,
+        "z": "630a4d24.993484",
+        "wires": []
+    },
+    {
+        "id": "9a40bd5d.b03b7",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1063.0104160308838,
+        "y": 478.00006103515625,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "6b0cf27b.81140c"
+            ]
+        ]
+    },
+    {
+        "id": "6b0cf27b.81140c",
+        "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=\"PUT PCI POC FAP SERVICE. Reconfigured \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1242.0104846954346,
+        "y": 477.0000476837158,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6b550b6e.4ab944",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 397.0103988647461,
+        "y": 392.0104808807373,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "65d9020f.1c2dbc",
+                "fcc41fc.bfb59e",
+                "a04061b8.e630e",
+                "2fa514b0.d7bf8c",
+                "3efc9869.e2bda8",
+                "ec3507db.a35b28",
+                "31202ee3.c34b22",
+                "aab3655.f43a598"
+            ]
+        ]
+    },
+    {
+        "id": "ec3507db.a35b28",
+        "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=\"URL and Target for PCI patch URL\"/>\n<parameter name='field2' value=\"`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`\" />\n<parameter name='field3' value=\"`$prop.oofpcipoc.patch.pci.target`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 640.0110626220703,
+        "y": 468.01043033599854,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1c97574b.348629",
+        "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": 606.0105514526367,
+        "y": 92.0104169845581,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d18d833e.494d1",
+        "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=\"Properties read .. pci patch target\"/>\n<parameter name=\"field2\" value=\"`$prop.oofpcipoc.patch.pci.target`\"/>\n<parameter name=\"field3\" value=\"`$prop.controller.user`\"/>\n<parameter name=\"field4\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"field5\" value=\"`$prop.controller.url`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 603.0106964111328,
+        "y": 139.0104742050171,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2fa514b0.d7bf8c",
+        "type": "execute",
+        "name": "Get FAP details for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.fap-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"GET\"/>\n<parameter name=\"responsePrefix\" value=\"oofpcigetfapservice\"/>\n<parameter name='contentType' value='application/json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 668.0109405517578,
+        "y": 370.01039123535156,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "8e0153f0.5dad7",
+                "7c752a60.4979e4"
+            ]
+        ]
+    },
+    {
+        "id": "a04061b8.e630e",
+        "type": "execute",
+        "name": "generate fap-service url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.fap-service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fap-service-url\"/>\n    <parameter name=\"target\" value=\"{alias}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.alias`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 680.0106430053711,
+        "y": 242.01049280166626,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3efc9869.e2bda8",
+        "type": "execute",
+        "name": "generate pci patch url for a cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.x-005b9-lte`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.oofpcipoc.patch.pci.url\"/>\n    <parameter name=\"target\" value=\"{alias}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.alias`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 678.0105743408203,
+        "y": 413.01040744781494,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "31202ee3.c34b22",
+        "type": "execute",
+        "name": "Recofigure PCI for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-pci-patch.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PATCH\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-patch-response\"/>\n<parameter name='contentType' value='application/yang.patch+json' /> \n<parameter name='format' value='json' />\n<parameter name='accept' value='application/yang.patch-status+json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 661.0104751586914,
+        "y": 544.0105457305908,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "10092a64.445696",
+                "2f27ee2e.cd2152"
+            ]
+        ]
+    },
+    {
+        "id": "aab3655.f43a598",
+        "type": "execute",
+        "name": "Get FAP details for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.fap-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"GET\"/>\n<parameter name=\"responsePrefix\" value=\"oofpcigetfapservice\"/>\n<parameter name='contentType' value='application/json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 640.0104293823242,
+        "y": 631.0104370117188,
+        "z": "630a4d24.993484",
+        "wires": [
+            [
+                "cb2275bc.1f41e8",
+                "5c97d0d3.3281d"
+            ]
+        ]
+    },
+    {
+        "id": "dc5e9a0c.421988",
+        "type": "execute",
+        "name": "Recofigure PCI for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-pci-patch.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PATCH\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-patch-response\"/>\n<parameter name='contentType' value='application/yang.patch+json' /> \n<parameter name='accept' value='application/yang.patch-status+json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 839.0104293823242,
+        "y": 795.0104370117188,
+        "z": "630a4d24.993484",
+        "wires": [
+            []
+        ]
+    }
+]
diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_delete-neighbor.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_delete-neighbor.json
new file mode 100644 (file)
index 0000000..2154176
--- /dev/null
@@ -0,0 +1,452 @@
+[
+    {
+        "id": "8f6bbd32.2e1fc",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='delete-neighbor' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 152.01040649414062,
+        "y": 280.0104064941406,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "9d8eae2c.c98b4"
+            ]
+        ]
+    },
+    {
+        "id": "7cc1ba3.0ded644",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 172.01041221618652,
+        "y": 82.01042938232422,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "3f1f6894.c773d8"
+            ]
+        ]
+    },
+    {
+        "id": "3f1f6894.c773d8",
+        "type": "service-logic",
+        "name": "oofpcipoc-api 0.4.2-SNAPSHOT",
+        "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='0.4.2-SNAPSHOT'>",
+        "outputs": 1,
+        "x": 173.0103988647461,
+        "y": 164.0105266571045,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "8f6bbd32.2e1fc"
+            ]
+        ]
+    },
+    {
+        "id": "9d8eae2c.c98b4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 138.5000114440918,
+        "y": 475.0104675292969,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "f3ffc042.30165",
+                "9549fa66.052c98",
+                "1377597c.adf1a7",
+                "d8359a96.3b95b8",
+                "153414fd.ef7b4b",
+                "ce502c9f.ad136"
+            ]
+        ]
+    },
+    {
+        "id": "f3ffc042.30165",
+        "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 add-neighbor Execution\" />\n",
+        "comments": "",
+        "x": 409.0106658935547,
+        "y": 622.0105447769165,
+        "z": "d658c648.5b71e8",
+        "wires": []
+    },
+    {
+        "id": "444ce01a.b540b",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Input RPC Payload request for Alias:  \"/>\n<parameter name=\"field2\" value=\"`$delete-neighbor-input.alias`\"/>\n<parameter name=\"field3\" value=\"Input RPC Payload request for delete-neighbor. Neighbor Cell #:  \"/>\n<parameter name=\"field4\" value=\"`$idx`\"/>\n<parameter name=\"field5\" value=\"`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`\"/>\n<parameter name=\"field6\" value=\"`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 721.0113067626953,
+        "y": 59.01047992706299,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a47d97a9.fdacf8",
+        "type": "comment",
+        "name": "Delete neighbor",
+        "info": "",
+        "comments": "",
+        "x": 375.0104122161865,
+        "y": 42.020843505859375,
+        "z": "d658c648.5b71e8",
+        "wires": []
+    },
+    {
+        "id": "ae098383.f8ea2",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Setting variables for Neighbor Add PUT operation\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>\n<parameter name=\"field3\" value=\"`$tmp.plmnid`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$tmp.pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$tmp.blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 620.0113906860352,
+        "y": 481.02094173431396,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1377597c.adf1a7",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$delete-neighbor-input.lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 570.0961799621582,
+        "y": 66.97401714324951,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "444ce01a.b540b"
+            ]
+        ]
+    },
+    {
+        "id": "9549fa66.052c98",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"RPC to delete neighbors. Number of neighbors to delete: \"/>\n<parameter name=\"field2\" value=\"`$delete-neighbor-input.lte-cell-number-of-entries`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 391.0107192993164,
+        "y": 107.03127384185791,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ce502c9f.ad136",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$delete-neighbor-input.lte-cell-number-of-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 327.01058769226074,
+        "y": 476.02083015441895,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "4661d468.e207dc"
+            ]
+        ]
+    },
+    {
+        "id": "a874a6b4.cbe028",
+        "type": "set",
+        "name": "set tmp variables for the requested neighbor to be added",
+        "xml": "<set>\n<parameter name=\"tmp.plmnid\" value=\"`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`\"/>\n<parameter name=\"tmp.cid\" value=\"`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`\"/>\n<parameter name=\"tmp.alias\" value=\"`$delete-neighbor-input.alias`\"/>",
+        "comments": "",
+        "x": 880.0115661621094,
+        "y": 147.90992736816406,
+        "z": "d658c648.5b71e8",
+        "wires": []
+    },
+    {
+        "id": "17cdca86.1a45e5",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 882.0107955932617,
+        "y": 465.0209321975708,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "b18e1fe5.42e1a"
+            ]
+        ]
+    },
+    {
+        "id": "be22f91c.ecdaf8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 896.0107116699219,
+        "y": 583.0208921432495,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "ba4bdf26.a25c6"
+            ]
+        ]
+    },
+    {
+        "id": "b18e1fe5.42e1a",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1036.0107460021973,
+        "y": 435.0209712982178,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "d552d127.0b1b9"
+            ]
+        ]
+    },
+    {
+        "id": "d552d127.0b1b9",
+        "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 a new neighbor\" />",
+        "comments": "",
+        "x": 1223.0103797912598,
+        "y": 417.02092361450195,
+        "z": "d658c648.5b71e8",
+        "wires": []
+    },
+    {
+        "id": "ba4bdf26.a25c6",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1066.010498046875,
+        "y": 568.020932674408,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "b46d635a.d09bb"
+            ]
+        ]
+    },
+    {
+        "id": "b46d635a.d09bb",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"DELETE Neighbor Executed Successfully \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1250.0105171203613,
+        "y": 553.020959854126,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4661d468.e207dc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 407.0104064941406,
+        "y": 414.0313243865967,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "a874a6b4.cbe028",
+                "ae098383.f8ea2",
+                "5e9335be.02848c",
+                "c257d0f0.4516e",
+                "895e37be.280c78",
+                "fcb1c157.9d704",
+                "e65af91d.2ad1c8",
+                "2683298a.19da16",
+                "1766bd3c.fe21d3"
+            ]
+        ]
+    },
+    {
+        "id": "d8359a96.3b95b8",
+        "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": 616.0106582641602,
+        "y": 113.03125762939453,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "153414fd.ef7b4b",
+        "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/add-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Properties read .. neighbor-add template\"/>\n<parameter name=\"field2\" value=\"`$prop.neighbor-add.templatefile`\"/>\n<parameter name=\"field3\" value=\"`$prop.controller.user`\"/>\n<parameter name=\"field4\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"field5\" value=\"`$prop.controller.url`\"/>\n<parameter name=\"field6\" value=\"`$prop.restapi.lte-ran-neighbor-in-use`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 576.0107860565186,
+        "y": 163.03136157989502,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5e9335be.02848c",
+        "type": "execute",
+        "name": "generate neighbor add URL",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.lte-ran-neighbor-in-use`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{alias}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.alias`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 815.0109405517578,
+        "y": 239.03140926361084,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c257d0f0.4516e",
+        "type": "execute",
+        "name": "delete a neighbor using DELETE",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.add-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"DELETE\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-delete-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 642.0108261108398,
+        "y": 545.0314388275146,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            [
+                "17cdca86.1a45e5",
+                "be22f91c.ecdaf8"
+            ]
+        ]
+    },
+    {
+        "id": "da297c37.82f9f",
+        "type": "execute",
+        "name": "Recofigure PCI for a Cell",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-pci-patch.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PATCH\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-patch-response\"/>\n<parameter name='contentType' value='application/yang.patch+json' /> \n<parameter name='accept' value='application/yang.patch-status+json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 849.0104370117188,
+        "y": 817.0312805175781,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "895e37be.280c78",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.add-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{plmnid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.plmnid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 854.010627746582,
+        "y": 326.03124618530273,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fcb1c157.9d704",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.add-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.add-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{cid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.cid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 682.0105743408203,
+        "y": 421.0312490463257,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e65af91d.2ad1c8",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Add Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 768.0105056762695,
+        "y": 279.03124713897705,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2683298a.19da16",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Add Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.add-neighbor-service-url`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 795.0104637145996,
+        "y": 369.0312476158142,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1766bd3c.fe21d3",
+        "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/delete-neighbor.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Temporary variable for Neighbor Cell #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$tmp.plmnid`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.alias`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 764.0104827880859,
+        "y": 195.031268119812,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4452b556.b1699c",
+        "type": "execute",
+        "name": "delete a neighbor using DELETE",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-deleteNeighbor.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.add-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"DELETE\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-delete-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 665.0104370117188,
+        "y": 656.0104370117188,
+        "z": "d658c648.5b71e8",
+        "wires": [
+            []
+        ]
+    }
+]
diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_generic-neighbor-configuration.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_generic-neighbor-configuration.json
new file mode 100644 (file)
index 0000000..8127aaf
--- /dev/null
@@ -0,0 +1,593 @@
+[
+    {
+        "id": "966e407d.9086f",
+        "type": "comment",
+        "name": "Generic Neighbor Configuration",
+        "info": "",
+        "comments": "",
+        "x": 335.50001335144043,
+        "y": 20,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "6fb545d.b9f92bc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 391.5,
+        "y": 382.01049518585205,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "542aa267.5de7ec",
+                "e4d83e12.5aa3c",
+                "261a200c.78536",
+                "3400b7a4.1ff4c8",
+                "fd45e824.20b968",
+                "d7ff45e9.c502f8",
+                "9e7ad97b.b26a38",
+                "a191be9b.c3b55",
+                "375845c8.cdbe7a",
+                "bedde1a6.6b5ec"
+            ]
+        ]
+    },
+    {
+        "id": "71827db2.f669d4",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 287.50018882751465,
+        "y": 453.99998664855957,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "6fb545d.b9f92bc"
+            ]
+        ]
+    },
+    {
+        "id": "542aa267.5de7ec",
+        "type": "set",
+        "name": "set tmp variables for the requested fap service input parms",
+        "xml": "<set>\n<parameter name=\"tmp.alias\" value=\"`$generic-neighbor-configuration-input.alias`\"/>\n<parameter name=\"tmp.plmnid\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`\"/>\n<parameter name=\"tmp.cid\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`\"/>\n<parameter name=\"tmp.phy-cell-id\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`\"/>\n<parameter name=\"tmp.pnf-name\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`\"/>\n<parameter name=\"tmp.blacklisted\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`\"/>\n",
+        "comments": "",
+        "x": 737.5011444091797,
+        "y": 175.88909339904785,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "e4d83e12.5aa3c",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Temporary varaibles set. Neighbor #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$tmp.plmnid`\"/>\n<parameter name=\"field4\" value=\"`$tmp.cid`\"/>\n<parameter name=\"field5\" value=\"`$tmp.phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$tmp.pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$tmp.blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 602.0105209350586,
+        "y": 219.0104274749756,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7c2f19ac.9408c8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 98.9896125793457,
+        "y": 452.9896240234375,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "71827db2.f669d4",
+                "51af8168.06635",
+                "cecc5c7b.7371f",
+                "c7654668.510fc8",
+                "a6c8572f.221db8",
+                "eaa9ba03.7776a8"
+            ]
+        ]
+    },
+    {
+        "id": "69c02c08.5e9024",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='generic-neighbor-configuration' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 116.50001525878906,
+        "y": 255.98958015441895,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "7c2f19ac.9408c8"
+            ]
+        ]
+    },
+    {
+        "id": "51af8168.06635",
+        "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": 531.5003509521484,
+        "y": 808.9897384643555,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "cecc5c7b.7371f",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"RPC to Configure Neighbors INVOKED. Number of Neighbors to configure: \"/>\n<parameter name=\"field2\" value=\"`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 351.5003128051758,
+        "y": 85.01043033599854,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c7654668.510fc8",
+        "type": "for",
+        "name": "for",
+        "xml": "<for index='idx' start='0' end=\"`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 530.5857048034668,
+        "y": 43.95316982269287,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "a7de08a4.309828"
+            ]
+        ]
+    },
+    {
+        "id": "a6c8572f.221db8",
+        "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": 578.5001983642578,
+        "y": 90.01041248161346,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "eaa9ba03.7776a8",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Properties read .. generic neighbor config template\"/>\n<parameter name=\"field2\" value=\"`$prop.restapi.generic-neighbor-patch.template`\"/>\n<parameter name=\"field3\" value=\"`$prop.controller.user`\"/>\n<parameter name=\"field4\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"field5\" value=\"`$prop.controller.url`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 565.5003471374512,
+        "y": 137.01048946380615,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7c1282e8.0c1fbc",
+        "type": "service-logic",
+        "name": "oofpcipoc-api 0.4.2-SNAPSHOT",
+        "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='0.4.2-SNAPSHOT'>",
+        "outputs": 1,
+        "x": 133.5,
+        "y": 141.98968315124512,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "69c02c08.5e9024"
+            ]
+        ]
+    },
+    {
+        "id": "a7de08a4.309828",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Input RPC Payload request. Neighbor #:  \"/>\n<parameter name=\"field2\" value=\"`$idx`\"/>\n<parameter name=\"field3\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`\"/>\n<parameter name=\"field4\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`\"/>\n<parameter name=\"field5\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`\"/>\n<parameter name=\"field6\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`\"/>\n<parameter name=\"field7\" value=\"`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 684.5005474090576,
+        "y": 45.989633560180664,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "30d50b81.50d574",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 132.50001335144043,
+        "y": 59.989585876464844,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "7c1282e8.0c1fbc"
+            ]
+        ]
+    },
+    {
+        "id": "bedde1a6.6b5ec",
+        "type": "execute",
+        "name": "generate neighbor config URL",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.lte-ran-neighbor-in-use`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.config-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{alias}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.alias`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 673.0108947753906,
+        "y": 263.5661497116089,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "261a200c.78536",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Config Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.config-neighbor-service-url`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 602.0105018615723,
+        "y": 314.78819274902344,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3400b7a4.1ff4c8",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.config-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.config-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{plmnid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.plmnid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 802.0106391906738,
+        "y": 328.78822231292725,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fd45e824.20b968",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Config Neighbor List URL\"/>\n<parameter name=\"field2\" value=\"`$tmp.config-neighbor-service-url`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 670.0104923248291,
+        "y": 372.788197517395,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d7ff45e9.c502f8",
+        "type": "execute",
+        "name": "execute slipluginutils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.config-neighbor-service-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.config-neighbor-service-url\"/>\n    <parameter name=\"target\" value=\"{cid}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.cid`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 693.0105209350586,
+        "y": 417.7882204055786,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a191be9b.c3b55",
+        "type": "execute",
+        "name": "Configure neighbor using PATCH",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.config-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"PATCH\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-neighbor-patch-response\"/>\n<parameter name='contentType' value='application/yang.patch+json' /> \n<parameter name='format' value='json' />\n<parameter name='accept' value='application/yang.patch-status+json' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 691.010498046875,
+        "y": 563.7883377075195,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "49bedeca.324b5",
+                "6c592a69.fa7804"
+            ]
+        ]
+    },
+    {
+        "id": "49bedeca.324b5",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 986.0103988647461,
+        "y": 570.7777833938599,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "defa5e8b.a3afa"
+            ]
+        ]
+    },
+    {
+        "id": "6c592a69.fa7804",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1004.010440826416,
+        "y": 638.7776098251343,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "7e9e1401.b662cc"
+            ]
+        ]
+    },
+    {
+        "id": "4a12d095.a60f9",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"PATCH Neighbor Executed Successfully \"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1342.0101928710938,
+        "y": 625.7777180671692,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7e9e1401.b662cc",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1184.0101051330566,
+        "y": 636.7776908874512,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "4a12d095.a60f9"
+            ]
+        ]
+    },
+    {
+        "id": "defa5e8b.a3afa",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1145.0102615356445,
+        "y": 579.7777690887451,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "4856d409.faf5fc"
+            ]
+        ]
+    },
+    {
+        "id": "4856d409.faf5fc",
+        "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 a new neighbor\" />",
+        "comments": "",
+        "x": 1321.010025024414,
+        "y": 564.7777423858643,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "9e7ad97b.b26a38",
+        "type": "execute",
+        "name": "Get neighbor details pre-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.config-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"GET\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 701.0104370117188,
+        "y": 477.7882080078125,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "3f51c8c2.f96888",
+                "65ee4970.885748"
+            ]
+        ]
+    },
+    {
+        "id": "3f51c8c2.f96888",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 974.0105514526367,
+        "y": 451.4442539215088,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "31328392.853cfc"
+            ]
+        ]
+    },
+    {
+        "id": "65ee4970.885748",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 969.010383605957,
+        "y": 507.44440746307373,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "2a0f9a0c.8b1026"
+            ]
+        ]
+    },
+    {
+        "id": "2a0f9a0c.8b1026",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1121.0102005004883,
+        "y": 516.4443125724792,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "17e660a2.7a5f2f"
+            ]
+        ]
+    },
+    {
+        "id": "17e660a2.7a5f2f",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Details about Neighbor Pre-configuration\"/>\n<parameter name=\"field2\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`\"/>\n<parameter name=\"field3\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`\"/>\n<parameter name=\"field4\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`\"/>\n<parameter name=\"field5\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`\"/>\n<parameter name=\"field6\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1282.0101165771484,
+        "y": 510.44458293914795,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "31328392.853cfc",
+        "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 getting details about new neighbor \" />",
+        "comments": "",
+        "x": 1175.010341644287,
+        "y": 457.44426250457764,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "375845c8.cdbe7a",
+        "type": "execute",
+        "name": "Get neighbor details post-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.controller.url + $tmp.config-neighbor-service-url`\"/>\n<parameter name=\"restapiUser\" value=\"`$prop.controller.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.controller.pwd`\"/>\n<parameter name=\"httpMethod\" value=\"GET\"/>\n<parameter name=\"responsePrefix\" value=\"oofpci-neighbor-response\"/>\n<parameter name='contentType' value='application/json' /> \n<parameter name='format' value='json' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 741.0104370117188,
+        "y": 715.6770629882812,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "256027a4.697e18",
+                "6f609efb.0848b"
+            ]
+        ]
+    },
+    {
+        "id": "256027a4.697e18",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1014.0105514526367,
+        "y": 689.3331089019775,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "9acf15fd.972cb8"
+            ]
+        ]
+    },
+    {
+        "id": "6f609efb.0848b",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1009.010383605957,
+        "y": 745.3332624435425,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "68fe6d7.2d08a94"
+            ]
+        ]
+    },
+    {
+        "id": "68fe6d7.2d08a94",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1161.0102005004883,
+        "y": 754.333167552948,
+        "z": "fef406db.decef8",
+        "wires": [
+            [
+                "dcc83786.96c448"
+            ]
+        ]
+    },
+    {
+        "id": "9acf15fd.972cb8",
+        "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 getting details about new neighbor \" />",
+        "comments": "",
+        "x": 1215.010341644287,
+        "y": 695.3331174850464,
+        "z": "fef406db.decef8",
+        "wires": []
+    },
+    {
+        "id": "dcc83786.96c448",
+        "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/generic-neighbor-config.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Details about Neighbor Pre-configuration\"/>\n<parameter name=\"field2\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`\"/>\n<parameter name=\"field3\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`\"/>\n<parameter name=\"field4\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`\"/>\n<parameter name=\"field5\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`\"/>\n<parameter name=\"field6\" value=\"`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1322.010108947754,
+        "y": 747.3334121704102,
+        "z": "fef406db.decef8",
+        "wires": [
+            []
+        ]
+    }
+]
diff --git a/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_greeting.json b/platform-logic/oofpcipoc-api/src/main/json/oofpcipoc-api_greeting.json
new file mode 100644 (file)
index 0000000..f8347b7
--- /dev/null
@@ -0,0 +1,93 @@
+[
+    {
+        "id": "ddd53cba.3855c",
+        "type": "method",
+        "name": "method",
+        "xml": "<method rpc='greeting' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 395.0104064941406,
+        "y": 86,
+        "z": "83a68b58.736338",
+        "wires": [
+            [
+                "91ccee75.aa82f"
+            ]
+        ]
+    },
+    {
+        "id": "881a71a7.96383",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 162.01040649414062,
+        "y": 52,
+        "z": "83a68b58.736338",
+        "wires": [
+            [
+                "72aee190.08cf4"
+            ]
+        ]
+    },
+    {
+        "id": "72aee190.08cf4",
+        "type": "service-logic",
+        "name": "oofpcipoc-api 0.4.2-SNAPSHOT",
+        "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='0.4.2-SNAPSHOT'>",
+        "outputs": 1,
+        "x": 199.01040649414062,
+        "y": 175,
+        "z": "83a68b58.736338",
+        "wires": [
+            [
+                "ddd53cba.3855c"
+            ]
+        ]
+    },
+    {
+        "id": "91ccee75.aa82f",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 411.0104064941406,
+        "y": 259,
+        "z": "83a68b58.736338",
+        "wires": [
+            [
+                "ad2486d6.ce0638",
+                "d98f8695.73e2d8"
+            ]
+        ]
+    },
+    {
+        "id": "d98f8695.73e2d8",
+        "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": 577.0104064941406,
+        "y": 427,
+        "z": "83a68b58.736338",
+        "wires": []
+    },
+    {
+        "id": "ad2486d6.ce0638",
+        "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/svclogic.log\" />\n<parameter name=\"level\" value=\"info\" />\n<parameter name=\"field1\" value=\"Hello World!\"/>\n<parameter name=\"field2\" value=\"`$greeting-input.salutation`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 623.0104064941406,
+        "y": 203.00001430511475,
+        "z": "83a68b58.736338",
+        "wires": [
+            []
+        ]
+    }
+]
diff --git a/platform-logic/oofpcipoc-api/src/main/resources/graph.versions b/platform-logic/oofpcipoc-api/src/main/resources/graph.versions
new file mode 100644 (file)
index 0000000..cce73e1
--- /dev/null
@@ -0,0 +1,5 @@
+oofpcipoc-api oofpcipoc-api_greeting ${project.version} sync
+oofpcipoc-api oofpcipoc-api_configuration-phy-cell-id ${project.version} sync
+oofpcipoc-api oofpcipoc-api_generic-neighbor-configuration ${project.version} sync
+oofpcipoc-api oofpcipoc-api_add-neighbor ${project.version} sync
+oofpcipoc-api oofpcipoc-delete-neighbor ${project.version} sync
diff --git a/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_add-neighbor.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_add-neighbor.xml
new file mode 100644 (file)
index 0000000..9893030
--- /dev/null
@@ -0,0 +1,171 @@
+<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='0.4.2-SNAPSHOT'>
+    <method rpc='add-neighbor' mode='sync'>
+        <block atomic='true'>
+            <for index='idx' start='0' end="`$add-neighbor-input.lte-cell-number-of-entries`" >
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                    <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                    <parameter name="level" value="info" />
+                    <parameter name="field1" value="Input RPC Payload request for Alias:  "/>
+                    <parameter name="field2" value="`$add-neighbor-input.alias`"/>
+                    <parameter name="field3" value="Input RPC Payload request for add-neighbor. Neighbor Cell #:  "/>
+                    <parameter name="field4" value="`$idx`"/>
+                    <parameter name="field5" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`"/>
+                    <parameter name="field6" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`"/>
+                    <parameter name="field7" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].phy-cell-id`"/>
+                    <parameter name="field8" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].pnf-name`"/>
+                    <parameter name="field9" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].blacklisted`"/>
+                </record>
+            </for>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="RPC to add neighbors. Number of neighbors to add: "/>
+                <parameter name="field2" value="`$add-neighbor-input.lte-cell-number-of-entries`"/>
+            </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/add-neighbor.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Properties read .. neighbor-add template"/>
+                <parameter name="field2" value="`$prop.neighbor-add.templatefile`"/>
+                <parameter name="field3" value="`$prop.controller.user`"/>
+                <parameter name="field4" value="`$prop.controller.pwd`"/>
+                <parameter name="field5" value="`$prop.controller.url`"/>
+                <parameter name="field6" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
+            </record>
+            <for index='idx' start='0' end="`$add-neighbor-input.lte-cell-number-of-entries`" >
+                <block atomic='true'>
+                    <set>
+                        <parameter name="tmp.plmnid" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`"/>
+                        <parameter name="tmp.cid" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`"/>
+                        <parameter name="tmp.phy-cell-id" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].phy-cell-id`"/>
+                        <parameter name="tmp.pnf-name" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].pnf-name`"/>
+                        <parameter name="tmp.blacklisted" value="`$add-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].blacklisted`"/>
+                        <parameter name="tmp.alias" value="`$add-neighbor-input.alias`"/>
+                    </set>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Temporary variable for Neighbor Cell #:  "/>
+                        <parameter name="field2" value="`$idx`"/>
+                        <parameter name="field3" value="`$tmp.plmnid`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.phy-cell-id`"/>
+                        <parameter name="field6" value="`$tmp.pnf-name`"/>
+                        <parameter name="field7" value="`$tmp.blacklisted`"/>
+                        <parameter name="field8" value="`$tmp.alias`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{alias}"/>
+                        <parameter name="replacement" value="`$tmp.alias`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Add Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{plmnid}"/>
+                        <parameter name="replacement" value="`$tmp.plmnid`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Add Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{cid}"/>
+                        <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/add-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Setting variables for Neighbor Add PUT operation"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="field3" value="`$tmp.plmnid`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.phy-cell-id`"/>
+                        <parameter name="field6" value="`$tmp.pnf-name`"/>
+                        <parameter name="field7" value="`$tmp.blacklisted`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-addNeighbor.json'`" />
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.add-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="PUT"/>
+                        <parameter name="responsePrefix" value="oofpci-add-neighbor-response"/>
+                        <parameter name='contentType' value='application/json' />
+                        <parameter name='format' value='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 a new neighbor" />
+                                </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/add-neighbor.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="PUT New Neighbor Executed Successfully "/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.add-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="GET"/>
+                        <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
+                        <parameter name='contentType' value='application/json' />
+                        <parameter name='format' value='json' />
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Error getting details about new neighbor " />
+                            </return>
+                        </outcome>
+                        <outcome value='success'>
+                            <block>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                    <parameter name="file" value="/opt/opendaylight/current/data/log/add-neighbor.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="Details about newly added Neighbor"/>
+                                    <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
+                                    <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
+                                    <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
+                                    <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
+                                    <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                </block>
+            </for>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="SUCCESSFUL add-neighbor Execution" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_configuration-phy-cell-id.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_configuration-phy-cell-id.xml
new file mode 100644 (file)
index 0000000..501fce7
--- /dev/null
@@ -0,0 +1,168 @@
+<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='0.4.2-SNAPSHOT'>
+    <method rpc='configuration-phy-cell-id' mode='sync'>
+        <block atomic='true'>
+            <for index='idx' start='0' end="`$configuration-phy-cell-id-input.fap-service-number-of-entries`" >
+                <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="Input RPC Payload request. FAP #:  "/>
+                    <parameter name="field2" value="`$idx`"/>
+                    <parameter name="field3" value="`$configuration-phy-cell-id-input.fap-service[$idx].alias`"/>
+                    <parameter name="field4" value="`$configuration-phy-cell-id-input.fap-service[$idx].cid`"/>
+                    <parameter name="field5" value="`$configuration-phy-cell-id-input.fap-service[$idx].phy-cell-id-in-use`"/>
+                    <parameter name="field6" value="`$configuration-phy-cell-id-input.fap-service[$idx].pnf-name`"/>
+                </record>
+            </for>
+            <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="RPC to Configure PCI INVOKED. Number of Cells to configure: "/>
+                <parameter name="field2" value="`$configuration-phy-cell-id-input.fap-service-number-of-entries`"/>
+            </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/configuration-phy-cell-id.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Properties read .. pci patch target"/>
+                <parameter name="field2" value="`$prop.oofpcipoc.patch.pci.target`"/>
+                <parameter name="field3" value="`$prop.controller.user`"/>
+                <parameter name="field4" value="`$prop.controller.pwd`"/>
+                <parameter name="field5" value="`$prop.controller.url`"/>
+            </record>
+            <for index='idx' start='0' end="`$configuration-phy-cell-id-input.fap-service-number-of-entries`" >
+                <block atomic='true'>
+                    <set>
+                        <parameter name="tmp.alias" value="`$configuration-phy-cell-id-input.fap-service[$idx].alias`"/>
+                        <parameter name="tmp.cid" value="`$configuration-phy-cell-id-input.fap-service[$idx].cid`"/>
+                        <parameter name="tmp.phy-cell-id-in-use" value="`$configuration-phy-cell-id-input.fap-service[$idx].phy-cell-id-in-use`"/>
+                        <parameter name="tmp.pnf-name" value="`$configuration-phy-cell-id-input.fap-service[$idx].pnf-name`"/>
+                    </set>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$prop.restapi.fap-service`"/>
+                        <parameter name="outputPath" value="tmp.fap-service-url"/>
+                        <parameter name="target" value="{alias}"/>
+                        <parameter name="replacement" value="`$tmp.alias`"/>
+                    </execute>
+                    <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="Setting variables for GET operation"/>
+                        <parameter name="field2" value="`$tmp.fap-service-url`"/>
+                        <parameter name="field3" value="`$tmp.alias`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.phy-cell-id-in-use`"/>
+                        <parameter name="field6" value="`$tmp.pnf-name`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.fap-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="format" value="json"/>
+                        <parameter name="httpMethod" value="GET"/>
+                        <parameter name="responsePrefix" value="oofpcigetfapservice"/>
+                        <parameter name='contentType' value='application/json' />
+                        <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 odutopo node details rest api" />
+                            </return>
+                        </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="Initial FAP Service PCI PARMS"/>
+                                    <parameter name="field2" value="`$oofpcigetfapservice.fap-service[0].alias`"/>
+                                    <parameter name="field3" value="`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.phy-cell-id-in-use`"/>
+                                    <parameter name="field4" value="`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.pnf-name`"/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$prop.restapi.x-005b9-lte`"/>
+                        <parameter name="outputPath" value="tmp.oofpcipoc.patch.pci.url"/>
+                        <parameter name="target" value="{alias}"/>
+                        <parameter name="replacement" value="`$tmp.alias`"/>
+                    </execute>
+                    <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="URL and Target for PCI patch URL"/>
+                        <parameter name='field2' value="`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`" />
+                        <parameter name='field3' value="`$prop.oofpcipoc.patch.pci.target`" />
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-pci-patch.json'`" />
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.oofpcipoc.patch.pci.url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="PATCH"/>
+                        <parameter name="responsePrefix" value="oofpci-patch-response"/>
+                        <parameter name='contentType' value='application/yang.patch+json' />
+                        <parameter name='format' value='json' />
+                        <parameter name='accept' value='application/yang.patch-status+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 executing patch rest api" />
+                                </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="PUT PCI POC FAP SERVICE. Reconfigured "/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.fap-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="format" value="json"/>
+                        <parameter name="httpMethod" value="GET"/>
+                        <parameter name="responsePrefix" value="oofpcigetfapservice"/>
+                        <parameter name='contentType' value='application/json' />
+                        <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 patch rest api" />
+                            </return>
+                        </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="Post Reconfig FAP Service PCI PARMS"/>
+                                    <parameter name="field2" value="`$oofpcigetfapservice.fap-service[0].alias`"/>
+                                    <parameter name="field3" value="`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.phy-cell-id-in-use`"/>
+                                    <parameter name="field4" value="`$oofpcigetfapservice.fap-service[0].x-0005b9-lte.pnf-name`"/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                </block>
+            </for>
+            <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/oofpcipoc-api/src/main/xml/oofpcipoc-api_delete-neighbor.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_delete-neighbor.xml
new file mode 100644 (file)
index 0000000..c6674c7
--- /dev/null
@@ -0,0 +1,131 @@
+<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='0.4.2-SNAPSHOT'>
+    <method rpc='delete-neighbor' mode='sync'>
+        <block atomic='true'>
+            <for index='idx' start='0' end="`$delete-neighbor-input.lte-cell-number-of-entries`" >
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                    <parameter name="file" value="/opt/opendaylight/current/data/log/delete-neighbor.log" />
+                    <parameter name="level" value="info" />
+                    <parameter name="field1" value="Input RPC Payload request for Alias:  "/>
+                    <parameter name="field2" value="`$delete-neighbor-input.alias`"/>
+                    <parameter name="field3" value="Input RPC Payload request for delete-neighbor. Neighbor Cell #:  "/>
+                    <parameter name="field4" value="`$idx`"/>
+                    <parameter name="field5" value="`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`"/>
+                    <parameter name="field6" value="`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`"/>
+                </record>
+            </for>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/delete-neighbor.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="RPC to delete neighbors. Number of neighbors to delete: "/>
+                <parameter name="field2" value="`$delete-neighbor-input.lte-cell-number-of-entries`"/>
+            </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/add-neighbor.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Properties read .. neighbor-add template"/>
+                <parameter name="field2" value="`$prop.neighbor-add.templatefile`"/>
+                <parameter name="field3" value="`$prop.controller.user`"/>
+                <parameter name="field4" value="`$prop.controller.pwd`"/>
+                <parameter name="field5" value="`$prop.controller.url`"/>
+                <parameter name="field6" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
+            </record>
+            <for index='idx' start='0' end="`$delete-neighbor-input.lte-cell-number-of-entries`" >
+                <block atomic='true'>
+                    <set>
+                        <parameter name="tmp.plmnid" value="`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].plmnid`"/>
+                        <parameter name="tmp.cid" value="`$delete-neighbor-input.lte-ran-neighbor-list-in-use-lte-cell[$idx].cid`"/>
+                        <parameter name="tmp.alias" value="`$delete-neighbor-input.alias`"/>
+                    </set>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/delete-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Temporary variable for Neighbor Cell #:  "/>
+                        <parameter name="field2" value="`$idx`"/>
+                        <parameter name="field3" value="`$tmp.plmnid`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.alias`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{alias}"/>
+                        <parameter name="replacement" value="`$tmp.alias`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/delete-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Add Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{plmnid}"/>
+                        <parameter name="replacement" value="`$tmp.plmnid`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/delete-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Add Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.add-neighbor-service-url"/>
+                        <parameter name="target" value="{cid}"/>
+                        <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/delete-neighbor.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Setting variables for Neighbor Add PUT operation"/>
+                        <parameter name="field2" value="`$tmp.add-neighbor-service-url`"/>
+                        <parameter name="field3" value="`$tmp.plmnid`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.phy-cell-id`"/>
+                        <parameter name="field6" value="`$tmp.pnf-name`"/>
+                        <parameter name="field7" value="`$tmp.blacklisted`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.add-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="DELETE"/>
+                        <parameter name="responsePrefix" value="oofpci-delete-neighbor-response"/>
+                        <parameter name='contentType' value='application/json' />
+                        <parameter name='format' value='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 a new neighbor" />
+                                </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/delete-neighbor.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="DELETE Neighbor Executed Successfully "/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                </block>
+            </for>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="SUCCESSFUL add-neighbor Execution" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_generic-neighbor-configuration.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_generic-neighbor-configuration.xml
new file mode 100644 (file)
index 0000000..d02bb7b
--- /dev/null
@@ -0,0 +1,187 @@
+<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='0.4.2-SNAPSHOT'>
+    <method rpc='generic-neighbor-configuration' mode='sync'>
+        <block atomic='true'>
+            <for index='idx' start='0' end="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`" >
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                    <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                    <parameter name="level" value="info" />
+                    <parameter name="field1" value="Input RPC Payload request. Neighbor #:  "/>
+                    <parameter name="field2" value="`$idx`"/>
+                    <parameter name="field3" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
+                    <parameter name="field4" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
+                    <parameter name="field5" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
+                    <parameter name="field6" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
+                    <parameter name="field7" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
+                </record>
+            </for>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="RPC to Configure Neighbors INVOKED. Number of Neighbors to configure: "/>
+                <parameter name="field2" value="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`"/>
+            </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/generic-neighbor-config.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Properties read .. generic neighbor config template"/>
+                <parameter name="field2" value="`$prop.restapi.generic-neighbor-patch.template`"/>
+                <parameter name="field3" value="`$prop.controller.user`"/>
+                <parameter name="field4" value="`$prop.controller.pwd`"/>
+                <parameter name="field5" value="`$prop.controller.url`"/>
+            </record>
+            <for index='idx' start='0' end="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`" >
+                <block atomic='true'>
+                    <set>
+                        <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
+                        <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
+                        <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
+                        <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
+                        <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
+                        <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
+                    </set>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
+                        <parameter name="field2" value="`$idx`"/>
+                        <parameter name="field3" value="`$tmp.plmnid`"/>
+                        <parameter name="field4" value="`$tmp.cid`"/>
+                        <parameter name="field5" value="`$tmp.phy-cell-id`"/>
+                        <parameter name="field6" value="`$tmp.pnf-name`"/>
+                        <parameter name="field7" value="`$tmp.blacklisted`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
+                        <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
+                        <parameter name="target" value="{alias}"/>
+                        <parameter name="replacement" value="`$tmp.alias`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Config Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
+                        <parameter name="target" value="{plmnid}"/>
+                        <parameter name="replacement" value="`$tmp.plmnid`"/>
+                    </execute>
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                        <parameter name="level" value="info" />
+                        <parameter name="field1" value="Config Neighbor List URL"/>
+                        <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
+                    </record>
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                        <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
+                        <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
+                        <parameter name="target" value="{cid}"/>
+                        <parameter name="replacement" value="`$tmp.cid`"/>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="GET"/>
+                        <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
+                        <parameter name='contentType' value='application/json' />
+                        <parameter name='format' value='json' />
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Error getting details about new neighbor " />
+                            </return>
+                        </outcome>
+                        <outcome value='success'>
+                            <block>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                    <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
+                                    <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
+                                    <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
+                                    <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
+                                    <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
+                                    <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="PATCH"/>
+                        <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
+                        <parameter name='contentType' value='application/yang.patch+json' />
+                        <parameter name='format' value='json' />
+                        <parameter name='accept' value='application/yang.patch-status+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 a new neighbor" />
+                                </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/generic-neighbor-config.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
+                        <parameter name="restapiUser" value="`$prop.controller.user`" />
+                        <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
+                        <parameter name="httpMethod" value="GET"/>
+                        <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
+                        <parameter name='contentType' value='application/json' />
+                        <parameter name='format' value='json' />
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Error getting details about new neighbor " />
+                            </return>
+                        </outcome>
+                        <outcome value='success'>
+                            <block>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                    <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                                    <parameter name="level" value="info" />
+                                    <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
+                                    <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
+                                    <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
+                                    <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
+                                    <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
+                                    <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
+                                </record>
+                            </block>
+                        </outcome>
+                    </execute>
+                </block>
+            </for>
+            <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/oofpcipoc-api/src/main/xml/oofpcipoc-api_greeting.xml b/platform-logic/oofpcipoc-api/src/main/xml/oofpcipoc-api_greeting.xml
new file mode 100644 (file)
index 0000000..b6eec28
--- /dev/null
@@ -0,0 +1,19 @@
+<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='greeting' mode='sync'>
+        <block atomic='true'>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log" />
+                <parameter name="level" value="info" />
+                <parameter name="field1" value="Hello World!"/>
+                <parameter name="field2" value="`$greeting-input.salutation`"/>
+            </record>
+            <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>
+    </method>
+</service-logic>
\ No newline at end of file
index f7517fe..fe3b322 100644 (file)
@@ -21,6 +21,8 @@
        <modules>
                <module>asdc-api</module>
                <module>sliapi</module>
+               <module>oofpcipoc-api</module>
+               <module>restapi-templates</module>
                <module>installer</module>
        </modules>
 
diff --git a/platform-logic/restapi-templates/pom.xml b/platform-logic/restapi-templates/pom.xml
new file mode 100644 (file)
index 0000000..90a5f49
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+               <groupId>org.onap.ccsdk.distribution</groupId>
+               <artifactId>distribution-platform-logic</artifactId>
+               <version>0.4.2-SNAPSHOT</version>
+       </parent>
+
+    <artifactId>platform-logic-restapi-templates</artifactId>
+    <version>0.4.2-SNAPSHOT</version>
+       <packaging>pom</packaging>
+
+    <name>ccsdk-distribution :: platform-logic :: ${project.artifactId}</name>
+    <description>Contains platform-level platform logic for REST API templates</description>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+                <executions>
+                    <execution>
+                        <id>copy-version</id>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals><!-- here the phase you need -->
+                        <phase>validate</phase>
+                        <configuration>
+                            <outputDirectory>../target/restapi/templates</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/json</directory>
+                                    <includes>
+                                        <include>**/*.json</include>
+                                    </includes>
+                                    <filtering>true</filtering>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/xml</directory>
+                                    <includes>
+                                        <include>**/*.xml</include>
+                                    </includes>
+                                    <filtering>true</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-addNeighbor.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-addNeighbor.json
new file mode 100644 (file)
index 0000000..daa7bfa
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "lte-ran-neighbor-list-in-use-lte-cell": [
+        {
+            "plmnid": ${tmp.plmnid},
+            "cid": ${tmp.cid},
+            "blacklisted": ${tmp.blacklisted},
+            "phy-cell-id": ${tmp.phy-cell-id},
+            "pnf-name": ${tmp.pnf-name}
+        }
+    ]
+}
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-deleteNeighbor.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-deleteNeighbor.json
new file mode 100644 (file)
index 0000000..5ac5f72
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "lte-ran-neighbor-list-in-use-lte-cell": [
+        {
+            "plmnid": ${tmp.plmnid},
+            "cid": ${tmp.cid}
+        }
+    ]
+}
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-generic-neighbor-patch.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-generic-neighbor-patch.json
new file mode 100644 (file)
index 0000000..b3b4643
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    "ietf-yang-patch:yang-patch": {
+        "patch-id": "Patch 2",
+        "comment": "patch for configuring neighbor ",
+        "edit": [
+            {
+                "edit-id": "patch blacklisted",
+                "operation": "merge",
+                "target": "/oofpcipoc:blacklisted",
+                "value": {
+                    "blacklisted": ${tmp.blacklisted}
+                }
+            },
+            {
+                "edit-id": "patch phy-cell-id",
+                "operation": "merge",
+                "target": "/oofpcipoc:phy-cell-id",
+                "value": {
+                    "phy-cell-id": ${tmp.phy-cell-id}
+                }
+            }
+        ]
+    }
+}
diff --git a/platform-logic/restapi-templates/src/main/json/oofpcipoc-pci-patch.json b/platform-logic/restapi-templates/src/main/json/oofpcipoc-pci-patch.json
new file mode 100644 (file)
index 0000000..9ab74fd
--- /dev/null
@@ -0,0 +1,14 @@
+{
+       "ietf-yang-patch:yang-patch": {
+               "patch-id": "Patch 1",
+               "comment": "patch for phy-cell-id-in-use for a cell",
+               "edit": [{
+                       "edit-id": "edit",
+                       "operation": "merge",
+                       "target": ${prop.oofpcipoc.patch.pci.target},
+                       "value": {
+                                       "phy-cell-id-in-use": ${tmp.phy-cell-id-in-use}
+                               }
+               }]
+       }
+}