4399bd6888ee7dcfcc803eba7b0cfac8253f4da6
[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='Other'>
183                                 <block></block>
184                             </outcome>
185                         </switch>
186                     </block>
187                 </outcome>
188                 <outcome value='delete'>
189                     <block atomic="true">
190                         <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
191                             <outcome value='DeleteAccessConnectivityInstance'>
192                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
193                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
194                                         <outcome value='true'>
195                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
196                                                 <outcome value='HUAWEI'>
197                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-vnf-topology-operation-delete-huawei' mode='sync' ></call>
198                                                 </outcome>
199                                             </switch>
200                                         </outcome>
201                                     </switch>
202                                 </for>
203                             </outcome>
204                             <outcome value='DeleteInternetProfileInstance'>
205                                 <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
206                                     <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
207                                         <outcome value='true'>
208                                             <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
209                                                 <outcome value='HUAWEI'>
210                                                     <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-vnf-topology-operation-delete-huawei' mode='sync' ></call>
211                                                 </outcome>
212                                             </switch>
213                                         </outcome>
214                                     </switch>
215                                 </for>
216                             </outcome>
217                             <outcome value='DeleteSiteInstance'>
218                                 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-delete' mode='sync' ></call>
219                             </outcome>
220                             <outcome value='DeleteSDWANDeviceInstance'>
221                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-delete' mode='sync' ></call>
222                             </outcome>
223                             <outcome value='DeleteSDWANPortInstance'>
224                                 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-delete' mode='sync' ></call>
225                             </outcome>
226                             <outcome value='DeleteSDWANVpnInstance'>
227                                 <block atomic="true">
228                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>
229                                 </block>
230                             </outcome>
231                             <outcome value='DeleteSDWANSiteInstance'>
232                                 <block atomic="true">
233                                     <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-delete' mode='sync' ></call>
234                                 </block>
235                             </outcome>
236                             <outcome value='DeleteSOTNUnderlayInstance'>
237                                 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync' ></call>
238                             </outcome>
239                             <outcome value='DeleteTransportSliceInstance'>
240                                 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-delete' mode='sync' ></call>
241                             </outcome>
242                             <outcome value='DeleteCloudLeasedLineInstance'>
243                                 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-delete' mode='sync' ></call>
244                             </outcome>
245                             <outcome value='Other'>
246                                 <block></block>
247                             </outcome>
248                         </switch>
249                     </block>
250                 </outcome>
251                 <outcome value='update'>
252                     <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
253                         <outcome value='ChangeInternetProfileInstance'>
254                             <for index='idx' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >
255                                 <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].name == 'manufacturer'`">
256                                     <outcome value='true'>
257                                         <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$idx].value`'>
258                                             <outcome value='HUAWEI'>
259                                                 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-vnf-topology-operation-change-huawei' mode='sync' ></call>
260                                             </outcome>
261                                         </switch>
262                                     </outcome>
263                                 </switch>
264                             </for>
265                         </outcome>
266                         <outcome value='DeleteTransportSliceInstance'>
267                             <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-modify' mode='sync' ></call>
268                         </outcome>
269                         <outcome value='ModifyCloudLeasedLineInstance'>
270                             <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-modify' mode='sync' ></call>
271                         </outcome>
272                     </switch>
273                 </outcome>
274                 <outcome value='Other'>
275                     <return status='failure'>
276                         <parameter name='ack-final' value='Y'/>
277                         <parameter name="error-code" value="500" />
278                         <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
279                     </return>
280                 </outcome>
281             </switch>
282             <return status='success'>
283                 <parameter name="ack-final-indicator" value="Y" />
284                 <parameter name="error-code" value="200" />
285                 <parameter name="error-message" value="`$error-message`" />
286             </return>
287         </block>
288     </method>
289 </service-logic>