6e386b9e345ac74cb18beefa33957abc9c1ef06f
[ccsdk/distribution.git] / platform-logic / oofpcipoc-api / src / main / xml / oofpcipoc-api_generic-neighbor-configuration.xml
1 <service-logic
2     xmlns='http://www.onap.org/sdnc/svclogic'
3     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}'>
4     <method rpc='generic-neighbor-configuration' mode='sync'>
5         <block atomic='true'>
6             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
7                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
8                 <parameter name="level" value="info" />
9                 <parameter name="field1" value="RPC to Configure Neighbors INVOKED. Number of Neighbors to configure: "/>
10                 <parameter name="field2" value="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`"/>
11             </record>
12             <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`" >
13                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
14                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
15                     <parameter name="level" value="info" />
16                     <parameter name="field1" value="Input RPC Payload request. Neighbor #:  "/>
17                     <parameter name="field2" value="`$idx`"/>
18                     <parameter name="field3" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
19                     <parameter name="field4" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
20                     <parameter name="field5" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
21                     <parameter name="field6" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
22                     <parameter name="field7" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
23                 </record>
24             </for>
25             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
26                 <parameter name='fileName' value='/opt/onap/ccsdk/data/properties/sdnr-oofpcipoc-api-dg.properties' />
27                 <parameter name='contextPrefix' value='prop' />
28             </execute>
29             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
30                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
31                 <parameter name="level" value="info" />
32                 <parameter name="field1" value="Properties read .. generic neighbor config template"/>
33                 <parameter name="field2" value="`$prop.restapi.generic-neighbor-patch.template`"/>
34                 <parameter name="field3" value="`$prop.controller.user`"/>
35                 <parameter name="field4" value="`$prop.controller.pwd`"/>
36                 <parameter name="field5" value="`$prop.controller.url`"/>
37             </record>
38             <switch test='`$prop.ransim-mounted`'>
39                 <outcome value='false'>
40                     <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`" >
41                         <block atomic='true'>
42                             <set>
43                                 <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
44                                 <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
45                                 <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
46                                 <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
47                                 <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
48                                 <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
49                             </set>
50                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
51                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
52                                 <parameter name="level" value="info" />
53                                 <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
54                                 <parameter name="field2" value="`$idx`"/>
55                                 <parameter name="field3" value="`$tmp.plmnid`"/>
56                                 <parameter name="field4" value="`$tmp.cid`"/>
57                                 <parameter name="field5" value="`$tmp.phy-cell-id`"/>
58                                 <parameter name="field6" value="`$tmp.pnf-name`"/>
59                                 <parameter name="field7" value="`$tmp.blacklisted`"/>
60                             </record>
61                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
62                                 <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
63                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
64                                 <parameter name="target" value="{alias}"/>
65                                 <parameter name="replacement" value="`$tmp.alias`"/>
66                             </execute>
67                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
68                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
69                                 <parameter name="level" value="info" />
70                                 <parameter name="field1" value="Config Neighbor List URL"/>
71                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
72                             </record>
73                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
74                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
75                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
76                                 <parameter name="target" value="{plmnid}"/>
77                                 <parameter name="replacement" value="`$tmp.plmnid`"/>
78                             </execute>
79                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
80                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
81                                 <parameter name="level" value="info" />
82                                 <parameter name="field1" value="Config Neighbor List URL"/>
83                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
84                             </record>
85                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
86                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
87                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
88                                 <parameter name="target" value="{cid}"/>
89                                 <parameter name="replacement" value="`$tmp.cid`"/>
90                             </execute>
91                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
92                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
93                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
94                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
95                                 <parameter name="httpMethod" value="GET"/>
96                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
97                                 <parameter name='contentType' value='application/json' />
98                                 <parameter name='format' value='json' />
99                                 <outcome value='failure'>
100                                     <return status='failure'>
101                                         <parameter name='ack-final' value='Y'/>
102                                         <parameter name="error-code" value="500" />
103                                         <parameter name="error-message" value="Error getting details about new neighbor " />
104                                     </return>
105                                 </outcome>
106                                 <outcome value='success'>
107                                     <block>
108                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
109                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
110                                             <parameter name="level" value="info" />
111                                             <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
112                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
113                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
114                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
115                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
116                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
117                                         </record>
118                                     </block>
119                                 </outcome>
120                             </execute>
121                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
122                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
123                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
124                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
125                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
126                                 <parameter name="httpMethod" value="PATCH"/>
127                                 <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
128                                 <parameter name='contentType' value='application/yang.patch+json' />
129                                 <parameter name='format' value='json' />
130                                 <parameter name='accept' value='application/yang.patch-status+json' />
131                                 <outcome value='failure'>
132                                     <block>
133                                         <return status='failure'>
134                                             <parameter name='ack-final' value='Y'/>
135                                             <parameter name="error-code" value="500" />
136                                             <parameter name="error-message" value="Error adding a new neighbor" />
137                                         </return>
138                                     </block>
139                                 </outcome>
140                                 <outcome value='success'>
141                                     <block>
142                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
143                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
144                                             <parameter name="level" value="info" />
145                                             <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
146                                         </record>
147                                     </block>
148                                 </outcome>
149                             </execute>
150                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
151                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
152                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
153                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
154                                 <parameter name="httpMethod" value="GET"/>
155                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
156                                 <parameter name='contentType' value='application/json' />
157                                 <parameter name='format' value='json' />
158                                 <outcome value='failure'>
159                                     <return status='failure'>
160                                         <parameter name='ack-final' value='Y'/>
161                                         <parameter name="error-code" value="500" />
162                                         <parameter name="error-message" value="Error getting details about new neighbor " />
163                                     </return>
164                                 </outcome>
165                                 <outcome value='success'>
166                                     <block>
167                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
168                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
169                                             <parameter name="level" value="info" />
170                                             <parameter name="field1" value="Details about Neighbor Post-configuration"/>
171                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
172                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
173                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
174                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
175                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
176                                         </record>
177                                     </block>
178                                 </outcome>
179                             </execute>
180                             <switch test='`$prop.configdb-deployed`'>
181                                 <outcome value='false'>
182                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
183                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
184                                         <parameter name="level" value="info" />
185                                         <parameter name="field1" value="ConfigDB Update Skipped"/>
186                                     </record>
187                                 </outcome>
188                                 <outcome value='true'>
189                                     <block atomic='true'>
190                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
191                                             <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
192                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
193                                             <parameter name="target" value="{cellId}"/>
194                                             <parameter name="replacement" value="`$tmp.alias`"/>
195                                         </execute>
196                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
197                                             <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
198                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
199                                             <parameter name="target" value="{targetCellId}"/>
200                                             <parameter name="replacement" value="`$tmp.cid`"/>
201                                         </execute>
202                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
203                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
204                                             <parameter name="level" value="info" />
205                                             <parameter name="field1" value="URL for configDB PCI Update"/>
206                                             <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
207                                             <parameter name='field3' value="`$tmp.alias`" />
208                                             <parameter name='field4' value="`$tmp.cid`" />
209                                         </record>
210                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
211                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
212                                             <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
213                                             <parameter name="httpMethod" value="PATCH"/>
214                                             <parameter name="responsePrefix" value="oofpci-configdb-response"/>
215                                             <parameter name='contentType' value='application/json' />
216                                             <parameter name='format' value='json' />
217                                             <parameter name='accept' value='application/json' />
218                                             <outcome value='failure'>
219                                                 <block>
220                                                     <return status='failure'>
221                                                         <parameter name='ack-final' value='Y'/>
222                                                         <parameter name="error-code" value="500" />
223                                                         <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
224                                                     </return>
225                                                 </block>
226                                             </outcome>
227                                             <outcome value='success'>
228                                                 <block>
229                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
230                                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
231                                                         <parameter name="level" value="info" />
232                                                         <parameter name="field1" value="HO Value for nbr updated in ConfigDB"/>
233                                                     </record>
234                                                 </block>
235                                             </outcome>
236                                         </execute>
237                                     </block>
238                                 </outcome>
239                             </switch>
240                         </block>
241                     </for>
242                 </outcome>
243                 <outcome value='true'>
244                     <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`" >
245                         <block atomic='true'>
246                             <set>
247                                 <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
248                                 <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
249                                 <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
250                                 <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
251                                 <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
252                                 <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
253                             </set>
254                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
255                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
256                                 <parameter name="level" value="info" />
257                                 <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
258                                 <parameter name="field2" value="`$idx`"/>
259                                 <parameter name="field3" value="`$tmp.plmnid`"/>
260                                 <parameter name="field4" value="`$tmp.cid`"/>
261                                 <parameter name="field5" value="`$tmp.phy-cell-id`"/>
262                                 <parameter name="field6" value="`$tmp.pnf-name`"/>
263                                 <parameter name="field7" value="`$tmp.blacklisted`"/>
264                             </record>
265                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
266                                 <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use.ransim-mounted`"/>
267                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
268                                 <parameter name="target" value="{alias}"/>
269                                 <parameter name="replacement" value="`$tmp.alias`"/>
270                             </execute>
271                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
272                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
273                                 <parameter name="level" value="info" />
274                                 <parameter name="field1" value="Config Neighbor List URL"/>
275                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
276                             </record>
277                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
278                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
279                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
280                                 <parameter name="target" value="{pnf-name}"/>
281                                 <parameter name="replacement" value="`$tmp.pnf-name`"/>
282                             </execute>
283                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
284                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
285                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
286                                 <parameter name="target" value="{plmnid}"/>
287                                 <parameter name="replacement" value="`$tmp.plmnid`"/>
288                             </execute>
289                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
290                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
291                                 <parameter name="level" value="info" />
292                                 <parameter name="field1" value="Config Neighbor List URL"/>
293                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
294                             </record>
295                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
296                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
297                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
298                                 <parameter name="target" value="{cid}"/>
299                                 <parameter name="replacement" value="`$tmp.cid`"/>
300                             </execute>
301                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
302                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
303                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
304                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
305                                 <parameter name="httpMethod" value="GET"/>
306                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
307                                 <parameter name='contentType' value='application/json' />
308                                 <parameter name='format' value='json' />
309                                 <outcome value='failure'>
310                                     <return status='failure'>
311                                         <parameter name='ack-final' value='Y'/>
312                                         <parameter name="error-code" value="500" />
313                                         <parameter name="error-message" value="Error getting details about new neighbor " />
314                                     </return>
315                                 </outcome>
316                                 <outcome value='success'>
317                                     <block>
318                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
319                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
320                                             <parameter name="level" value="info" />
321                                             <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
322                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
323                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
324                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
325                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
326                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
327                                         </record>
328                                     </block>
329                                 </outcome>
330                             </execute>
331                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
332                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
333                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
334                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
335                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
336                                 <parameter name="httpMethod" value="PATCH"/>
337                                 <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
338                                 <parameter name='contentType' value='application/yang.patch+json' />
339                                 <parameter name='format' value='json' />
340                                 <parameter name='accept' value='application/yang.patch-status+json' />
341                                 <outcome value='failure'>
342                                     <block>
343                                         <return status='failure'>
344                                             <parameter name='ack-final' value='Y'/>
345                                             <parameter name="error-code" value="500" />
346                                             <parameter name="error-message" value="Error adding a new neighbor" />
347                                         </return>
348                                     </block>
349                                 </outcome>
350                                 <outcome value='success'>
351                                     <block>
352                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
353                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
354                                             <parameter name="level" value="info" />
355                                             <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
356                                         </record>
357                                     </block>
358                                 </outcome>
359                             </execute>
360                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
361                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
362                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
363                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
364                                 <parameter name="httpMethod" value="GET"/>
365                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
366                                 <parameter name='contentType' value='application/json' />
367                                 <parameter name='format' value='json' />
368                                 <outcome value='failure'>
369                                     <return status='failure'>
370                                         <parameter name='ack-final' value='Y'/>
371                                         <parameter name="error-code" value="500" />
372                                         <parameter name="error-message" value="Error getting details about new neighbor " />
373                                     </return>
374                                 </outcome>
375                                 <outcome value='success'>
376                                     <block>
377                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
378                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
379                                             <parameter name="level" value="info" />
380                                             <parameter name="field1" value="Details about Neighbor Post-configuration"/>
381                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
382                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
383                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
384                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
385                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
386                                         </record>
387                                     </block>
388                                 </outcome>
389                             </execute>
390                             <switch test='`$prop.configdb-deployed`'>
391                                 <outcome value='false'>
392                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
393                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
394                                         <parameter name="level" value="info" />
395                                         <parameter name="field1" value="ConfigDB Update Skipped"/>
396                                     </record>
397                                 </outcome>
398                                 <outcome value='true'>
399                                     <block atomic='true'>
400                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
401                                             <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
402                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
403                                             <parameter name="target" value="{cellId}"/>
404                                             <parameter name="replacement" value="`$tmp.alias`"/>
405                                         </execute>
406                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
407                                             <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
408                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
409                                             <parameter name="target" value="{targetCellId}"/>
410                                             <parameter name="replacement" value="`$tmp.cid`"/>
411                                         </execute>
412                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
413                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
414                                             <parameter name="level" value="info" />
415                                             <parameter name="field1" value="URL for configDB PCI Update"/>
416                                             <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
417                                             <parameter name='field3' value="`$tmp.alias`" />
418                                             <parameter name='field4' value="`$tmp.cid`" />
419                                         </record>
420                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
421                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
422                                             <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
423                                             <parameter name="httpMethod" value="PATCH"/>
424                                             <parameter name="responsePrefix" value="oofpci-configdb-response"/>
425                                             <parameter name='contentType' value='application/json' />
426                                             <parameter name='format' value='json' />
427                                             <parameter name='accept' value='application/json' />
428                                             <outcome value='failure'>
429                                                 <block>
430                                                     <return status='failure'>
431                                                         <parameter name='ack-final' value='Y'/>
432                                                         <parameter name="error-code" value="500" />
433                                                         <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
434                                                     </return>
435                                                 </block>
436                                             </outcome>
437                                             <outcome value='success'>
438                                                 <block>
439                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
440                                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
441                                                         <parameter name="level" value="info" />
442                                                         <parameter name="field1" value="HO Value for nbr updated in ConfigDB"/>
443                                                     </record>
444                                                 </block>
445                                             </outcome>
446                                         </execute>
447                                     </block>
448                                 </outcome>
449                             </switch>
450                         </block>
451                     </for>
452                 </outcome>
453             </switch>
454             <block atomic='true'>
455                 <execute plugin="org.onap.ccsdk.sli.plugins.template.TemplateNode" method="evaluateTemplate" >
456                     <parameter name='templatePath' value='oofpcipoc-dmaap-publish-modifyconfiganr-resp-payload-template.vtl' />
457                     <parameter name='output' value='resp-payload' />
458                     <parameter name='prefix' value='sdnr' />
459                     <outcome value='success'>
460                         <block atomic='true'>
461                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
462                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
463                                 <parameter name="level" value="info" />
464                                 <parameter name="field1" value="__TIMESTAMP__"/>
465                                 <parameter name="field2" value="Redndred sdnr payload template as a string"/>
466                                 <parameter name='field3' value='`$sdnr.resp-payload`' />
467                             </record>
468                         </block>
469                     </outcome>
470                     <outcome value='failure'>
471                         <block>
472                             <return status='failure'>
473                                 <parameter name='ack-final' value='Y'/>
474                                 <parameter name="error-code" value="500" />
475                                 <parameter name="error-message" value="Error creating SDNR response payload string. Aborting PCI configuration" />
476                             </return>
477                         </block>
478                     </outcome>
479                 </execute>
480                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
481                     <parameter name="source" value="`$sdnr.resp-payload`"/>
482                     <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
483                     <parameter name="target" value="\n"/>
484                     <parameter name="replacement" value=""/>
485                     <outcome value='success'>
486                         <block atomic='true'>
487                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
488                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
489                                 <parameter name="level" value="info" />
490                                 <parameter name="field1" value="__TIMESTAMP__"/>
491                                 <parameter name="field2" value="Redndred template with lines removed \r"/>
492                                 <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
493                             </record>
494                         </block>
495                     </outcome>
496                     <outcome value='failure'>
497                         <block>
498                             <return status='failure'>
499                                 <parameter name='ack-final' value='Y'/>
500                                 <parameter name="error-code" value="500" />
501                                 <parameter name="error-message" value="Error removing lines from SDNR response payload string. Aborting PCI configuration" />
502                             </return>
503                         </block>
504                     </outcome>
505                 </execute>
506                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
507                     <parameter name="source" value="`$tmp.oofpcipoc-dmaap-config-resp.payload`"/>
508                     <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
509                     <parameter name="target" value="\t"/>
510                     <parameter name="replacement" value=""/>
511                     <outcome value='success'>
512                         <block atomic='true'>
513                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
514                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
515                                 <parameter name="level" value="info" />
516                                 <parameter name="field1" value="__TIMESTAMP__"/>
517                                 <parameter name="field2" value="Redndred template with tabs removed \r"/>
518                                 <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
519                             </record>
520                         </block>
521                     </outcome>
522                     <outcome value='failure'>
523                         <block>
524                             <return status='failure'>
525                                 <parameter name='ack-final' value='Y'/>
526                                 <parameter name="error-code" value="500" />
527                                 <parameter name="error-message" value="Error removing tabs from SDNR response payload string. Aborting PCI configuration" />
528                             </return>
529                         </block>
530                     </outcome>
531                 </execute>
532                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='escapeJsonString' >
533                     <parameter name="source" value='`$tmp.oofpcipoc-dmaap-config-resp.payload`'/>
534                     <parameter name="target" value='tmp.oofpcipoc-dmaap-config-resp.payload'/>
535                     <outcome value='success'>
536                         <block atomic='true'>
537                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
538                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
539                                 <parameter name="level" value="info" />
540                                 <parameter name="field1" value="__TIMESTAMP__"/>
541                                 <parameter name="field2" value="Redndred template as an Escaped string"/>
542                                 <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
543                             </record>
544                         </block>
545                     </outcome>
546                     <outcome value='failure'>
547                         <block>
548                             <return status='failure'>
549                                 <parameter name='ack-final' value='Y'/>
550                                 <parameter name="error-code" value="500" />
551                                 <parameter name="error-message" value="Error inserting escape chars in SDNR response payload string. Aborting PCI configuration" />
552                             </return>
553                         </block>
554                     </outcome>
555                 </execute>
556             </block>
557             <block atomic='true'>
558                 <set>
559                     <parameter name='tmp.oofpcipoc-dmaap-config-resp.rpc-name' value='`$prop.oofpcipoc-dmaap-config-resp.rpc-name.modifyconfiganr`'/>
560                 </set>
561                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
562                     <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish-config-response.template`" />
563                     <parameter name='restapiUrl' value="`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap-configuration-response.topic`" />
564                     <parameter name='format' value='json' />
565                     <parameter name='httpMethod' value='POST' />
566                     <parameter name='contentType' value='application/json' />
567                     <parameter name='responsePrefix' value='dmaap' />
568                     <outcome value='failure'>
569                         <block>
570                             <return status='failure'>
571                                 <parameter name='ack-final' value='Y'/>
572                                 <parameter name="error-code" value="500" />
573                                 <parameter name="error-message" value="Error publishing DMAAP Config Response message. ConfigDB Updated; TO be rolled back...will handle next release" />
574                             </return>
575                         </block>
576                     </outcome>
577                     <outcome value='success'>
578                         <block>
579                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
580                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
581                                 <parameter name="level" value="info" />
582                                 <parameter name="field1" value="DMAAP Config Response Message Successfully Published "/>
583                             </record>
584                         </block>
585                     </outcome>
586                 </execute>
587             </block>
588             <return status='success'>
589                 <parameter name="ack-final-indicator" value="Y" />
590                 <parameter name="error-code" value="200" />
591                 <parameter name="error-message" value="SUCCESSFUL Execution" />
592             </return>
593         </block>
594     </method>
595 </service-logic>