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'>
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'>
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' />
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>
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>
23 <outcome value='false'>
26 <parameter name='skip-mdsal-update' value='Y' />
29 <parameter name='ack-final' value='N' />
38 <outcome value='activate'>
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>
44 <outcome value='ActivateSDWANDeviceInstance'>
45 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-activate' mode='sync' ></call>
47 <outcome value='ActivateSDWANPortInstance'>
48 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-activate' mode='sync' ></call>
50 <outcome value='ActivateSDWANVpnInstance'>
52 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>
55 <outcome value='ActivateSDWANSiteInstance'>
57 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-activate' mode='sync' ></call>
60 <outcome value='ActivateSOTNUnderlayInstance'>
61 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-activate' mode='sync' ></call>
63 <outcome value='ActivateTransportSliceInstance'>
64 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-activate' mode='sync' ></call>
66 <outcome value='Other'>
67 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' ></call>
72 <outcome value='changeassign'>
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>
81 <outcome value='deactivate'>
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>
87 <outcome value='DeactivateSDWANDeviceInstance'>
88 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-deactivate' mode='sync' ></call>
90 <outcome value='DeactivateSDWANPortInstance'>
91 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-deactivate' mode='sync' ></call>
93 <outcome value='DeactivateSDWANVpnInstance'>
95 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>
98 <outcome value='DeactivateSDWANSiteInstance'>
100 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-vpn-site-resource-deactivate' mode='sync' ></call>
103 <outcome value='DeactivateSOTNUnderlayInstance'>
104 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-deactivate' mode='sync' ></call>
106 <outcome value='DeactivateTransportSliceInstance'>
107 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-deactivate' mode='sync' ></call>
109 <outcome value='Other'>
110 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' ></call>
115 <outcome value='unassign'>
116 <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' ></call>
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>
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!'`" />
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>
154 <outcome value='CreateSiteInstance'>
155 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-create' mode='sync' ></call>
157 <outcome value='CreateSDWANDeviceInstance'>
158 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-create' mode='sync' ></call>
160 <outcome value='CreateSDWANPortInstance'>
161 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-create' mode='sync' ></call>
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>
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>
173 <outcome value='CreateSOTNUnderlayInstance'>
174 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-create' mode='sync' ></call>
176 <outcome value='AllocateTransportSliceInstance'>
177 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-allocate' mode='sync' ></call>
179 <outcome value='CreateCloudLeasedLineInstance'>
180 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-create-clean' mode='sync' ></call>
182 <outcome value='Other'>
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>
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>
217 <outcome value='DeleteSiteInstance'>
218 <call module='GENERIC-RESOURCE-API' rpc='site-vnf-topology-operation-delete' mode='sync' ></call>
220 <outcome value='DeleteSDWANDeviceInstance'>
221 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-device-delete' mode='sync' ></call>
223 <outcome value='DeleteSDWANPortInstance'>
224 <call module='GENERIC-RESOURCE-API' rpc='sdwan-vnf-topology-operation-wanport-delete' mode='sync' ></call>
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>
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>
236 <outcome value='DeleteSOTNUnderlayInstance'>
237 <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-underlay-delete' mode='sync' ></call>
239 <outcome value='DeleteTransportSliceInstance'>
240 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-delete' mode='sync' ></call>
242 <outcome value='DeleteCloudLeasedLineInstance'>
243 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-delete' mode='sync' ></call>
245 <outcome value='Other'>
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>
266 <outcome value='DeleteTransportSliceInstance'>
267 <call module='GENERIC-RESOURCE-API' rpc='tsli-vnf-topology-operation-trans-slice-modify' mode='sync' ></call>
269 <outcome value='ModifyCloudLeasedLineInstance'>
270 <call module='GENERIC-RESOURCE-API' rpc='cll-vnf-topology-operation-cll-modify' mode='sync' ></call>
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'`" />
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`" />