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