<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'> <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'> <parameter name='' value='' /> </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> <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'> <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'> <parameter name='' value='' /> </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> <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'> <parameter name='' value='' /> </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='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>