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