1 <?xml version="1.0" encoding="utf-8"?>
4 xmlns='http://www.onap.org/sdnc/svclogic'
5 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}'>
6 <method rpc='network-topology-operation' mode='sync'>
8 <call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' ></call>
9 <switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>
10 <outcome value='assign'>
12 <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
13 <outcome value='Created'>
14 <return status='failure'>
15 <parameter name='ack-final' value='Y'/>
16 <parameter name="error-code" value="500" />
17 <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
20 <outcome value='PendingDelete'>
21 <return status='failure'>
22 <parameter name='ack-final' value='Y'/>
23 <parameter name="error-code" value="500" />
24 <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
27 <outcome value='PendingCreate'>
28 <return status='failure'>
29 <parameter name='ack-final' value='Y'/>
30 <parameter name="error-code" value="500" />
31 <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
34 <outcome value='Other'>
35 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>
40 <outcome value='activate'>
41 <switch test='`$network-topology-operation-input.request-information.request-action`'>
42 <outcome value='ActivateSOTNConnectivityInstance'>
43 <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' ></call>
45 <outcome value='ActivateDCINetworkInstance'>
46 <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' ></call>
48 <outcome value='ActivateSDWANConnectivityInstance'>
49 <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-activate' mode='sync' ></call>
51 <outcome value='other'>
52 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
53 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
54 <parameter name="target" value="wan-connection"/>
55 <outcome value='true'>
56 <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-activate' mode='sync' ></call>
58 <outcome value='false'>
60 <switch test='`$service-data.networks.network_length`'>
62 <return status='failure'>
63 <parameter name='ack-final' value='Y'/>
64 <parameter name="error-code" value="500" />
65 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
68 <outcome value='Other'>
70 <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
71 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
72 <outcome value='true'>
74 <parameter name='tmp.nidx' value='`$nidx`' />
75 <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
80 <switch test="`$tmp.nidx`">
82 <return status='failure'>
83 <parameter name='ack-final' value='Y'/>
84 <parameter name="error-code" value="500" />
85 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
88 <outcome value='Other'>
90 <parameter name='nidx' value='`$tmp.nidx`' />
97 <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
99 <return status='success'></return>
101 <outcome value='Other'>
103 <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
105 <return status='failure'>
106 <parameter name='ack-final' value='Y'/>
107 <parameter name="error-code" value="500" />
108 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
111 <outcome value='Other'>
112 <block atomic="true">
113 <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
114 <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
115 <outcome value='true'>
116 <block atomic="true">
118 <parameter name='tmp.ngidx' value='`$ngidx`' />
119 <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
131 <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
132 <outcome value='PendingCreate'>
133 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>
135 <outcome value='Other'>
136 <return status='failure'>
137 <parameter name='ack-final' value='Y'/>
138 <parameter name="error-code" value="500" />
139 <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`" />
149 <outcome value='changeassign'>
150 <block atomic="true">
151 <switch test='`$service-data.networks.network_length`'>
153 <return status='failure'>
154 <parameter name='ack-final' value='Y'/>
155 <parameter name="error-code" value="500" />
156 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
159 <outcome value='Other'>
160 <block atomic="true">
161 <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
162 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
163 <outcome value='true'>
165 <parameter name='tmp.nidx' value='`$nidx`' />
166 <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
171 <switch test="`$tmp.nidx`">
173 <return status='failure'>
174 <parameter name='ack-final' value='Y'/>
175 <parameter name="error-code" value="500" />
176 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
179 <outcome value='Other'>
181 <parameter name='nidx' value='`$tmp.nidx`' />
188 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>
191 <outcome value='deactivate'>
192 <switch test='`$network-topology-operation-input.request-information.request-action`'>
193 <outcome value='DeactivateSOTNConnectivityInstance'>
194 <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>
196 <outcome value='DeActivateDCINetworkInstance'>
197 <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>
199 <outcome value='DeactivateSDWANConnectivityInstance'>
200 <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-deactivate' mode='sync' ></call>
202 <outcome value='Other'>
203 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
204 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
205 <parameter name="target" value="wan-connection"/>
206 <outcome value='true'>
207 <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
209 <outcome value='false'>
210 <block atomic="true">
211 <switch test='`$service-data.networks.network_length`'>
213 <return status='failure'>
214 <parameter name='ack-final' value='Y'/>
215 <parameter name="error-code" value="500" />
216 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
219 <outcome value='Other'>
220 <block atomic="true">
221 <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
222 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
223 <outcome value='true'>
225 <parameter name='tmp.nidx' value='`$nidx`' />
226 <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
231 <switch test="`$tmp.nidx`">
233 <return status='failure'>
234 <parameter name='ack-final' value='Y'/>
235 <parameter name="error-code" value="500" />
236 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
239 <outcome value='Other'>
241 <parameter name='nidx' value='`$tmp.nidx`' />
248 <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
250 <return status='success'></return>
252 <outcome value='Other'>
254 <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
256 <return status='failure'>
257 <parameter name='ack-final' value='Y'/>
258 <parameter name="error-code" value="500" />
259 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
262 <outcome value='Other'>
263 <block atomic="true">
264 <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
265 <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
266 <outcome value='true'>
267 <block atomic="true">
269 <parameter name='tmp.ngidx' value='`$ngidx`' />
270 <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
282 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>
289 <outcome value='unassign'>
290 <block atomic="true">
291 <switch test='`$service-data.networks.network_length`'>
293 <return status='failure'>
294 <parameter name='ack-final' value='Y'/>
295 <parameter name="error-code" value="500" />
296 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
299 <outcome value='Other'>
300 <block atomic="true">
301 <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
302 <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
303 <outcome value='true'>
305 <parameter name='tmp.nidx' value='`$nidx`' />
306 <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
311 <switch test="`$tmp.nidx`">
313 <return status='failure'>
314 <parameter name='ack-final' value='Y'/>
315 <parameter name="error-code" value="500" />
316 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
319 <outcome value='Other'>
321 <parameter name='nidx' value='`$tmp.nidx`' />
328 <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
330 <return status='success'></return>
332 <outcome value='Other'>
334 <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
336 <return status='failure'>
337 <parameter name='ack-final' value='Y'/>
338 <parameter name="error-code" value="500" />
339 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
342 <outcome value='Other'>
343 <block atomic="true">
344 <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
345 <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">
346 <outcome value='true'>
347 <block atomic="true">
349 <parameter name='tmp.ngidx' value='`$ngidx`' />
350 <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
362 <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
363 <outcome value='PendingCreate'>
364 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
366 <outcome value='PendingDelete'>
367 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
369 <outcome value='Other'>
370 <return status='failure'>
371 <parameter name='ack-final' value='Y'/>
372 <parameter name="error-code" value="500" />
373 <parameter name="error-message" value="`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />
379 <outcome value='update'>
380 <switch test='`$network-topology-operation-input.request-information.request-action`'>
381 <outcome value='ChangeInternetProfileInstance'>
382 <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
383 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
384 <outcome value='true'>
385 <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
386 <outcome value='HUAWEI'>
387 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-huawei' mode='sync' ></call>
389 <outcome value='NOKIA'>
390 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-nokia' mode='sync' ></call>
392 <outcome value='Other'>
393 <return status='failure'>
394 <parameter name='ack-final' value='Y'/>
395 <parameter name="error-code" value="500" />
396 <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
406 <outcome value='create'>
407 <switch test='`$network-topology-operation-input.request-information.request-action`'>
408 <outcome value='CreateSOTNConnectivityInstance'>
409 <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>
411 <outcome value='CreateSDWANConnectivityInstance'>
412 <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-create' mode='sync' ></call>
414 <outcome value='other'>
415 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
416 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
417 <parameter name="target" value="wan-connection"/>
418 <outcome value='true'>
419 <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-create' mode='sync' ></call>
421 <outcome value='false'>
422 <block atomic="true">
423 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>
428 <outcome value='CreateInternetProfileInstance'>
429 <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
430 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
431 <outcome value='true'>
432 <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
433 <outcome value='HUAWEI'>
434 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-huawei' mode='sync' ></call>
436 <outcome value='NOKIA'>
437 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-nokia' mode='sync' ></call>
439 <outcome value='Other'>
440 <return status='failure'>
441 <parameter name='ack-final' value='Y'/>
442 <parameter name="error-code" value="500" />
443 <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
451 <outcome value='CreateAccessConnectivityInstance'>
452 <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
453 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
454 <outcome value='true'>
455 <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
456 <outcome value='HUAWEI'>
457 <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-huawei' mode='sync' ></call>
459 <outcome value='NOKIA'>
460 <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-nokia' mode='sync' ></call>
462 <outcome value='Other'>
463 <return status='failure'>
464 <parameter name='ack-final' value='Y'/>
465 <parameter name="error-code" value="500" />
466 <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
476 <outcome value='delete'>
477 <switch test='`$network-topology-operation-input.request-information.request-action`'>
478 <outcome value='DeleteSOTNConnectivityInstance'>
479 <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>
481 <outcome value='DeleteSDWANConnectivityInstance'>
482 <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-delete' mode='sync' ></call>
484 <outcome value='other'>
485 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
486 <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
487 <parameter name="target" value="wan-connection"/>
488 <outcome value='true'>
489 <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
491 <outcome value='false'>
492 <block atomic="true">
493 <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>
498 <outcome value='DeleteAccessConnectivityInstance'>
499 <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
500 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
501 <outcome value='true'>
502 <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
503 <outcome value='Other'>
504 <return status='failure'>
505 <parameter name='ack-final' value='Y'/>
506 <parameter name="error-code" value="500" />
507 <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
510 <outcome value='HUAWEI'>
511 <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-huawei' mode='sync' ></call>
513 <outcome value='NOKIA'>
514 <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-nokia' mode='sync' ></call>
521 <outcome value='DeleteInternetProfileInstance'>
522 <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
523 <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
524 <outcome value='true'>
525 <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
526 <outcome value='Other'>
527 <return status='failure'>
528 <parameter name='ack-final' value='Y'/>
529 <parameter name="error-code" value="500" />
530 <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
533 <outcome value='HUAWEI'>
534 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-huawei' mode='sync' ></call>
536 <outcome value='NOKIA'>
537 <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-nokia' mode='sync' ></call>
546 <outcome value='reoptimize'>
547 <switch test='`$network-topology-operation-input.request-information.request-action`'>
548 <outcome value='ReoptimizeSOTNInstance'>
549 <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-reoptimize' mode='sync' ></call>
553 <outcome value='Other'>
554 <return status='failure'>
555 <parameter name='ack-final' value='Y'/>
556 <parameter name="error-code" value="500" />
557 <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
562 <parameter name="ack-final" value="Y"/>
564 <return status='success'>
565 <parameter name="ack-final-indicator" value="Y" />
566 <parameter name="error-code" value="200" />
567 <parameter name="error-message" value="`$error-message`" />