Merge "Modify SDN-R to use new yang model in netconf session with RAN-Sim"
[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             <set>
39                 <parameter name="prop.oofpcipoc-dmaap-config-resp.timestamp" value="`$generic-neighbor-configuration-input.timeStamp`"/>
40                 <parameter name="prop.oofpcipoc-dmaap-config-resp.requestID" value="`$generic-neighbor-configuration-input.requestID`"/>
41                 <parameter name="prop.oofpcipoc-dmaap-config-resp.subrequestID" value="`$generic-neighbor-configuration-input.subRequestID`"/>
42             </set>
43             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
44                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
45                 <parameter name="level" value="info" />
46                 <parameter name="field1" value="DMAAP Message Header stored in properties file "/>
47                 <parameter name="field2" value="`$prop.oofpcipoc-dmaap-config-resp.timestamp`"/>
48                 <parameter name="field3" value="`$prop.oofpcipoc-dmaap-config-resp.requestID`"/>
49                 <parameter name="field4" value="`$prop.oofpcipoc-dmaap-config-resp.subrequestID`"/>
50             </record>
51             <switch test='`$prop.ransim-mounted`'>
52                 <outcome value='false'>
53                     <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`" >
54                         <block atomic='true'>
55                             <set>
56                                 <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
57                                 <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
58                                 <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
59                                 <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
60                                 <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
61                                 <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
62                             </set>
63                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
64                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
65                                 <parameter name="level" value="info" />
66                                 <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
67                                 <parameter name="field2" value="`$idx`"/>
68                                 <parameter name="field3" value="`$tmp.plmnid`"/>
69                                 <parameter name="field4" value="`$tmp.cid`"/>
70                                 <parameter name="field5" value="`$tmp.phy-cell-id`"/>
71                                 <parameter name="field6" value="`$tmp.pnf-name`"/>
72                                 <parameter name="field7" value="`$tmp.blacklisted`"/>
73                             </record>
74                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
75                                 <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
76                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
77                                 <parameter name="target" value="{alias}"/>
78                                 <parameter name="replacement" value="`$tmp.alias`"/>
79                             </execute>
80                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
81                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
82                                 <parameter name="level" value="info" />
83                                 <parameter name="field1" value="Config Neighbor List URL"/>
84                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
85                             </record>
86                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
87                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
88                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
89                                 <parameter name="target" value="{plmnid}"/>
90                                 <parameter name="replacement" value="`$tmp.plmnid`"/>
91                             </execute>
92                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
93                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
94                                 <parameter name="level" value="info" />
95                                 <parameter name="field1" value="Config Neighbor List URL"/>
96                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
97                             </record>
98                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
99                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
100                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
101                                 <parameter name="target" value="{cid}"/>
102                                 <parameter name="replacement" value="`$tmp.cid`"/>
103                             </execute>
104                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
105                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
106                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
107                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
108                                 <parameter name="httpMethod" value="GET"/>
109                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
110                                 <parameter name='contentType' value='application/json' />
111                                 <parameter name='format' value='json' />
112                                 <outcome value='failure'>
113                                     <return status='failure'>
114                                         <parameter name='ack-final' value='Y'/>
115                                         <parameter name="error-code" value="500" />
116                                         <parameter name="error-message" value="Error getting details about new neighbor " />
117                                     </return>
118                                 </outcome>
119                                 <outcome value='success'>
120                                     <block>
121                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
122                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
123                                             <parameter name="level" value="info" />
124                                             <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
125                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
126                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
127                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
128                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
129                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
130                                         </record>
131                                     </block>
132                                 </outcome>
133                             </execute>
134                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
135                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
136                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
137                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
138                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
139                                 <parameter name="httpMethod" value="PATCH"/>
140                                 <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
141                                 <parameter name='contentType' value='application/yang.patch+json' />
142                                 <parameter name='format' value='json' />
143                                 <parameter name='accept' value='application/yang.patch-status+json' />
144                                 <outcome value='failure'>
145                                     <block>
146                                         <return status='failure'>
147                                             <parameter name='ack-final' value='Y'/>
148                                             <parameter name="error-code" value="500" />
149                                             <parameter name="error-message" value="Error adding a new neighbor" />
150                                         </return>
151                                     </block>
152                                 </outcome>
153                                 <outcome value='success'>
154                                     <block>
155                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
156                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
157                                             <parameter name="level" value="info" />
158                                             <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
159                                         </record>
160                                     </block>
161                                 </outcome>
162                             </execute>
163                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
164                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
165                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
166                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
167                                 <parameter name="httpMethod" value="GET"/>
168                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
169                                 <parameter name='contentType' value='application/json' />
170                                 <parameter name='format' value='json' />
171                                 <outcome value='failure'>
172                                     <return status='failure'>
173                                         <parameter name='ack-final' value='Y'/>
174                                         <parameter name="error-code" value="500" />
175                                         <parameter name="error-message" value="Error getting details about new neighbor " />
176                                     </return>
177                                 </outcome>
178                                 <outcome value='success'>
179                                     <block>
180                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
181                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
182                                             <parameter name="level" value="info" />
183                                             <parameter name="field1" value="Details about Neighbor Post-configuration"/>
184                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
185                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
186                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
187                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
188                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
189                                         </record>
190                                     </block>
191                                 </outcome>
192                             </execute>
193                             <switch test='`$prop.configdb-deployed`'>
194                                 <outcome value='false'>
195                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
196                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
197                                         <parameter name="level" value="info" />
198                                         <parameter name="field1" value="ConfigDB Update Skipped"/>
199                                     </record>
200                                 </outcome>
201                                 <outcome value='true'>
202                                     <block atomic='true'>
203                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
204                                             <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
205                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
206                                             <parameter name="target" value="{cellId}"/>
207                                             <parameter name="replacement" value="`$tmp.alias`"/>
208                                         </execute>
209                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
210                                             <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
211                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
212                                             <parameter name="target" value="{targetCellId}"/>
213                                             <parameter name="replacement" value="`$tmp.cid`"/>
214                                         </execute>
215                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
216                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
217                                             <parameter name="level" value="info" />
218                                             <parameter name="field1" value="URL for configDB PCI Update"/>
219                                             <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
220                                             <parameter name='field3' value="`$tmp.alias`" />
221                                             <parameter name='field4' value="`$tmp.cid`" />
222                                         </record>
223                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
224                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
225                                             <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
226                                             <parameter name="httpMethod" value="PATCH"/>
227                                             <parameter name="responsePrefix" value="oofpci-configdb-response"/>
228                                             <parameter name='contentType' value='application/json' />
229                                             <parameter name='format' value='json' />
230                                             <parameter name='accept' value='application/json' />
231                                             <outcome value='failure'>
232                                                 <block>
233                                                     <return status='failure'>
234                                                         <parameter name='ack-final' value='Y'/>
235                                                         <parameter name="error-code" value="500" />
236                                                         <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
237                                                     </return>
238                                                 </block>
239                                             </outcome>
240                                             <outcome value='success'>
241                                                 <block>
242                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
243                                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
244                                                         <parameter name="level" value="info" />
245                                                         <parameter name="field1" value="HO Value for nbr updated in ConfigDB"/>
246                                                     </record>
247                                                 </block>
248                                             </outcome>
249                                         </execute>
250                                     </block>
251                                 </outcome>
252                             </switch>
253                         </block>
254                     </for>
255                 </outcome>
256                 <outcome value='true'>
257                     <for index='idx' start='0' end="`$generic-neighbor-configuration-input.lte-cell-number-of-entries`" >
258                         <block atomic='true'>
259                             <set>
260                                 <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
261                                 <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
262                                 <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
263                                 <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
264                                 <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
265                                 <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
266                             </set>
267                             <switch test='`$tmp.blacklisted`'>
268                                 <outcome value='true'>
269                                     <block atomic='true'>
270                                         <set>
271                                             <parameter name='tmp.isHOAllowed' value='false' />
272                                         </set>
273                                     </block>
274                                 </outcome>
275                                 <outcome value='false'>
276                                     <block atomic='true'>
277                                         <set>
278                                             <parameter name='tmp.isHOAllowed' value='true' />
279                                         </set>
280                                     </block>
281                                 </outcome>
282                             </switch>
283                             <set>
284                                 <parameter name="tmp.idNRCellCU" value="`$generic-neighbor-configuration-input.alias`"/>
285                                 <parameter name="tmp.idNRCellRelation" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
286                                 <parameter name="tmp.idGNBCUCPFunction" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
287                             </set>
288                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
289                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
290                                 <parameter name="level" value="info" />
291                                 <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
292                                 <parameter name="field2" value="`$idx`"/>
293                                 <parameter name="field3" value="`$tmp.plmnid`"/>
294                                 <parameter name="field4" value="`$tmp.cid`"/>
295                                 <parameter name="field5" value="`$tmp.phy-cell-id`"/>
296                                 <parameter name="field6" value="`$tmp.pnf-name`"/>
297                                 <parameter name="field7" value="`$tmp.blacklisted`"/>
298                                 <parameter name="field8" value="`tmp.idGNBCUCPFunction`"/>
299                                 <parameter name="field9" value="`tmp.idNRCellCU`"/>
300                                 <parameter name="field10" value="`tmp.idNRCellRelation`"/>
301                                 <parameter name="field11" value="`$tmp.isHOAllowed`"/>
302                             </record>
303                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
304                                 <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use.ransim-mounted`"/>
305                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
306                                 <parameter name="target" value="{idNearRTRIC}"/>
307                                 <parameter name="replacement" value="`$tmp.plmnid`"/>
308                             </execute>
309                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
310                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
311                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
312                                 <parameter name="target" value="{mountName}"/>
313                                 <parameter name="replacement" value="`$tmp.idGNBCUCPFunction`"/>
314                             </execute>
315                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
316                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
317                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
318                                 <parameter name="target" value="{idGNBCUCPFunction}"/>
319                                 <parameter name="replacement" value="`$tmp.idGNBCUCPFunction`"/>
320                             </execute>
321                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
322                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
323                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
324                                 <parameter name="target" value="{idNRCellCU}"/>
325                                 <parameter name="replacement" value="`$tmp.idNRCellCU`"/>
326                             </execute>
327                             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
328                                 <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
329                                 <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
330                                 <parameter name="target" value="{idNRCellRelation}"/>
331                                 <parameter name="replacement" value="`$tmp.idNRCellRelation`"/>
332                             </execute>
333                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
334                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
335                                 <parameter name="level" value="info" />
336                                 <parameter name="field1" value="Config Neighbor List URL"/>
337                                 <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
338                             </record>
339                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
340                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
341                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
342                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
343                                 <parameter name="httpMethod" value="GET"/>
344                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
345                                 <parameter name='contentType' value='application/json' />
346                                 <parameter name='format' value='json' />
347                                 <outcome value='failure'>
348                                     <return status='failure'>
349                                         <parameter name='ack-final' value='Y'/>
350                                         <parameter name="error-code" value="500" />
351                                         <parameter name="error-message" value="Error getting details about new neighbor " />
352                                     </return>
353                                 </outcome>
354                                 <outcome value='success'>
355                                     <block>
356                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
357                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
358                                             <parameter name="level" value="info" />
359                                             <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
360                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
361                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
362                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
363                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
364                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
365                                         </record>
366                                     </block>
367                                 </outcome>
368                             </execute>
369                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
370                                 <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
371                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
372                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
373                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
374                                 <parameter name="httpMethod" value="PATCH"/>
375                                 <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
376                                 <parameter name='contentType' value='application/yang.patch+json' />
377                                 <parameter name='format' value='json' />
378                                 <parameter name='accept' value='application/yang.patch-status+json' />
379                                 <outcome value='failure'>
380                                     <block>
381                                         <return status='failure'>
382                                             <parameter name='ack-final' value='Y'/>
383                                             <parameter name="error-code" value="500" />
384                                             <parameter name="error-message" value="Error adding a new neighbor" />
385                                         </return>
386                                     </block>
387                                 </outcome>
388                                 <outcome value='success'>
389                                     <block>
390                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
391                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
392                                             <parameter name="level" value="info" />
393                                             <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
394                                         </record>
395                                     </block>
396                                 </outcome>
397                             </execute>
398                             <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
399                                 <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
400                                 <parameter name="restapiUser" value="`$prop.controller.user`" />
401                                 <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
402                                 <parameter name="httpMethod" value="GET"/>
403                                 <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
404                                 <parameter name='contentType' value='application/json' />
405                                 <parameter name='format' value='json' />
406                                 <outcome value='failure'>
407                                     <return status='failure'>
408                                         <parameter name='ack-final' value='Y'/>
409                                         <parameter name="error-code" value="500" />
410                                         <parameter name="error-message" value="Error getting details about new neighbor " />
411                                     </return>
412                                 </outcome>
413                                 <outcome value='success'>
414                                     <block>
415                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
416                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
417                                             <parameter name="level" value="info" />
418                                             <parameter name="field1" value="Details about Neighbor Post-configuration"/>
419                                             <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
420                                             <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
421                                             <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
422                                             <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
423                                             <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
424                                         </record>
425                                     </block>
426                                 </outcome>
427                             </execute>
428                             <switch test='`$prop.configdb-deployed`'>
429                                 <outcome value='false'>
430                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
431                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
432                                         <parameter name="level" value="info" />
433                                         <parameter name="field1" value="ConfigDB Update Skipped"/>
434                                     </record>
435                                 </outcome>
436                                 <outcome value='true'>
437                                     <block atomic='true'>
438                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
439                                             <parameter name="source" value="`$prop.restapi.configdb.patch-ho-for-nbr`"/>
440                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
441                                             <parameter name="target" value="{cellId}"/>
442                                             <parameter name="replacement" value="`$tmp.alias`"/>
443                                         </execute>
444                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
445                                             <parameter name="source" value="`$tmp.configdb.patch-ho-for-nbr.url`"/>
446                                             <parameter name="outputPath" value="tmp.configdb.patch-ho-for-nbr.url"/>
447                                             <parameter name="target" value="{targetCellId}"/>
448                                             <parameter name="replacement" value="`$tmp.cid`"/>
449                                         </execute>
450                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
451                                             <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
452                                             <parameter name="level" value="info" />
453                                             <parameter name="field1" value="URL for configDB PCI Update"/>
454                                             <parameter name='field2' value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`" />
455                                             <parameter name='field3' value="`$tmp.alias`" />
456                                             <parameter name='field4' value="`$tmp.cid`" />
457                                         </record>
458                                         <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
459                                             <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-patch-configdb-ho-for-nbr.json'`" />
460                                             <parameter name="restapiUrl" value="`$prop.configdb.url + $tmp.configdb.patch-ho-for-nbr.url`"/>
461                                             <parameter name="httpMethod" value="PATCH"/>
462                                             <parameter name="responsePrefix" value="oofpci-configdb-response"/>
463                                             <parameter name='contentType' value='application/json' />
464                                             <parameter name='format' value='json' />
465                                             <parameter name='accept' value='application/json' />
466                                             <outcome value='failure'>
467                                                 <block>
468                                                     <return status='failure'>
469                                                         <parameter name='ack-final' value='Y'/>
470                                                         <parameter name="error-code" value="500" />
471                                                         <parameter name="error-message" value="Error updating configDB. Aborting Nbr HO configuration" />
472                                                     </return>
473                                                 </block>
474                                             </outcome>
475                                             <outcome value='success'>
476                                                 <block>
477                                                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
478                                                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
479                                                         <parameter name="level" value="info" />
480                                                         <parameter name="field1" value="HO Value for nbr updated in ConfigDB"/>
481                                                     </record>
482                                                 </block>
483                                             </outcome>
484                                         </execute>
485                                     </block>
486                                 </outcome>
487                             </switch>
488                         </block>
489                     </for>
490                 </outcome>
491             </switch>
492             <block atomic='true'>
493                 <execute plugin="org.onap.ccsdk.sli.plugins.template.TemplateNode" method="evaluateTemplate" >
494                     <parameter name='templatePath' value='oofpcipoc-dmaap-publish-modifyconfiganr-resp-payload-template.vtl' />
495                     <parameter name='output' value='resp-payload' />
496                     <parameter name='prefix' value='sdnr' />
497                     <outcome value='success'>
498                         <block atomic='true'>
499                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
500                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
501                                 <parameter name="level" value="info" />
502                                 <parameter name="field1" value="__TIMESTAMP__"/>
503                                 <parameter name="field2" value="Redndred sdnr payload template as a string"/>
504                                 <parameter name='field3' value='`$sdnr.resp-payload`' />
505                             </record>
506                         </block>
507                     </outcome>
508                     <outcome value='failure'>
509                         <block>
510                             <return status='failure'>
511                                 <parameter name='ack-final' value='Y'/>
512                                 <parameter name="error-code" value="500" />
513                                 <parameter name="error-message" value="Error creating SDNR response payload string. Aborting Generic neighbor  configuration" />
514                             </return>
515                         </block>
516                     </outcome>
517                 </execute>
518                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
519                     <parameter name="source" value="`$sdnr.resp-payload`"/>
520                     <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
521                     <parameter name="target" value="\n"/>
522                     <parameter name="replacement" value=""/>
523                     <outcome value='success'>
524                         <block atomic='true'>
525                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
526                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
527                                 <parameter name="level" value="info" />
528                                 <parameter name="field1" value="__TIMESTAMP__"/>
529                                 <parameter name="field2" value="Redndred template with lines removed \r"/>
530                                 <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
531                             </record>
532                         </block>
533                     </outcome>
534                     <outcome value='failure'>
535                         <block>
536                             <return status='failure'>
537                                 <parameter name='ack-final' value='Y'/>
538                                 <parameter name="error-code" value="500" />
539                                 <parameter name="error-message" value="Error removing lines from SDNR response payload string. Aborting Generic neighbor  configuration" />
540                             </return>
541                         </block>
542                     </outcome>
543                 </execute>
544                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
545                     <parameter name="source" value="`$tmp.oofpcipoc-dmaap-config-resp.payload`"/>
546                     <parameter name="outputPath" value="tmp.oofpcipoc-dmaap-config-resp.payload"/>
547                     <parameter name="target" value="\t"/>
548                     <parameter name="replacement" value=""/>
549                     <outcome value='success'>
550                         <block atomic='true'>
551                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
552                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
553                                 <parameter name="level" value="info" />
554                                 <parameter name="field1" value="__TIMESTAMP__"/>
555                                 <parameter name="field2" value="Redndred template with tabs removed \r"/>
556                                 <parameter name='field3' value='`$tmp.oofpcipoc-dmaap-config-resp.payload`' />
557                             </record>
558                         </block>
559                     </outcome>
560                     <outcome value='failure'>
561                         <block>
562                             <return status='failure'>
563                                 <parameter name='ack-final' value='Y'/>
564                                 <parameter name="error-code" value="500" />
565                                 <parameter name="error-message" value="Error removing tabs from SDNR response payload string. Aborting Generic neighbor configuration" />
566                             </return>
567                         </block>
568                     </outcome>
569                 </execute>
570             </block>
571             <block atomic='true'>
572                 <set>
573                     <parameter name='tmp.oofpcipoc-dmaap-config-resp.rpc-name' value='`$prop.oofpcipoc-dmaap-config-resp.rpc-name.modifyconfiganr`'/>
574                 </set>
575                 <block atomic='true'>
576                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
577                         <parameter name="source" value="`$prop.oofpcipoc-dmaap-config-resp.timestamp`"/>
578                         <parameter name="outputPath" value="prop.oofpcipoc-dmaap-config-resp.timestamp"/>
579                         <parameter name="target" value='"'/>
580                         <parameter name="replacement" value=''/>
581                         <outcome value='success'>
582                             <block atomic='true'>
583                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
584                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
585                                     <parameter name="level" value="info" />
586                                     <parameter name="field1" value="Quotation removed from timestamp for DMAAP response header \r"/>
587                                     <parameter name="field2" value="`$prop.oofpcipoc-dmaap-config-resp.timestamp`"/>
588                                 </record>
589                             </block>
590                         </outcome>
591                         <outcome value='failure'>
592                             <block>
593                                 <return status='failure'>
594                                     <parameter name='ack-final' value='Y'/>
595                                     <parameter name="error-code" value="500" />
596                                     <parameter name="error-message" value="Error removing quotation from timestamp for DMAAP response header. Aborting Generic neighbor  configuration" />
597                                 </return>
598                             </block>
599                         </outcome>
600                     </execute>
601                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
602                         <parameter name="source" value="`$prop.oofpcipoc-dmaap-config-resp.requestID`"/>
603                         <parameter name="outputPath" value="prop.oofpcipoc-dmaap-config-resp.requestID"/>
604                         <parameter name="target" value='"'/>
605                         <parameter name="replacement" value=''/>
606                         <outcome value='success'>
607                             <block atomic='true'>
608                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
609                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
610                                     <parameter name="level" value="info" />
611                                     <parameter name="field1" value="Quotation removed from requestID for DMAAP response header \r"/>
612                                     <parameter name="field2" value="`$prop.oofpcipoc-dmaap-config-resp.requestID`"/>
613                                 </record>
614                             </block>
615                         </outcome>
616                         <outcome value='failure'>
617                             <block>
618                                 <return status='failure'>
619                                     <parameter name='ack-final' value='Y'/>
620                                     <parameter name="error-code" value="500" />
621                                     <parameter name="error-message" value="Error removing quotation from requestID for DMAAP response header. Aborting Generic neighbor  configuration" />
622                                 </return>
623                             </block>
624                         </outcome>
625                     </execute>
626                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replaceAll' >
627                         <parameter name="source" value="`$prop.oofpcipoc-dmaap-config-resp.subrequestID`"/>
628                         <parameter name="outputPath" value="prop.oofpcipoc-dmaap-config-resp.subrequestID"/>
629                         <parameter name="target" value='"'/>
630                         <parameter name="replacement" value=''/>
631                         <outcome value='success'>
632                             <block atomic='true'>
633                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
634                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
635                                     <parameter name="level" value="info" />
636                                     <parameter name="field1" value="Quotation removed from subRequestID for DMAAP response header \r"/>
637                                     <parameter name="field2" value="`$prop.oofpcipoc-dmaap-config-resp.subrequestID`"/>
638                                 </record>
639                             </block>
640                         </outcome>
641                         <outcome value='failure'>
642                             <block>
643                                 <return status='failure'>
644                                     <parameter name='ack-final' value='Y'/>
645                                     <parameter name="error-code" value="500" />
646                                     <parameter name="error-message" value="Error removing quotation from timestamp for DMAAP response header. Aborting Generic neighbor  configuration" />
647                                 </return>
648                             </block>
649                         </outcome>
650                     </execute>
651                 </block>
652                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
653                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
654                     <parameter name="level" value="info" />
655                     <parameter name="field1" value="__TIMESTAMP__"/>
656                     <parameter name="field2" value="Before DMAAP Event - template file name, restapiURL"/>
657                     <parameter name='field3' value="`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish-config-response.template`" />
658                     <parameter name='field4' value="`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap-configuration-response.topic`" />
659                     <parameter name="field5" value="Before DMAAP Event - Timestamp, RequestID, subRequestID"/>
660                     <parameter name="field6" value="`$prop.oofpcipoc-dmaap-config-resp.timestamp`"/>
661                     <parameter name="field7" value="`$prop.oofpcipoc-dmaap-config-resp.requestID`"/>
662                     <parameter name="field8" value="`$prop.oofpcipoc-dmaap-config-resp.subrequestID`"/>
663                 </record>
664                 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
665                     <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.dmaap-publish-config-response.template`" />
666                     <parameter name='restapiUrl' value="`$prop.dmaap-message-router.url + '/' + $prop.oofpcipoc-dmaap-configuration-response.topic`" />
667                     <parameter name='format' value='json' />
668                     <parameter name='httpMethod' value='POST' />
669                     <parameter name='contentType' value='application/json' />
670                     <parameter name='responsePrefix' value='dmaap' />
671                     <outcome value='failure'>
672                         <block>
673                             <return status='failure'>
674                                 <parameter name='ack-final' value='Y'/>
675                                 <parameter name="error-code" value="500" />
676                                 <parameter name="error-message" value="Error publishing DMAAP Config Response message. ConfigDB Updated; TO be rolled back...will handle next release" />
677                             </return>
678                         </block>
679                     </outcome>
680                     <outcome value='success'>
681                         <block>
682                             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
683                                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
684                                 <parameter name="level" value="info" />
685                                 <parameter name="field1" value="DMAAP Config Response Message Successfully Published "/>
686                             </record>
687                         </block>
688                     </outcome>
689                 </execute>
690             </block>
691             <return status='success'>
692                 <parameter name="ack-final-indicator" value="Y" />
693                 <parameter name="error-code" value="200" />
694                 <parameter name="error-message" value="SUCCESSFUL Execution" />
695             </return>
696         </block>
697     </method>
698 </service-logic>