de558b80bed0436874255923c3b2edca5aef11e4
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / sdwan / GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.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='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\r
5         <block atomic="true">\r
6             <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
7                 <outcome value=''>\r
8                     <return status='failure'>\r
9                         <parameter name='ack-final' value='Y'/>\r
10                         <parameter name="error-code" value="500" />\r
11                         <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
12                     </return>\r
13                 </outcome>\r
14             </switch>\r
15             <switch test='`$service-data.vnfs.vnf_length`'>\r
16                 <outcome value=''>\r
17                     <return status='failure'>\r
18                         <parameter name='ack-final' value='Y'/>\r
19                         <parameter name="error-code" value="500" />\r
20                         <parameter name="error-message" value="vnf entry not found in service-data" />\r
21                     </return>\r
22                 </outcome>\r
23             </switch>\r
24             <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
25                 <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
26                     <outcome value='true'>\r
27                         <set>\r
28                             <parameter name='vnf-index' value='`$idx`' />\r
29                         </set>\r
30                     </outcome>\r
31                 </switch>\r
32             </for>\r
33             <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
34                 <outcome value='create'>\r
35                     <block atomic="true">\r
36                         <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
37                             <outcome value='CreateSDWANVpnInstance'>\r
38                                 <block atomic="true">\r
39                                     <for index="i" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
40                                         <block>\r
41                                             <set>\r
42                                                 <parameter name='tmp.name' value='' />\r
43                                                 <parameter name='tmp.value' value='' />\r
44                                             </set>\r
45                                             <set>\r
46                                                 <parameter name='tmp.name' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`"/>\r
47                                                 <parameter name='tmp.value' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`"/>\r
48                                             </set>\r
49                                             <switch test="`$tmp.name`">\r
50                                                 <outcome value='name'>\r
51                                                     <switch test="`$tmp.value`">\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="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
57                                                             </return>\r
58                                                         </outcome>\r
59                                                     </switch>\r
60                                                 </outcome>\r
61                                                 <outcome value='topology'>\r
62                                                     <switch test="`$tmp.value`">\r
63                                                         <outcome value=''>\r
64                                                             <return status='failure'>\r
65                                                                 <parameter name='ack-final' value='Y'/>\r
66                                                                 <parameter name="error-code" value="500" />\r
67                                                                 <parameter name="error-message" value="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
68                                                             </return>\r
69                                                         </outcome>\r
70                                                     </switch>\r
71                                                 </outcome>\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="`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`" />\r
77                                                     </return>\r
78                                                 </outcome>\r
79                                             </switch>\r
80                                         </block>\r
81                                     </for>\r
82                                 </block>\r
83                             </outcome>\r
84                             <outcome value='Other'>\r
85                                 <return status='failure'>\r
86                                     <parameter name='ack-final' value='Y'/>\r
87                                     <parameter name="error-code" value="500" />\r
88                                     <parameter name="error-message" value="request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create" />\r
89                                 </return>\r
90                             </outcome>\r
91                         </switch>\r
92                     </block>\r
93                 </outcome>\r
94                 <outcome value='activate'>\r
95                     <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
96                         <outcome value='ActivateSDWANVpnInstance'>\r
97                             <block atomic="true">\r
98                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
99                                     <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
100                                 </execute>\r
101                                 <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
102                                     <outcome value=''>\r
103                                         <return status='failure'>\r
104                                             <parameter name='ack-final' value='Y'/>\r
105                                             <parameter name="error-code" value="500" />\r
106                                             <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
107                                         </return>\r
108                                     </outcome>\r
109                                 </switch>\r
110                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
111                                     <outcome value=''>\r
112                                         <return status='failure'>\r
113                                             <parameter name='ack-final' value='Y'/>\r
114                                             <parameter name="error-code" value="500" />\r
115                                             <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
116                                         </return>\r
117                                     </outcome>\r
118                                     <outcome value='Other'>\r
119                                         <block atomic="true">\r
120                                             <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
121                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
122                                                     <outcome value='true'>\r
123                                                         <block atomic="true">\r
124                                                             <set>\r
125                                                                 <parameter name='tmp.nidx' value='`$nidx`' />\r
126                                                                 <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
127                                                             </set>\r
128                                                         </block>\r
129                                                     </outcome>\r
130                                                 </switch>\r
131                                             </for>\r
132                                             <switch test="`$tmp.nidx`">\r
133                                                 <outcome value=''>\r
134                                                     <return status='failure'>\r
135                                                         <parameter name='ack-final' value='Y'/>\r
136                                                         <parameter name="error-code" value="500" />\r
137                                                         <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
138                                                     </return>\r
139                                                 </outcome>\r
140                                             </switch>\r
141                                         </block>\r
142                                     </outcome>\r
143                                 </switch>\r
144                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
145                                     <outcome value='Created'>\r
146                                         <block atomic="true"></block>\r
147                                     </outcome>\r
148                                     <outcome value='Other'>\r
149                                         <return status='failure'>\r
150                                             <parameter name='ack-final' value='Y'/>\r
151                                             <parameter name="error-code" value="500" />\r
152                                             <parameter name="error-message" value="`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
153                                         </return>\r
154                                     </outcome>\r
155                                 </switch>\r
156                             </block>\r
157                         </outcome>\r
158                         <outcome value='Other'>\r
159                             <return status='failure'>\r
160                                 <parameter name='ack-final' value='Y'/>\r
161                                 <parameter name="error-code" value="500" />\r
162                                 <parameter name="error-message" value="request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate" />\r
163                             </return>\r
164                         </outcome>\r
165                     </switch>\r
166                 </outcome>\r
167                 <outcome value='deactivate'>\r
168                     <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
169                         <outcome value='DeactivateSDWANVpnInstance'>\r
170                             <block atomic="true">\r
171                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
172                                     <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
173                                 </execute>\r
174                                 <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
175                                     <outcome value=''>\r
176                                         <return status='failure'>\r
177                                             <parameter name='ack-final' value='Y'/>\r
178                                             <parameter name="error-code" value="500" />\r
179                                             <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
180                                         </return>\r
181                                     </outcome>\r
182                                 </switch>\r
183                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
184                                     <outcome value=''>\r
185                                         <return status='failure'>\r
186                                             <parameter name='ack-final' value='Y'/>\r
187                                             <parameter name="error-code" value="500" />\r
188                                             <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
189                                         </return>\r
190                                     </outcome>\r
191                                     <outcome value='Other'>\r
192                                         <block atomic="true">\r
193                                             <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
194                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
195                                                     <outcome value='true'>\r
196                                                         <block atomic="true">\r
197                                                             <set>\r
198                                                                 <parameter name='tmp.nidx' value='`$nidx`' />\r
199                                                                 <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
200                                                             </set>\r
201                                                         </block>\r
202                                                     </outcome>\r
203                                                 </switch>\r
204                                             </for>\r
205                                             <switch test="`$tmp.nidx`">\r
206                                                 <outcome value=''>\r
207                                                     <return status='failure'>\r
208                                                         <parameter name='ack-final' value='Y'/>\r
209                                                         <parameter name="error-code" value="500" />\r
210                                                         <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
211                                                     </return>\r
212                                                 </outcome>\r
213                                             </switch>\r
214                                         </block>\r
215                                     </outcome>\r
216                                 </switch>\r
217                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
218                                     <outcome value='Active'>\r
219                                         <block atomic="true"></block>\r
220                                     </outcome>\r
221                                     <outcome value='Other'>\r
222                                         <return status='failure'>\r
223                                             <parameter name='ack-final' value='Y'/>\r
224                                             <parameter name="error-code" value="500" />\r
225                                             <parameter name="error-message" value="`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
226                                         </return>\r
227                                     </outcome>\r
228                                 </switch>\r
229                             </block>\r
230                         </outcome>\r
231                         <outcome value='Other'>\r
232                             <return status='failure'>\r
233                                 <parameter name='ack-final' value='Y'/>\r
234                                 <parameter name="error-code" value="500" />\r
235                                 <parameter name="error-message" value="request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate" />\r
236                             </return>\r
237                         </outcome>\r
238                     </switch>\r
239                 </outcome>\r
240                 <outcome value='delete'>\r
241                     <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
242                         <outcome value='DeleteSDWANVpnInstance'>\r
243                             <block atomic="true">\r
244                                 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
245                                     <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
246                                 </execute>\r
247                                 <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
248                                     <outcome value=''>\r
249                                         <return status='failure'>\r
250                                             <parameter name='ack-final' value='Y'/>\r
251                                             <parameter name="error-code" value="500" />\r
252                                             <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
253                                         </return>\r
254                                     </outcome>\r
255                                 </switch>\r
256                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
257                                     <outcome value=''>\r
258                                         <return status='failure'>\r
259                                             <parameter name='ack-final' value='Y'/>\r
260                                             <parameter name="error-code" value="500" />\r
261                                             <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
262                                         </return>\r
263                                     </outcome>\r
264                                     <outcome value='Other'>\r
265                                         <block atomic="true">\r
266                                             <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
267                                                 <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
268                                                     <outcome value='true'>\r
269                                                         <block atomic="true">\r
270                                                             <set>\r
271                                                                 <parameter name='tmp.nidx' value='`$nidx`' />\r
272                                                                 <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
273                                                             </set>\r
274                                                         </block>\r
275                                                     </outcome>\r
276                                                 </switch>\r
277                                             </for>\r
278                                             <switch test="`$tmp.nidx`">\r
279                                                 <outcome value=''>\r
280                                                     <return status='failure'>\r
281                                                         <parameter name='ack-final' value='Y'/>\r
282                                                         <parameter name="error-code" value="500" />\r
283                                                         <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
284                                                     </return>\r
285                                                 </outcome>\r
286                                             </switch>\r
287                                         </block>\r
288                                     </outcome>\r
289                                 </switch>\r
290                                 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
291                                     <outcome value='PendingDelete'>\r
292                                         <block atomic="true"></block>\r
293                                     </outcome>\r
294                                     <outcome value='Other'>\r
295                                         <return status='failure'>\r
296                                             <parameter name='ack-final' value='Y'/>\r
297                                             <parameter name="error-code" value="500" />\r
298                                             <parameter name="error-message" value="`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
299                                         </return>\r
300                                     </outcome>\r
301                                 </switch>\r
302                             </block>\r
303                         </outcome>\r
304                         <outcome value='Other'>\r
305                             <return status='failure'>\r
306                                 <parameter name='ack-final' value='Y'/>\r
307                                 <parameter name="error-code" value="500" />\r
308                                 <parameter name="error-message" value="request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete" />\r
309                             </return>\r
310                         </outcome>\r
311                     </switch>\r
312                 </outcome>\r
313                 <outcome value='Other'>\r
314                     <return status='failure'>\r
315                         <parameter name='ack-final' value='Y'/>\r
316                         <parameter name="error-code" value="500" />\r
317                         <parameter name="error-message" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
318                     </return>\r
319                 </outcome>\r
320             </switch>\r
321         </block>\r
322     </method>\r
323 </service-logic>