Merge "Update SDNC to use CCSDK ansible server as base"
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation.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='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                             <block atomic="true">
51                                 <switch test='`$service-data.networks.network_length`'>
52                                     <outcome value=''>
53                                         <return status='failure'>
54                                             <parameter name='ack-final' value='Y'/>
55                                             <parameter name="error-code" value="500" />
56                                             <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
57                                         </return>
58                                     </outcome>
59                                     <outcome value='Other'>
60                                         <block atomic="true">
61                                             <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
62                                                 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
63                                                     <outcome value='true'>
64                                                         <set>
65                                                             <parameter name='tmp.nidx' value='`$nidx`' />
66                                                             <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
67                                                         </set>
68                                                     </outcome>
69                                                 </switch>
70                                             </for>
71                                             <switch test="`$tmp.nidx`">
72                                                 <outcome value=''>
73                                                     <return status='failure'>
74                                                         <parameter name='ack-final' value='Y'/>
75                                                         <parameter name="error-code" value="500" />
76                                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
77                                                     </return>
78                                                 </outcome>
79                                                 <outcome value='Other'>
80                                                     <set>
81                                                         <parameter name='nidx' value='`$tmp.nidx`' />
82                                                     </set>
83                                                 </outcome>
84                                             </switch>
85                                         </block>
86                                     </outcome>
87                                 </switch>
88                                 <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
89                                     <outcome value=''>
90                                         <return status='success'>
91                                             <parameter name='' value='' />
92                                         </return>
93                                     </outcome>
94                                     <outcome value='Other'>
95                                         <block>
96                                             <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
97                                                 <outcome value=''>
98                                                     <return status='failure'>
99                                                         <parameter name='ack-final' value='Y'/>
100                                                         <parameter name="error-code" value="500" />
101                                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
102                                                     </return>
103                                                 </outcome>
104                                                 <outcome value='Other'>
105                                                     <block atomic="true">
106                                                         <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
107                                                             <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`">
108                                                                 <outcome value='true'>
109                                                                     <block atomic="true">
110                                                                         <set>
111                                                                             <parameter name='tmp.ngidx' value='`$ngidx`' />
112                                                                             <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
113                                                                         </set>
114                                                                     </block>
115                                                                 </outcome>
116                                                             </switch>
117                                                         </for>
118                                                     </block>
119                                                 </outcome>
120                                             </switch>
121                                         </block>
122                                     </outcome>
123                                 </switch>
124                                 <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
125                                     <outcome value='PendingCreate'>
126                                         <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>
127                                     </outcome>
128                                     <outcome value='Other'>
129                                         <return status='failure'>
130                                             <parameter name='ack-final' value='Y'/>
131                                             <parameter name="error-code" value="500" />
132                                             <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`" />
133                                         </return>
134                                     </outcome>
135                                 </switch>
136                             </block>
137                         </outcome>
138                     </switch>
139                 </outcome>
140                 <outcome value='changeassign'>
141                     <block atomic="true">
142                         <switch test='`$service-data.networks.network_length`'>
143                             <outcome value=''>
144                                 <return status='failure'>
145                                     <parameter name='ack-final' value='Y'/>
146                                     <parameter name="error-code" value="500" />
147                                     <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
148                                 </return>
149                             </outcome>
150                             <outcome value='Other'>
151                                 <block atomic="true">
152                                     <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
153                                         <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
154                                             <outcome value='true'>
155                                                 <set>
156                                                     <parameter name='tmp.nidx' value='`$nidx`' />
157                                                     <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
158                                                 </set>
159                                             </outcome>
160                                         </switch>
161                                     </for>
162                                     <switch test="`$tmp.nidx`">
163                                         <outcome value=''>
164                                             <return status='failure'>
165                                                 <parameter name='ack-final' value='Y'/>
166                                                 <parameter name="error-code" value="500" />
167                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
168                                             </return>
169                                         </outcome>
170                                         <outcome value='Other'>
171                                             <set>
172                                                 <parameter name='nidx' value='`$tmp.nidx`' />
173                                             </set>
174                                         </outcome>
175                                     </switch>
176                                 </block>
177                             </outcome>
178                         </switch>
179                         <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>
180                     </block>
181                 </outcome>
182                 <outcome value='deactivate'>
183                     <switch test='`$network-topology-operation-input.request-information.request-action`'>
184                         <outcome value='DeactivateSOTNConnectivityInstance'>
185                             <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>
186                         </outcome>
187                         <outcome value='DeActivateDCINetworkInstance'>
188                             <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>
189                         </outcome>
190                         <outcome value='DeactivateSDWANConnectivityInstance'>
191                             <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-deactivate' mode='sync' ></call>
192                         </outcome>
193                         <outcome value='Other'>
194                             <block atomic="true">
195                                 <switch test='`$service-data.networks.network_length`'>
196                                     <outcome value=''>
197                                         <return status='failure'>
198                                             <parameter name='ack-final' value='Y'/>
199                                             <parameter name="error-code" value="500" />
200                                             <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
201                                         </return>
202                                     </outcome>
203                                     <outcome value='Other'>
204                                         <block atomic="true">
205                                             <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
206                                                 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
207                                                     <outcome value='true'>
208                                                         <set>
209                                                             <parameter name='tmp.nidx' value='`$nidx`' />
210                                                             <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
211                                                         </set>
212                                                     </outcome>
213                                                 </switch>
214                                             </for>
215                                             <switch test="`$tmp.nidx`">
216                                                 <outcome value=''>
217                                                     <return status='failure'>
218                                                         <parameter name='ack-final' value='Y'/>
219                                                         <parameter name="error-code" value="500" />
220                                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
221                                                     </return>
222                                                 </outcome>
223                                                 <outcome value='Other'>
224                                                     <set>
225                                                         <parameter name='nidx' value='`$tmp.nidx`' />
226                                                     </set>
227                                                 </outcome>
228                                             </switch>
229                                         </block>
230                                     </outcome>
231                                 </switch>
232                                 <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
233                                     <outcome value=''>
234                                         <return status='success'>
235                                             <parameter name='' value='' />
236                                         </return>
237                                     </outcome>
238                                     <outcome value='Other'>
239                                         <block>
240                                             <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
241                                                 <outcome value=''>
242                                                     <return status='failure'>
243                                                         <parameter name='ack-final' value='Y'/>
244                                                         <parameter name="error-code" value="500" />
245                                                         <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
246                                                     </return>
247                                                 </outcome>
248                                                 <outcome value='Other'>
249                                                     <block atomic="true">
250                                                         <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
251                                                             <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`">
252                                                                 <outcome value='true'>
253                                                                     <block atomic="true">
254                                                                         <set>
255                                                                             <parameter name='tmp.ngidx' value='`$ngidx`' />
256                                                                             <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
257                                                                         </set>
258                                                                     </block>
259                                                                 </outcome>
260                                                             </switch>
261                                                         </for>
262                                                     </block>
263                                                 </outcome>
264                                             </switch>
265                                         </block>
266                                     </outcome>
267                                 </switch>
268                                 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>
269                             </block>
270                         </outcome>
271                     </switch>
272                 </outcome>
273                 <outcome value='unassign'>
274                     <block atomic="true">
275                         <switch test='`$service-data.networks.network_length`'>
276                             <outcome value=''>
277                                 <return status='failure'>
278                                     <parameter name='ack-final' value='Y'/>
279                                     <parameter name="error-code" value="500" />
280                                     <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
281                                 </return>
282                             </outcome>
283                             <outcome value='Other'>
284                                 <block atomic="true">
285                                     <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
286                                         <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
287                                             <outcome value='true'>
288                                                 <set>
289                                                     <parameter name='tmp.nidx' value='`$nidx`' />
290                                                     <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
291                                                 </set>
292                                             </outcome>
293                                         </switch>
294                                     </for>
295                                     <switch test="`$tmp.nidx`">
296                                         <outcome value=''>
297                                             <return status='failure'>
298                                                 <parameter name='ack-final' value='Y'/>
299                                                 <parameter name="error-code" value="500" />
300                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
301                                             </return>
302                                         </outcome>
303                                         <outcome value='Other'>
304                                             <set>
305                                                 <parameter name='nidx' value='`$tmp.nidx`' />
306                                             </set>
307                                         </outcome>
308                                     </switch>
309                                 </block>
310                             </outcome>
311                         </switch>
312                         <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
313                             <outcome value=''>
314                                 <return status='success'>
315                                     <parameter name='' value='' />
316                                 </return>
317                             </outcome>
318                             <outcome value='Other'>
319                                 <block>
320                                     <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
321                                         <outcome value=''>
322                                             <return status='failure'>
323                                                 <parameter name='ack-final' value='Y'/>
324                                                 <parameter name="error-code" value="500" />
325                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
326                                             </return>
327                                         </outcome>
328                                         <outcome value='Other'>
329                                             <block atomic="true">
330                                                 <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
331                                                     <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`">
332                                                         <outcome value='true'>
333                                                             <block atomic="true">
334                                                                 <set>
335                                                                     <parameter name='tmp.ngidx' value='`$ngidx`' />
336                                                                     <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
337                                                                 </set>
338                                                             </block>
339                                                         </outcome>
340                                                     </switch>
341                                                 </for>
342                                             </block>
343                                         </outcome>
344                                     </switch>
345                                 </block>
346                             </outcome>
347                         </switch>
348                         <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
349                             <outcome value='PendingCreate'>
350                                 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
351                             </outcome>
352                             <outcome value='PendingDelete'>
353                                 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
354                             </outcome>
355                             <outcome value='Other'>
356                                 <return status='failure'>
357                                     <parameter name='ack-final' value='Y'/>
358                                     <parameter name="error-code" value="500" />
359                                     <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`" />
360                                 </return>
361                             </outcome>
362                         </switch>
363                     </block>
364                 </outcome>
365                 <outcome value='create'>
366                     <switch test='`$network-topology-operation-input.request-information.request-action`'>
367                         <outcome value='CreateSOTNConnectivityInstance'>
368                             <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>
369                         </outcome>
370                         <outcome value='CreateSDWANConnectivityInstance'>
371                             <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-create' mode='sync' ></call>
372                         </outcome>
373                         <outcome value='other'>
374                             <block atomic="true">
375                                 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>
376                             </block>
377                         </outcome>
378                     </switch>
379                 </outcome>
380                 <outcome value='delete'>
381                     <switch test='`$network-topology-operation-input.request-information.request-action`'>
382                         <outcome value='DeleteSOTNConnectivityInstance'>
383                             <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>
384                         </outcome>
385                         <outcome value='DeleteSDWANConnectivityInstance'>
386                             <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-delete' mode='sync' ></call>
387                         </outcome>
388                         <outcome value='other'>
389                             <block atomic="true">
390                                 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>
391                             </block>
392                         </outcome>
393                     </switch>
394                 </outcome>
395                 <outcome value='reoptimize'>
396                     <switch test='`$network-topology-operation-input.request-information.request-action`'>
397                         <outcome value='ReoptimizeSOTNInstance'>
398                             <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-reoptimize' mode='sync' ></call>
399                         </outcome>
400                     </switch>
401                 </outcome>
402                 <outcome value='Other'>
403                     <return status='failure'>
404                         <parameter name='ack-final' value='Y'/>
405                         <parameter name="error-code" value="500" />
406                         <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
407                     </return>
408                 </outcome>
409             </switch>
410             <set>
411                 <parameter name="ack-final" value="Y"/>
412             </set>
413             <return status='success'>
414                 <parameter name="ack-final-indicator" value="Y" />
415                 <parameter name="error-code" value="200" />
416                 <parameter name="error-message" value="`$error-message`" />
417             </return>
418         </block>
419     </method>
420 </service-logic>