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