-<service-logic\r
- xmlns='http://www.onap.org/sdnc/svclogic'\r
- 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
- <method rpc='network-topology-operation' mode='sync'>\r
- <block atomic="true">\r
- <call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' ></call>\r
- <switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\r
- <outcome value='assign'>\r
- <block atomic="true">\r
- <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
- <outcome value='Created'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <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`" />\r
- </return>\r
- </outcome>\r
- <outcome value='PendingDelete'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <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`" />\r
- </return>\r
- </outcome>\r
- <outcome value='PendingCreate'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <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`" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- <outcome value='activate'>\r
- <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
- <outcome value='ActivateSOTNConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='ActivateDCINetworkInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='ActivateSDWANConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-activate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='other'>\r
- <block atomic="true">\r
- <switch test='`$service-data.networks.network_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
- <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='tmp.nidx' value='`$nidx`' />\r
- <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test="`$tmp.nidx`">\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='nidx' value='`$tmp.nidx`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
- <outcome value=''>\r
- <return status='success'>\r
- <parameter name='' value='' />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block>\r
- <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
- <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`">\r
- <outcome value='true'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='tmp.ngidx' value='`$ngidx`' />\r
- <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
- <outcome value='PendingCreate'>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='Other'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <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`" />\r
- </return>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- <outcome value='changeassign'>\r
- <block atomic="true">\r
- <switch test='`$service-data.networks.network_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
- <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='tmp.nidx' value='`$nidx`' />\r
- <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test="`$tmp.nidx`">\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='nidx' value='`$tmp.nidx`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>\r
- </block>\r
- </outcome>\r
- <outcome value='deactivate'>\r
- <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
- <outcome value='DeactivateSOTNConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='DeActivateDCINetworkInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='DeactivateSDWANConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-deactivate' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <switch test='`$service-data.networks.network_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
- <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='tmp.nidx' value='`$nidx`' />\r
- <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test="`$tmp.nidx`">\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='nidx' value='`$tmp.nidx`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
- <outcome value=''>\r
- <return status='success'>\r
- <parameter name='' value='' />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block>\r
- <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
- <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`">\r
- <outcome value='true'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='tmp.ngidx' value='`$ngidx`' />\r
- <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- <outcome value='unassign'>\r
- <block atomic="true">\r
- <switch test='`$service-data.networks.network_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
- <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
- <outcome value='true'>\r
- <set>\r
- <parameter name='tmp.nidx' value='`$nidx`' />\r
- <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test="`$tmp.nidx`">\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='nidx' value='`$tmp.nidx`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
- <outcome value=''>\r
- <return status='success'>\r
- <parameter name='' value='' />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block>\r
- <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
- <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`">\r
- <outcome value='true'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='tmp.ngidx' value='`$ngidx`' />\r
- <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
- <outcome value='PendingCreate'>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='PendingDelete'>\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='Other'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <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`" />\r
- </return>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- <outcome value='create'>\r
- <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
- <outcome value='CreateSOTNConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='CreateSDWANConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-create' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='other'>\r
- <block atomic="true">\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- <outcome value='delete'>\r
- <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
- <outcome value='DeleteSOTNConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='DeleteSDWANConnectivityInstance'>\r
- <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-delete' mode='sync' ></call>\r
- </outcome>\r
- <outcome value='other'>\r
- <block atomic="true">\r
- <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- <outcome value='Other'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
- </return>\r
- </outcome>\r
- </switch>\r
- <set>\r
- <parameter name="ack-final" value="Y"/>\r
- </set>\r
- <return status='success'>\r
- <parameter name="ack-final-indicator" value="Y" />\r
- <parameter name="error-code" value="200" />\r
- <parameter name="error-message" value="`$error-message`" />\r
- </return>\r
- </block>\r
- </method>\r
-</service-logic>\r
+<?xml version="1.0" encoding="utf-8"?>
+
+<service-logic
+ xmlns='http://www.onap.org/sdnc/svclogic'
+ 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}'>
+ <method rpc='network-topology-operation' mode='sync'>
+ <block atomic="true">
+ <call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' ></call>
+ <switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>
+ <outcome value='assign'>
+ <block atomic="true">
+ <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+ <outcome value='Created'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ <outcome value='PendingDelete'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ <outcome value='PendingCreate'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='activate'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='ActivateSOTNConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' ></call>
+ </outcome>
+ <outcome value='ActivateDCINetworkInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' ></call>
+ </outcome>
+ <outcome value='ActivateSDWANConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-activate' mode='sync' ></call>
+ </outcome>
+ <outcome value='other'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+ <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+ <parameter name="target" value="wan-connection"/>
+ <outcome value='true'>
+ <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-activate' mode='sync' ></call>
+ </outcome>
+ <outcome value='false'>
+ <block atomic="true">
+ <switch test='`$service-data.networks.network_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='nidx' value='`$tmp.nidx`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+ <outcome value=''>
+ <return status='success'></return>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+ <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`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.ngidx' value='`$ngidx`' />
+ <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+ <outcome value='PendingCreate'>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='changeassign'>
+ <block atomic="true">
+ <switch test='`$service-data.networks.network_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='nidx' value='`$tmp.nidx`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>
+ </block>
+ </outcome>
+ <outcome value='deactivate'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='DeactivateSOTNConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>
+ </outcome>
+ <outcome value='DeActivateDCINetworkInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>
+ </outcome>
+ <outcome value='DeactivateSDWANConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-deactivate' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+ <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+ <parameter name="target" value="wan-connection"/>
+ <outcome value='true'>
+ <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
+ </outcome>
+ <outcome value='false'>
+ <block atomic="true">
+ <switch test='`$service-data.networks.network_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='nidx' value='`$tmp.nidx`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+ <outcome value=''>
+ <return status='success'></return>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+ <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`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.ngidx' value='`$ngidx`' />
+ <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>
+ </block>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='unassign'>
+ <block atomic="true">
+ <switch test='`$service-data.networks.network_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+ <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">
+ <outcome value='true'>
+ <set>
+ <parameter name='tmp.nidx' value='`$nidx`' />
+ <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <switch test="`$tmp.nidx`">
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='nidx' value='`$tmp.nidx`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>
+ <outcome value=''>
+ <return status='success'></return>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >
+ <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`">
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.ngidx' value='`$ngidx`' />
+ <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>
+ <outcome value='PendingCreate'>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
+ </outcome>
+ <outcome value='PendingDelete'>
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='update'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='ChangeInternetProfileInstance'>
+ <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+ <outcome value='true'>
+ <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+ <outcome value='HUAWEI'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-huawei' mode='sync' ></call>
+ </outcome>
+ <outcome value='NOKIA'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-change-nokia' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='create'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='CreateSOTNConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>
+ </outcome>
+ <outcome value='CreateSDWANConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-create' mode='sync' ></call>
+ </outcome>
+ <outcome value='other'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+ <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+ <parameter name="target" value="wan-connection"/>
+ <outcome value='true'>
+ <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-create' mode='sync' ></call>
+ </outcome>
+ <outcome value='false'>
+ <block atomic="true">
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>
+ </block>
+ </outcome>
+ </execute>
+ </outcome>
+ <outcome value='CreateInternetProfileInstance'>
+ <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+ <outcome value='true'>
+ <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+ <outcome value='HUAWEI'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-huawei' mode='sync' ></call>
+ </outcome>
+ <outcome value='NOKIA'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-create-nokia' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ <outcome value='CreateAccessConnectivityInstance'>
+ <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+ <outcome value='true'>
+ <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+ <outcome value='HUAWEI'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-huawei' mode='sync' ></call>
+ </outcome>
+ <outcome value='NOKIA'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-create-nokia' mode='sync' ></call>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+ </return>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='delete'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='DeleteSOTNConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>
+ </outcome>
+ <outcome value='DeleteSDWANConnectivityInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sdwan-network-topology-operation-delete' mode='sync' ></call>
+ </outcome>
+ <outcome value='other'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' >
+ <parameter name="source" value="`$network-topology-operation-input.service-information.onap-model-information.model-name`"/>
+ <parameter name="target" value="wan-connection"/>
+ <outcome value='true'>
+ <call module='GENERIC-RESOURCE-API' rpc='wan-connection-topology-operation-deactivate' mode='sync' ></call>
+ </outcome>
+ <outcome value='false'>
+ <block atomic="true">
+ <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>
+ </block>
+ </outcome>
+ </execute>
+ </outcome>
+ <outcome value='DeleteAccessConnectivityInstance'>
+ <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+ <outcome value='true'>
+ <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+ </return>
+ </outcome>
+ <outcome value='HUAWEI'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-huawei' mode='sync' ></call>
+ </outcome>
+ <outcome value='NOKIA'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-access-connectivity-network-topology-operation-delete-nokia' mode='sync' ></call>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ <outcome value='DeleteInternetProfileInstance'>
+ <for index='idx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >
+ <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name == 'manufacturer'`">
+ <outcome value='true'>
+ <switch test='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].value`'>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$idx].name+' is invalid manufacturer,please check!'`" />
+ </return>
+ </outcome>
+ <outcome value='HUAWEI'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-huawei' mode='sync' ></call>
+ </outcome>
+ <outcome value='NOKIA'>
+ <call module='GENERIC-RESOURCE-API' rpc='bbs-internet-profile-network-topology-operation-delete-nokia' mode='sync' ></call>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='reoptimize'>
+ <switch test='`$network-topology-operation-input.request-information.request-action`'>
+ <outcome value='ReoptimizeSOTNInstance'>
+ <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-reoptimize' mode='sync' ></call>
+ </outcome>
+ </switch>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name="ack-final" value="Y"/>
+ </set>
+ <return status='success'>
+ <parameter name="ack-final-indicator" value="Y" />
+ <parameter name="error-code" value="200" />
+ <parameter name="error-message" value="`$error-message`" />
+ </return>
+ </block>
+ </method>
+</service-logic>
\ No newline at end of file