Bug fixes to OOFPCIPOC templates, DG's, properties
[ccsdk/distribution.git] / platform-logic / oofpcipoc-api / src / main / xml / oofpcipoc-api_generic-neighbor-configuration.xml
index d02bb7b..305b97a 100644 (file)
@@ -1,9 +1,15 @@
 <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'>
+    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='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="RPC to Configure Neighbors INVOKED. Number of Neighbors to configure: "/>
+                <parameter name="field2" value="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`"/>
+            </record>
+            <for index='idx' start='0' end="`$generic-neighbor-configuration-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/generic-neighbor-config.log" />
                     <parameter name="level" value="info" />
                     <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='fileName' value='/opt/onap/ccsdk/data/properties/sdnr-oofpcipoc-api-dg.properties' />
                 <parameter name='contextPrefix' value='prop' />
             </execute>
             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
                 <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'>
+            <switch test='`$prop.ransim-mounted`'>
+                <outcome value='false'>
+                    <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-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 Post-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>
+                            <switch test='`$prop.configdb-deployed`'>
+                                <outcome value='false'>
+                                    <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="ConfigDB Update Skipped"/>
+                                    </record>
+                                </outcome>
+                                <outcome value='true'>
+                                    <block atomic='true'>
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                            <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
+                                            <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
+                                            <parameter name="target" value="{cellId}"/>
+                                            <parameter name="replacement" value="`$tmp.alias`"/>
+                                        </execute>
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                            <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
+                                            <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
+                                            <parameter name="target" value="{targetCellId}"/>
+                                            <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/generic-neighbor-config.log" />
+                                            <parameter name="level" value="info" />
+                                            <parameter name="field1" value="URL for configDB PCI Update"/>
+                                            <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
+                                            <parameter name='field3' value="`$tmp.alias`" />
+                                            <parameter name='field4' value="`$tmp.cid`" />
+                                        </record>
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
+                                            <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
+                                            <parameter name="httpMethod" value="PATCH"/>
+                                            <parameter name="responsePrefix" value="oofpci-configdb-response"/>
+                                            <parameter name='contentType' value='application/json' />
+                                            <parameter name='format' value='json' />
+                                            <parameter name='accept' value='application/json' />
+                                            <outcome value='failure'>
+                                                <block>
+                                                    <return status='failure'>
+                                                        <parameter name='ack-final' value='Y'/>
+                                                        <parameter name="error-code" value="500" />
+                                                        <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
+                                                    </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="HO Value for nbr updated in ConfigDB"/>
+                                                    </record>
+                                                </block>
+                                            </outcome>
+                                        </execute>
+                                    </block>
+                                </outcome>
+                            </switch>
+                        </block>
+                    </for>
+                </outcome>
+                <outcome value='true'>
+                    <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-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.ransim-mounted`"/>
+                                <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="{pnf-name}"/>
+                                <parameter name="replacement" value="`$tmp.pnf-name`"/>
+                            </execute>
+                            <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 Post-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>
+                            <switch test='`$prop.configdb-deployed`'>
+                                <outcome value='false'>
+                                    <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="ConfigDB Update Skipped"/>
+                                    </record>
+                                </outcome>
+                                <outcome value='true'>
+                                    <block atomic='true'>
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                            <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
+                                            <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
+                                            <parameter name="target" value="{cellId}"/>
+                                            <parameter name="replacement" value="`$tmp.alias`"/>
+                                        </execute>
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                            <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
+                                            <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
+                                            <parameter name="target" value="{targetCellId}"/>
+                                            <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/generic-neighbor-config.log" />
+                                            <parameter name="level" value="info" />
+                                            <parameter name="field1" value="URL for configDB PCI Update"/>
+                                            <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
+                                            <parameter name='field3' value="`$tmp.alias`" />
+                                            <parameter name='field4' value="`$tmp.cid`" />
+                                        </record>
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
+                                            <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
+                                            <parameter name="httpMethod" value="PATCH"/>
+                                            <parameter name="responsePrefix" value="oofpci-configdb-response"/>
+                                            <parameter name='contentType' value='application/json' />
+                                            <parameter name='format' value='json' />
+                                            <parameter name='accept' value='application/json' />
+                                            <outcome value='failure'>
+                                                <block>
+                                                    <return status='failure'>
+                                                        <parameter name='ack-final' value='Y'/>
+                                                        <parameter name="error-code" value="500" />
+                                                        <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
+                                                    </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="HO Value for nbr updated in ConfigDB"/>
+                                                    </record>
+                                                </block>
+                                            </outcome>
+                                        </execute>
+                                    </block>
+                                </outcome>
+                            </switch>
+                        </block>
+                    </for>
+                </outcome>
+            </switch>
+            <block atomic='true'>
+                <execute plugin="org.onap.ccsdk.sli.plugins.template.TemplateNode" method="evaluateTemplate" >
+                    <parameter name='templatePath' value='oofpcipoc-dmaap-publish-modifyconfiganr-resp-payload-template.vtl' />
+                    <parameter name='output' value='resp-payload' />
+                    <parameter name='prefix' value='sdnr' />
+                    <outcome value='success'>
+                        <block atomic='true'>
+                            <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="__TIMESTAMP__"/>
+                                <parameter name="field2" value="Redndred sdnr payload template as a string"/>
+                                <parameter name='field3' value='`$sdnr.resp-payload`' />
+                            </record>
+                        </block>
+                    </outcome>
+                    <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 getting details about new neighbor " />
+                                <parameter name="error-message" value="Error creating SDNR response payload string. Aborting PCI configuration" />
                             </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'>
+                        </block>
+                    </outcome>
+                </execute>
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
+                    <parameter name="source" value="`$sdnr.resp-payload`"/>
+                    <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
+                    <parameter name="target" value="\n"/>
+                    <parameter name="replacement" value=""/>
+                    <outcome value='success'>
+                        <block atomic='true'>
+                            <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="__TIMESTAMP__"/>
+                                <parameter name="field2" value="Redndred template with lines removed \r"/>
+                                <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
+                            </record>
+                        </block>
+                    </outcome>
+                    <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 getting details about new neighbor " />
+                                <parameter name="error-message" value="Error removing lines from SDNR response payload string. Aborting PCI configuration" />
                             </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>
+                        </block>
+                    </outcome>
+                </execute>
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
+                    <parameter name="source" value="`$tmp.oofpcipoc-dmaap-config-resp.payload`"/>
+                    <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
+                    <parameter name="target" value="\t"/>
+                    <parameter name="replacement" value=""/>
+                    <outcome value='success'>
+                        <block atomic='true'>
+                            <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="__TIMESTAMP__"/>
+                                <parameter name="field2" value="Redndred template with tabs removed \r"/>
+                                <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
+                            </record>
+                        </block>
+                    </outcome>
+                    <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 removing tabs from SDNR response payload string. Aborting PCI configuration" />
+                            </return>
+                        </block>
+                    </outcome>
+                </execute>
+            </block>
+            <block atomic='true'>
+                <set>
+                    <parameter name='tmp.oofpcipoc-dmaap-config-resp.rpc-name' value='`$prop.oofpcipoc-dmaap-config-resp.rpc-name.modifyconfiganr`'/>
+                </set>
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish-config-response.template`" />
+                    <parameter name='restapiUrl' value="`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap-configuration-response.topic`" />
+                    <parameter name='format' value='json' />
+                    <parameter name='httpMethod' value='POST' />
+                    <parameter name='contentType' value='application/json' />
+                    <parameter name='responsePrefix' value='dmaap' />
+                    <outcome value='failure'>
+                        <block>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Error publishing DMAAP Config Response message. ConfigDB Updated; TO be rolled back...will handle next release" />
+                            </return>
+                        </block>
+                    </outcome>
+                    <outcome value='success'>
+                        <block>
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
+                                <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
+                                <parameter name="level" value="info" />
+                                <parameter name="field1" value="DMAAP Config Response Message Successfully Published "/>
+                            </record>
+                        </block>
+                    </outcome>
+                </execute>
+            </block>
             <return status='success'>
                 <parameter name="ack-final-indicator" value="Y" />
                 <parameter name="error-code" value="200" />