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