Service Logic (DG/Templates) for SDNR OOF PCI POC
[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='0.4.2-SNAPSHOT'>
4     <method rpc='generic-neighbor-configuration' mode='sync'>
5         <block atomic='true'>
6             <for index='idx' start='0' end="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`" >
7                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
8                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
9                     <parameter name="level" value="info" />
10                     <parameter name="field1" value="Input RPC Payload request. Neighbor #:  "/>
11                     <parameter name="field2" value="`$idx`"/>
12                     <parameter name="field3" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
13                     <parameter name="field4" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
14                     <parameter name="field5" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
15                     <parameter name="field6" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
16                     <parameter name="field7" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
17                 </record>
18             </for>
19             <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
20                 <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
21                 <parameter name="level" value="info" />
22                 <parameter name="field1" value="RPC to Configure Neighbors INVOKED. Number of Neighbors to configure: "/>
23                 <parameter name="field2" value="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`"/>
24             </record>
25             <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
26                 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/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             <for index='idx' start='0' end="`$generic-neighbor-configuration-input.number-of-neighbor-cell-entries`" >
39                 <block atomic='true'>
40                     <set>
41                         <parameter name="tmp.alias" value="`$generic-neighbor-configuration-input.alias`"/>
42                         <parameter name="tmp.plmnid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].plmnid`"/>
43                         <parameter name="tmp.cid" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].cid`"/>
44                         <parameter name="tmp.phy-cell-id" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].phy-cell-id`"/>
45                         <parameter name="tmp.pnf-name" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].pnf-name`"/>
46                         <parameter name="tmp.blacklisted" value="`$generic-neighbor-configuration-input.neighbor-list-in-use[$idx].blacklisted`"/>
47                     </set>
48                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
49                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
50                         <parameter name="level" value="info" />
51                         <parameter name="field1" value="Temporary varaibles set. Neighbor #:  "/>
52                         <parameter name="field2" value="`$idx`"/>
53                         <parameter name="field3" value="`$tmp.plmnid`"/>
54                         <parameter name="field4" value="`$tmp.cid`"/>
55                         <parameter name="field5" value="`$tmp.phy-cell-id`"/>
56                         <parameter name="field6" value="`$tmp.pnf-name`"/>
57                         <parameter name="field7" value="`$tmp.blacklisted`"/>
58                     </record>
59                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
60                         <parameter name="source" value="`$prop.restapi.lte-ran-neighbor-in-use`"/>
61                         <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
62                         <parameter name="target" value="{alias}"/>
63                         <parameter name="replacement" value="`$tmp.alias`"/>
64                     </execute>
65                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
66                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
67                         <parameter name="level" value="info" />
68                         <parameter name="field1" value="Config Neighbor List URL"/>
69                         <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
70                     </record>
71                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
72                         <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
73                         <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
74                         <parameter name="target" value="{plmnid}"/>
75                         <parameter name="replacement" value="`$tmp.plmnid`"/>
76                     </execute>
77                     <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
78                         <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
79                         <parameter name="level" value="info" />
80                         <parameter name="field1" value="Config Neighbor List URL"/>
81                         <parameter name="field2" value="`$tmp.config-neighbor-service-url`"/>
82                     </record>
83                     <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
84                         <parameter name="source" value="`$tmp.config-neighbor-service-url`"/>
85                         <parameter name="outputPath" value="tmp.config-neighbor-service-url"/>
86                         <parameter name="target" value="{cid}"/>
87                         <parameter name="replacement" value="`$tmp.cid`"/>
88                     </execute>
89                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
90                         <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
91                         <parameter name="restapiUser" value="`$prop.controller.user`" />
92                         <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
93                         <parameter name="httpMethod" value="GET"/>
94                         <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
95                         <parameter name='contentType' value='application/json' />
96                         <parameter name='format' value='json' />
97                         <outcome value='failure'>
98                             <return status='failure'>
99                                 <parameter name='ack-final' value='Y'/>
100                                 <parameter name="error-code" value="500" />
101                                 <parameter name="error-message" value="Error getting details about new neighbor " />
102                             </return>
103                         </outcome>
104                         <outcome value='success'>
105                             <block>
106                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
107                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
108                                     <parameter name="level" value="info" />
109                                     <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
110                                     <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
111                                     <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
112                                     <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
113                                     <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
114                                     <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
115                                 </record>
116                             </block>
117                         </outcome>
118                     </execute>
119                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
120                         <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/oofpcipoc-generic-neighbor-patch.json'`" />
121                         <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
122                         <parameter name="restapiUser" value="`$prop.controller.user`" />
123                         <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
124                         <parameter name="httpMethod" value="PATCH"/>
125                         <parameter name="responsePrefix" value="oofpci-neighbor-patch-response"/>
126                         <parameter name='contentType' value='application/yang.patch+json' />
127                         <parameter name='format' value='json' />
128                         <parameter name='accept' value='application/yang.patch-status+json' />
129                         <outcome value='failure'>
130                             <block>
131                                 <return status='failure'>
132                                     <parameter name='ack-final' value='Y'/>
133                                     <parameter name="error-code" value="500" />
134                                     <parameter name="error-message" value="Error adding a new neighbor" />
135                                 </return>
136                             </block>
137                         </outcome>
138                         <outcome value='success'>
139                             <block>
140                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
141                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
142                                     <parameter name="level" value="info" />
143                                     <parameter name="field1" value="PATCH Neighbor Executed Successfully "/>
144                                 </record>
145                             </block>
146                         </outcome>
147                     </execute>
148                     <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
149                         <parameter name="restapiUrl" value="`$prop.controller.url + $tmp.config-neighbor-service-url`"/>
150                         <parameter name="restapiUser" value="`$prop.controller.user`" />
151                         <parameter name="restapiPassword" value="`$prop.controller.pwd`"/>
152                         <parameter name="httpMethod" value="GET"/>
153                         <parameter name="responsePrefix" value="oofpci-neighbor-response"/>
154                         <parameter name='contentType' value='application/json' />
155                         <parameter name='format' value='json' />
156                         <outcome value='failure'>
157                             <return status='failure'>
158                                 <parameter name='ack-final' value='Y'/>
159                                 <parameter name="error-code" value="500" />
160                                 <parameter name="error-message" value="Error getting details about new neighbor " />
161                             </return>
162                         </outcome>
163                         <outcome value='success'>
164                             <block>
165                                 <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
166                                     <parameter name="file" value="/opt/opendaylight/current/data/log/generic-neighbor-config.log" />
167                                     <parameter name="level" value="info" />
168                                     <parameter name="field1" value="Details about Neighbor Pre-configuration"/>
169                                     <parameter name="field2" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].plmnid`"/>
170                                     <parameter name="field3" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].cid`"/>
171                                     <parameter name="field4" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].phy-cell-id`"/>
172                                     <parameter name="field5" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].pnf-name`"/>
173                                     <parameter name="field6" value="`$oofpci-neighbor-response.lte-ran-neighbor-list-in-use-lte-cell[0].blacklisted`"/>
174                                 </record>
175                             </block>
176                         </outcome>
177                     </execute>
178                 </block>
179             </for>
180             <return status='success'>
181                 <parameter name="ack-final-indicator" value="Y" />
182                 <parameter name="error-code" value="200" />
183                 <parameter name="error-message" value="SUCCESSFUL Execution" />
184             </return>
185         </block>
186     </method>
187 </service-logic>