Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vnf-topology-operation.xml
1 <service-logic
2         xmlns='http://www.onap.org/sdnc/svclogic'
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}'>
4     <method rpc='vnf-topology-operation' mode='sync'>
5         <block atomic="true">
6             <call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' ></call>
7             <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>
8                 <outcome value='assign'>
9                     <block>
10                         <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
11                             <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
12                             <parameter name='contextPrefix' value='prop' />
13                         </execute>
14                         <switch test='`length($vnf-topology-operation-input.sdnc-request-header.svc-notification-url) == 0`'>
15                             <outcome value='true'>
16                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>
17                             </outcome>
18                             <outcome value='false'>
19                                 <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-notification-url == $prop.so.ignore-url`'>
20                                     <outcome value='true'>
21                                         <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign-sync' mode='sync' ></call>
22                                     </outcome>
23                                     <outcome value='false'>
24                                         <block atomic="true">
25                                             <set>
26                                                 <parameter name='skip-mdsal-update' value='Y' />
27                                             </set>
28                                             <set>
29                                                 <parameter name='ack-final' value='N' />
30                                             </set>
31                                         </block>
32                                     </outcome>
33                                 </switch>
34                             </outcome>
35                         </switch>
36                     </block>
37                 </outcome>
38                 <outcome value='activate'>
39                     <block atomic="true">
40                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
41                             <outcome value='ActivateSiteInstance'>
42                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-activate' mode='sync' ></call>
43                             </outcome>
44                             <outcome value='ActivateSDWANDeviceInstance'>
45                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-activate' mode='sync' ></call>
46                             </outcome>
47                             <outcome value='ActivateSDWANPortInstance'>
48                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-activate' mode='sync' ></call>
49                             </outcome>
50                             <outcome value='ActivateSDWANVpnInstance'>
51                                 <block atomic="true">
52                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>
53                                 </block>
54                             </outcome>
55                             <outcome value='ActivateSDWANSiteInstance'>
56                                 <block atomic="true">
57                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>
58                                 </block>
59                             </outcome>
60                             <outcome value='ActivateSOTNUnderlayInstance'>
61                                 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-activate' mode='sync' ></call>
62                             </outcome>
63                             <outcome value='ActivateTransportSliceInstance'>
64                                 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-activate' mode='sync' ></call>
65                             </outcome>
66                             <outcome value='Other'>
67                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' ></call>
68                             </outcome>
69                         </switch>
70                     </block>
71                 </outcome>
72                 <outcome value='changeassign'>
73                     <block atomic="true">
74                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
75                             <outcome value='CreateVnfInstance'>
76                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-changeassign' mode='sync' ></call>
77                             </outcome>
78                         </switch>
79                     </block>
80                 </outcome>
81                 <outcome value='deactivate'>
82                     <block atomic="true">
83                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
84                             <outcome value='DeactivateSiteInstance'>
85                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-deactivate' mode='sync' ></call>
86                             </outcome>
87                             <outcome value='DeactivateSDWANDeviceInstance'>
88                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-deactivate' mode='sync' ></call>
89                             </outcome>
90                             <outcome value='DeactivateSDWANPortInstance'>
91                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-deactivate' mode='sync' ></call>
92                             </outcome>
93                             <outcome value='DeactivateSDWANVpnInstance'>
94                                 <block atomic="true">
95                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>
96                                 </block>
97                             </outcome>
98                             <outcome value='DeactivateSDWANSiteInstance'>
99                                 <block atomic="true">
100                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>
101                                 </block>
102                             </outcome>
103                             <outcome value='DeactivateSOTNUnderlayInstance'>
104                                 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-deactivate' mode='sync' ></call>
105                             </outcome>
106                             <outcome value='DeactivateTransportSliceInstance'>
107                                 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-deactivate' mode='sync' ></call>
108                             </outcome>
109                             <outcome value='Other'>
110                                 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' ></call>
111                             </outcome>
112                         </switch>
113                     </block>
114                 </outcome>
115                 <outcome value='unassign'>
116                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' ></call>
117                 </outcome>
118                 <outcome value='create'>
119                     <block atomic="true">
120                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
121                             <outcome value='CreateAccessConnectivityInstance'>
122                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
123                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
124                                         <outcome value='true'>
125                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
126                                                 <outcome value='HUAWEI'>
127                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-vnf-topology-operation-create-huawei' mode='sync' ></call>
128                                                 </outcome>
129                                                 <outcome value='Other'>
130                                                     <return status='failure'>
131                                                         <parameter name='ack-final' value='Y'/>
132                                                         <parameter name="error-code" value="500" />
133                                                         <parameter name="error-message" value="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
134                                                     </return>
135                                                 </outcome>
136                                             </switch>
137                                         </outcome>
138                                     </switch>
139                                 </for>
140                             </outcome>
141                             <outcome value='CreateInternetProfileInstance'>
142                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
143                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
144                                         <outcome value='true'>
145                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
146                                                 <outcome value='HUAWEI'>
147                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-vnf-topology-operation-create-huawei' mode='sync' ></call>
148                                                 </outcome>
149                                             </switch>
150                                         </outcome>
151                                     </switch>
152                                 </for>
153                             </outcome>
154                             <outcome value='CreateSiteInstance'>
155                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-create' mode='sync' ></call>
156                             </outcome>
157                             <outcome value='CreateSDWANDeviceInstance'>
158                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-create' mode='sync' ></call>
159                             </outcome>
160                             <outcome value='CreateSDWANPortInstance'>
161                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-create' mode='sync' ></call>
162                             </outcome>
163                             <outcome value='CreateSDWANVpnInstance'>
164                                 <block atomic="true">
165                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-create' mode='sync' ></call>
166                                 </block>
167                             </outcome>
168                             <outcome value='CreateSDWANSiteInstance'>
169                                 <block atomic="true">
170                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-create' mode='sync' ></call>
171                                 </block>
172                             </outcome>
173                             <outcome value='CreateSOTNUnderlayInstance'>
174                                 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-create' mode='sync' ></call>
175                             </outcome>
176                             <outcome value='AllocateTransportSliceInstance'>
177                                 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-allocate' mode='sync' ></call>
178                             </outcome>
179                             <outcome value='CreateCloudLeasedLineInstance'>
180                                 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-create-clean' mode='sync' ></call>
181                             </outcome>
182                             <outcome value='CreateCloudLeasedLineInstanceByEline'>
183                                 <call module='GENERIC-RESOURCE-API' rpc='p2p-vnf-topology-operation-p2p-create' mode='sync' ></call>
184                             </outcome>
185                             <outcome value='Other'>
186                                 <block></block>
187                             </outcome>
188                         </switch>
189                     </block>
190                 </outcome>
191                 <outcome value='delete'>
192                     <block atomic="true">
193                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
194                             <outcome value='DeleteAccessConnectivityInstance'>
195                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
196                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
197                                         <outcome value='true'>
198                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
199                                                 <outcome value='HUAWEI'>
200                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-vnf-topology-operation-delete-huawei' mode='sync' ></call>
201                                                 </outcome>
202                                             </switch>
203                                         </outcome>
204                                     </switch>
205                                 </for>
206                             </outcome>
207                             <outcome value='DeleteInternetProfileInstance'>
208                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
209                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
210                                         <outcome value='true'>
211                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
212                                                 <outcome value='HUAWEI'>
213                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-vnf-topology-operation-delete-huawei' mode='sync' ></call>
214                                                 </outcome>
215                                             </switch>
216                                         </outcome>
217                                     </switch>
218                                 </for>
219                             </outcome>
220                             <outcome value='DeleteSiteInstance'>
221                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-delete' mode='sync' ></call>
222                             </outcome>
223                             <outcome value='DeleteSDWANDeviceInstance'>
224                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-delete' mode='sync' ></call>
225                             </outcome>
226                             <outcome value='DeleteSDWANPortInstance'>
227                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-delete' mode='sync' ></call>
228                             </outcome>
229                             <outcome value='DeleteSDWANVpnInstance'>
230                                 <block atomic="true">
231                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>
232                                 </block>
233                             </outcome>
234                             <outcome value='DeleteSDWANSiteInstance'>
235                                 <block atomic="true">
236                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>
237                                 </block>
238                             </outcome>
239                             <outcome value='DeleteSOTNUnderlayInstance'>
240                                 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync' ></call>
241                             </outcome>
242                             <outcome value='DeleteTransportSliceInstance'>
243                                 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-delete' mode='sync' ></call>
244                             </outcome>
245                             <outcome value='DeleteCloudLeasedLineInstance'>
246                                 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-delete' mode='sync' ></call>
247                             </outcome>
248                             <outcome value='DeleteCloudLeasedLineInstanceByEline'>
249                                 <call module='GENERIC-RESOURCE-API' rpc='p2p-vnf-topology-operation-p2p-delete' mode='sync' ></call>
250                             </outcome>
251                             <outcome value='Other'>
252                                 <block></block>
253                             </outcome>
254                         </switch>
255                     </block>
256                 </outcome>
257                 <outcome value='update'>
258                     <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
259                         <outcome value='ChangeInternetProfileInstance'>
260                             <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
261                                 <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
262                                     <outcome value='true'>
263                                         <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
264                                             <outcome value='HUAWEI'>
265                                                 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-vnf-topology-operation-change-huawei' mode='sync' ></call>
266                                             </outcome>
267                                         </switch>
268                                     </outcome>
269                                 </switch>
270                             </for>
271                         </outcome>
272                         <outcome value='DeleteTransportSliceInstance'>
273                             <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-modify' mode='sync' ></call>
274                         </outcome>
275                         <outcome value='ModifyCloudLeasedLineInstance'>
276                             <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-modify' mode='sync' ></call>
277                         </outcome>
278                         <outcome value='ModifyCloudLeasedLineInstanceByEline'>
279                             <call module='GENERIC-RESOURCE-API' rpc='p2p-vnf-topology-operation-p2p-modify' mode='sync' ></call>
280                         </outcome>
281                     </switch>
282                 </outcome>
283                 <outcome value='Other'>
284                     <return status='failure'>
285                         <parameter name='ack-final' value='Y'/>
286                         <parameter name="error-code" value="500" />
287                         <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
288                     </return>
289                 </outcome>
290             </switch>
291             <return status='success'>
292                 <parameter name="ack-final-indicator" value="Y" />
293                 <parameter name="error-code" value="200" />
294                 <parameter name="error-message" value="`$error-message`" />
295             </return>
296         </block>
297     </method>
298 </service-logic>