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