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