Merge "add zte esr-thirdparty-sdnc discovery logic"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <service-logic xmlns="http://www.onap.org/sdnc/svclogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.onap.org/sdnc/svclogic ./svclogic.xsd" module="GENERIC-RESOURCE-API" version="${project.version}">
4   <method rpc="network-topology-operation" mode="sync"> 
5     <block atomic="true">
6       <call module="GENERIC-RESOURCE-API" rpc="validate-network-input" mode="sync"></call>
7       <switch test="`$network-topology-operation-input.sdnc-request-header.svc-action`"> 
8         <outcome value="assign"> 
9           <block atomic="true">
10             <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"> 
11               <outcome value="Created"> 
12                 <return status="failure"> 
13                   <parameter name="ack-final" value="Y"/>  
14                   <parameter name="error-code" value="500"/>  
15                   <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"/>
16                 </return>
17               </outcome>
18               <outcome value="PendingDelete"> 
19                 <return status="failure"> 
20                   <parameter name="ack-final" value="Y"/>  
21                   <parameter name="error-code" value="500"/>  
22                   <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"/>
23                 </return>
24               </outcome>
25               <outcome value="PendingCreate"> 
26                 <return status="failure"> 
27                   <parameter name="ack-final" value="Y"/>  
28                   <parameter name="error-code" value="500"/>  
29                   <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"/>
30                 </return>
31               </outcome>
32               <outcome value="Other"> 
33                 <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-assign" mode="sync"></call>
34               </outcome>
35             </switch>
36           </block>
37         </outcome>
38         <outcome value="activate"> 
39           <switch test="`$network-topology-operation-input.request-information.request-action`"> 
40             <outcome value="ActivateSOTNConnectivityInstance">
41               <call module="GENERIC-RESOURCE-API" rpc="sotn-network-topology-operation-activate" mode="sync"></call>
42             </outcome>
43             <outcome value="ActivateDCINetworkInstance">
44               <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-activate" mode="sync"></call>
45             </outcome>
46             <outcome value="ActivateSDWANConnectivityInstance">
47               <call module="GENERIC-RESOURCE-API" rpc="sdwan-network-topology-operation-activate" mode="sync"></call>
48             </outcome>
49             <outcome value="other">
50               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
51                 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>  
52                 <parameter name="target" value="wan-connection"/>  
53                 <outcome value="true"> 
54                   <call module="GENERIC-RESOURCE-API" rpc="wan-connection-topology-operation-activate" mode="sync"></call>
55                 </outcome>
56                 <outcome value="false"> 
57                   <block atomic="true">
58                     <switch test="`$service-data.networks.network_length`"> 
59                       <outcome value=""> 
60                         <return status="failure"> 
61                           <parameter name="ack-final" value="Y"/>  
62                           <parameter name="error-code" value="500"/>  
63                           <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
64                         </return>
65                       </outcome>
66                       <outcome value="Other"> 
67                         <block atomic="true">
68                           <for index="nidx" start="0" end="`$service-data.networks.network_length`"> 
69                             <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`"> 
70                               <outcome value="true"> 
71                                 <set> 
72                                   <parameter name="tmp.nidx" value="`$nidx`"/>  
73                                   <parameter name="network-data." value="`$service-data.networks.network[$nidx].`"/> 
74                                 </set>
75                               </outcome>
76                             </switch>
77                           </for>
78                           <switch test="`$tmp.nidx`"> 
79                             <outcome value=""> 
80                               <return status="failure"> 
81                                 <parameter name="ack-final" value="Y"/>  
82                                 <parameter name="error-code" value="500"/>  
83                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
84                               </return>
85                             </outcome>
86                             <outcome value="Other"> 
87                               <set> 
88                                 <parameter name="nidx" value="`$tmp.nidx`"/> 
89                               </set>
90                             </outcome>
91                           </switch>
92                         </block>
93                       </outcome>
94                     </switch>
95                     <switch test="`$network-topology-operation-input.network-information.network-instance-group-id`"> 
96                       <outcome value="">
97                         <return status="success"></return>
98                       </outcome>
99                       <outcome value="Other">
100                         <block> 
101                           <switch test="`$service-data.network-instance-groups.network-instance-group_length`"> 
102                             <outcome value=""> 
103                               <return status="failure"> 
104                                 <parameter name="ack-final" value="Y"/>  
105                                 <parameter name="error-code" value="500"/>  
106                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data"/> 
107                               </return>
108                             </outcome>
109                             <outcome value="Other"> 
110                               <block atomic="true">
111                                 <for index="ngidx" start="0" end="`$service-data.network-instance-groups.network-instance-_length`"> 
112                                   <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`"> 
113                                     <outcome value="true"> 
114                                       <block atomic="true">
115                                         <set> 
116                                           <parameter name="tmp.ngidx" value="`$ngidx`"/>  
117                                           <parameter name="ctx.network-instance-group-data." value="`$service-data.network-instance-groups.network-instance-group[$ngidx].`"/> 
118                                         </set>
119                                       </block>
120                                     </outcome>
121                                   </switch>
122                                 </for>
123                               </block>
124                             </outcome>
125                           </switch>
126                         </block>
127                       </outcome>
128                     </switch>
129                     <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"> 
130                       <outcome value="PendingCreate"> 
131                         <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-activate" mode="sync"></call>
132                       </outcome>
133                       <outcome value="Other"> 
134                         <return status="failure"> 
135                           <parameter name="ack-final" value="Y"/>  
136                           <parameter name="error-code" value="500"/>  
137                           <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"/>
138                         </return>
139                       </outcome>
140                     </switch>
141                   </block>
142                 </outcome>
143               </execute>
144             </outcome>
145           </switch>
146         </outcome>
147         <outcome value="changeassign">
148           <block atomic="true">
149             <switch test="`$service-data.networks.network_length`"> 
150               <outcome value=""> 
151                 <return status="failure"> 
152                   <parameter name="ack-final" value="Y"/>  
153                   <parameter name="error-code" value="500"/>  
154                   <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
155                 </return>
156               </outcome>
157               <outcome value="Other"> 
158                 <block atomic="true">
159                   <for index="nidx" start="0" end="`$service-data.networks.network_length`"> 
160                     <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`"> 
161                       <outcome value="true"> 
162                         <set> 
163                           <parameter name="tmp.nidx" value="`$nidx`"/>  
164                           <parameter name="network-data." value="`$service-data.networks.network[$nidx].`"/> 
165                         </set>
166                       </outcome>
167                     </switch>
168                   </for>
169                   <switch test="`$tmp.nidx`"> 
170                     <outcome value=""> 
171                       <return status="failure"> 
172                         <parameter name="ack-final" value="Y"/>  
173                         <parameter name="error-code" value="500"/>  
174                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
175                       </return>
176                     </outcome>
177                     <outcome value="Other"> 
178                       <set> 
179                         <parameter name="nidx" value="`$tmp.nidx`"/> 
180                       </set>
181                     </outcome>
182                   </switch>
183                 </block>
184               </outcome>
185             </switch>
186             <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-changeassign" mode="sync"></call>
187           </block>
188         </outcome>
189         <outcome value="deactivate"> 
190           <switch test="`$network-topology-operation-input.request-information.request-action`"> 
191             <outcome value="DeactivateSOTNConnectivityInstance">
192               <call module="GENERIC-RESOURCE-API" rpc="sotn-network-topology-operation-deactivate" mode="sync"></call>
193             </outcome>
194             <outcome value="DeActivateDCINetworkInstance">
195               <call module="GENERIC-RESOURCE-API" rpc="dci-connects-network-topology-operation-deactivate" mode="sync"></call>
196             </outcome>
197             <outcome value="DeactivateSDWANConnectivityInstance">
198               <call module="GENERIC-RESOURCE-API" rpc="sdwan-network-topology-operation-deactivate" mode="sync"></call>
199             </outcome>
200             <outcome value="Other"> 
201               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
202                 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>  
203                 <parameter name="target" value="wan-connection"/>  
204                 <outcome value="true"> 
205                   <call module="GENERIC-RESOURCE-API" rpc="wan-connection-topology-operation-deactivate" mode="sync"></call>
206                 </outcome>
207                 <outcome value="false"> 
208                   <block atomic="true">
209                     <switch test="`$service-data.networks.network_length`"> 
210                       <outcome value=""> 
211                         <return status="failure"> 
212                           <parameter name="ack-final" value="Y"/>  
213                           <parameter name="error-code" value="500"/>  
214                           <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
215                         </return>
216                       </outcome>
217                       <outcome value="Other"> 
218                         <block atomic="true">
219                           <for index="nidx" start="0" end="`$service-data.networks.network_length`"> 
220                             <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`"> 
221                               <outcome value="true"> 
222                                 <set> 
223                                   <parameter name="tmp.nidx" value="`$nidx`"/>  
224                                   <parameter name="network-data." value="`$service-data.networks.network[$nidx].`"/> 
225                                 </set>
226                               </outcome>
227                             </switch>
228                           </for>
229                           <switch test="`$tmp.nidx`"> 
230                             <outcome value=""> 
231                               <return status="failure"> 
232                                 <parameter name="ack-final" value="Y"/>  
233                                 <parameter name="error-code" value="500"/>  
234                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
235                               </return>
236                             </outcome>
237                             <outcome value="Other"> 
238                               <set> 
239                                 <parameter name="nidx" value="`$tmp.nidx`"/> 
240                               </set>
241                             </outcome>
242                           </switch>
243                         </block>
244                       </outcome>
245                     </switch>
246                     <switch test="`$network-topology-operation-input.network-information.network-instance-group-id`"> 
247                       <outcome value="">
248                         <return status="success"></return>
249                       </outcome>
250                       <outcome value="Other">
251                         <block> 
252                           <switch test="`$service-data.network-instance-groups.network-instance-group_length`"> 
253                             <outcome value=""> 
254                               <return status="failure"> 
255                                 <parameter name="ack-final" value="Y"/>  
256                                 <parameter name="error-code" value="500"/>  
257                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data"/> 
258                               </return>
259                             </outcome>
260                             <outcome value="Other"> 
261                               <block atomic="true">
262                                 <for index="ngidx" start="0" end="`$service-data.network-instance-groups.network-instance-_length`"> 
263                                   <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`"> 
264                                     <outcome value="true"> 
265                                       <block atomic="true">
266                                         <set> 
267                                           <parameter name="tmp.ngidx" value="`$ngidx`"/>  
268                                           <parameter name="ctx.network-instance-group-data." value="`$service-data.network-instance-groups.network-instance-group[$ngidx].`"/> 
269                                         </set>
270                                       </block>
271                                     </outcome>
272                                   </switch>
273                                 </for>
274                               </block>
275                             </outcome>
276                           </switch>
277                         </block>
278                       </outcome>
279                     </switch>
280                     <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-deactivate" mode="sync"></call>
281                   </block>
282                 </outcome>
283               </execute>
284             </outcome>
285           </switch>
286         </outcome>
287         <outcome value="unassign"> 
288           <block atomic="true">
289             <switch test="`$service-data.networks.network_length`"> 
290               <outcome value=""> 
291                 <return status="failure"> 
292                   <parameter name="ack-final" value="Y"/>  
293                   <parameter name="error-code" value="500"/>  
294                   <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
295                 </return>
296               </outcome>
297               <outcome value="Other"> 
298                 <block atomic="true">
299                   <for index="nidx" start="0" end="`$service-data.networks.network_length`"> 
300                     <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`"> 
301                       <outcome value="true"> 
302                         <set> 
303                           <parameter name="tmp.nidx" value="`$nidx`"/>  
304                           <parameter name="network-data." value="`$service-data.networks.network[$nidx].`"/> 
305                         </set>
306                       </outcome>
307                     </switch>
308                   </for>
309                   <switch test="`$tmp.nidx`"> 
310                     <outcome value=""> 
311                       <return status="failure"> 
312                         <parameter name="ack-final" value="Y"/>  
313                         <parameter name="error-code" value="500"/>  
314                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data"/> 
315                       </return>
316                     </outcome>
317                     <outcome value="Other"> 
318                       <set> 
319                         <parameter name="nidx" value="`$tmp.nidx`"/> 
320                       </set>
321                     </outcome>
322                   </switch>
323                 </block>
324               </outcome>
325             </switch>
326             <switch test="`$network-topology-operation-input.network-information.network-instance-group-id`"> 
327               <outcome value="">
328                 <return status="success"></return>
329               </outcome>
330               <outcome value="Other">
331                 <block> 
332                   <switch test="`$service-data.network-instance-groups.network-instance-group_length`"> 
333                     <outcome value=""> 
334                       <return status="failure"> 
335                         <parameter name="ack-final" value="Y"/>  
336                         <parameter name="error-code" value="500"/>  
337                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data"/> 
338                       </return>
339                     </outcome>
340                     <outcome value="Other"> 
341                       <block atomic="true">
342                         <for index="ngidx" start="0" end="`$service-data.network-instance-groups.network-instance-_length`"> 
343                           <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`"> 
344                             <outcome value="true"> 
345                               <block atomic="true">
346                                 <set> 
347                                   <parameter name="tmp.ngidx" value="`$ngidx`"/>  
348                                   <parameter name="ctx.network-instance-group-data." value="`$service-data.network-instance-groups.network-instance-group[$ngidx].`"/> 
349                                 </set>
350                               </block>
351                             </outcome>
352                           </switch>
353                         </for>
354                       </block>
355                     </outcome>
356                   </switch>
357                 </block>
358               </outcome>
359             </switch>
360             <switch test="`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"> 
361               <outcome value="PendingCreate"> 
362                 <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-unassign" mode="sync"></call>
363               </outcome>
364               <outcome value="PendingDelete"> 
365                 <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-unassign" mode="sync"></call>
366               </outcome>
367               <outcome value="Other"> 
368                 <return status="failure"> 
369                   <parameter name="ack-final" value="Y"/>  
370                   <parameter name="error-code" value="500"/>  
371                   <parameter name="error-message" value="`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`"/>
372                 </return>
373               </outcome>
374             </switch>
375           </block>
376         </outcome>
377         <outcome value="create"> 
378           <switch test="`$network-topology-operation-input.request-information.request-action`"> 
379             <outcome value="CreateSOTNConnectivityInstance">
380               <call module="GENERIC-RESOURCE-API" rpc="sotn-network-topology-operation-create" mode="sync"></call>
381             </outcome>
382             <outcome value="CreateSDWANConnectivityInstance">
383               <call module="GENERIC-RESOURCE-API" rpc="sdwan-network-topology-operation-create" mode="sync"></call>
384             </outcome>
385             <outcome value="other">
386               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
387                 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>  
388                 <parameter name="target" value="wan-connection"/>  
389                 <outcome value="true"> 
390                   <call module="GENERIC-RESOURCE-API" rpc="wan-connection-topology-operation-create" mode="sync"></call>
391                 </outcome>
392                 <outcome value="false"> 
393                   <block atomic="true">
394                     <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-create" mode="sync"></call>
395                   </block>
396                 </outcome>
397               </execute>
398             </outcome>
399           </switch>
400         </outcome>
401         <outcome value="delete"> 
402           <switch test="`$network-topology-operation-input.request-information.request-action`"> 
403             <outcome value="DeleteSOTNConnectivityInstance">
404               <call module="GENERIC-RESOURCE-API" rpc="sotn-network-topology-operation-delete" mode="sync"></call>
405             </outcome>
406             <outcome value="DeleteSDWANConnectivityInstance">
407               <call module="GENERIC-RESOURCE-API" rpc="sdwan-network-topology-operation-delete" mode="sync"></call>
408             </outcome>
409             <outcome value="other">
410               <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains"> 
411                 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>  
412                 <parameter name="target" value="wan-connection"/>  
413                 <outcome value="true"> 
414                   <call module="GENERIC-RESOURCE-API" rpc="wan-connection-topology-operation-deactivate" mode="sync"></call>
415                 </outcome>
416                 <outcome value="false"> 
417                   <block atomic="true">
418                     <call module="GENERIC-RESOURCE-API" rpc="network-topology-operation-delete" mode="sync"></call>
419                   </block>
420                 </outcome>
421               </execute>
422             </outcome>
423           </switch>
424         </outcome>
425         <outcome value="Other"> 
426           <return status="failure"> 
427             <parameter name="ack-final" value="Y"/>  
428             <parameter name="error-code" value="500"/>  
429             <parameter name="error-message" value="sdnc-request-header.svc-action is a required input"/> 
430           </return>
431         </outcome>
432       </switch>
433       <set> 
434         <parameter name="ack-final" value="Y"/>
435       </set>
436       <return status="success"> 
437         <parameter name="ack-final-indicator" value="Y"/>  
438         <parameter name="error-code" value="200"/>  
439         <parameter name="error-message" value="`$error-message`"/> 
440       </return>
441     </block>
442   </method>
443 </service-logic>