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