--- /dev/null
+<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='port-mirror-topology-operation-assign-async' mode='sync'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\r
+ <parameter name='tmp.src-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`' />\r
+ <parameter name='tmp.dest-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`' />\r
+ <parameter name='tmp.dest-pnf-name' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`' />\r
+ <parameter name='tmp.service-instance-id' value='`$port-mirror-topology-operation-input.service-information.service-instance-id`' />\r
+ <parameter name='tmp.configuration-sub-type' value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+ </set>\r
+ <set>\r
+ <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'\r
+ value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />\r
+ <parameter name='pm.configuration-data.configuration-operation-information.request-information.'\r
+ value='`$port-mirror-topology-operation-input.request-information.`' />\r
+ <parameter name='pm.configuration-data.configuration-operation-information.service-information.'\r
+ value='`$port-mirror-topology-operation-input.service-information.`' />\r
+ <parameter name='pm.configuration-data.configuration-operation-information.configuration-information.'\r
+ value='`$port-mirror-topology-operation-input.configuration-information.`' />\r
+ <parameter name='pm.configuration-data.configuration-operation-information.port-mirror-configuration-request-input.'\r
+ value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.`' />\r
+ </set>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+ <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+ <parameter name='contextPrefix' value='prop' />\r
+ </execute>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='select role,nfc_naming_code,pps_capacity,network_role,policy_name\r
+ from PORT_MIRROR_CAPABILITY cap, PORT_MIRROR_CONFIGURATION conf, SERVICE_PROXY sp\r
+ where cap.port_mirror_capability_name=conf.port_mirror_capability_name\r
+ and cap.port_mirror_service_uuid=conf.port_mirror_service_uuid\r
+ and cap.service_proxy_name=conf.service_proxy_name\r
+ and cap.service_proxy_name=sp.service_proxy_name\r
+ and cap.port_mirror_service_uuid=sp.parent_service_uuid\r
+ and conf.customization_uuid = $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid\r
+ and conf.port_mirror_service_uuid = $service-data.service-information.onap-model-information.model-uuid\r
+ order by role'\r
+ pfx='db.cap[]'>\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error reading PORT_MIRROR_CONFIGURATION table" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error reading PORT_MIRROR_CONFIGURATION table" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </get-resource>\r
+ <for index='cap-idx' start='0' end='`$db.cap_length`' >\r
+ <switch test='`$db.cap[$cap-idx].role`'>\r
+ <outcome value='source'>\r
+ <set>\r
+ <parameter name='tmp.src-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\r
+ <parameter name='tmp.src-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\r
+ <parameter name='tmp.src-network-role' value='`$db.cap[$cap-idx].network-role`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='collector'>\r
+ <set>\r
+ <parameter name='tmp.dest-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\r
+ <parameter name='tmp.dest-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\r
+ <parameter name='tmp.dest-network-role' value='`$db.cap[$cap-idx].network-role`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="replace">\r
+ <parameter name="source" value="`$tmp.src-nfc-naming-code`" />\r
+ <parameter name="target" value=" " />\r
+ <parameter name="replacement" value="%20" />\r
+ <parameter name="outputPath" value="tmp.encoded-src-nfc-naming-code" />\r
+ </execute>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="replace">\r
+ <parameter name="source" value="`$tmp.dest-nfc-naming-code`" />\r
+ <parameter name="target" value=" " />\r
+ <parameter name="replacement" value="%20" />\r
+ <parameter name="outputPath" value="tmp.encoded-dest-nfc-naming-code" />\r
+ </execute>\r
+ <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`'>\r
+ <outcome value=''>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <set>\r
+ <parameter name='tmp.src-vnfc-idx' value='0' />\r
+ <parameter name='tmp.dest-vnfc-idx' value='1' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <set>\r
+ <parameter name='tmp.src-vnfc-idx' value='0' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic="true">\r
+ <for index='vnfc-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' >\r
+ <block atomic="true">\r
+ <switch test="`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.src-network-role`">\r
+ <outcome value='true'>\r
+ <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.src-nfc-naming-code`'>\r
+ <outcome value='true'>\r
+ <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\r
+ <outcome value='true'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Source nfc-naming-code of ' + $tmp.src-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ <switch test="`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.dest-network-role`">\r
+ <outcome value='true'>\r
+ <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.dest-nfc-naming-code`'>\r
+ <outcome value='true'>\r
+ <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\r
+ <outcome value='true'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Dest nfc-naming-code of ' + $tmp.dest-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </for>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <set>\r
+ <parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\r
+ <parameter name='tmp.dest-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`' />\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 2`'/>\r
+ </set>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <set>\r
+ <parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`'/>\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.oe">\r
+ <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $tmp.service-instance-id `" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="/query/owning-entity-fromService-instance" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query: owning-entity-fromService-instance" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No owning entity returned from AAI: owning-entity-fromService-instance" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <set>\r
+ <parameter name='tmp.owning-entity' value='`$tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id`' />\r
+ </set>\r
+ </outcome>\r
+ </save>\r
+ <switch test='`$tmp.owning-entity`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve owning-entity from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity' value='`$tmp.owning-entity`' />\r
+ </set>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource&nodesOnly=true'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.vnf">\r
+ <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id `" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="query/cloud-region-fromVnf" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No cloud region returned from AAI: cloud-region-fromVnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <for index='result-idx' start='0' end='`$tmp.AnAI-data.vnf.results_length`' >\r
+ <block atomic="true">\r
+ <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.tenant' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.tenant-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.tenant-context' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.cloud-owner' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.cloud-region-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </for>\r
+ <switch test='`$tmp.tenant`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve source tenant from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.tenant-id`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve source tenant-id from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.cloud-region-id`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve tenant from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.cloud-owner`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve tenant from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <block atomic="true">\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource&nodesOnly=true'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.dest-vnf">\r
+ <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id `" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="query/cloud-region-fromVnf" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf, for destination vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No cloud region returned from AAI: cloud-region-fromVnf, for destination vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <for index='result-idx' start='0' end='`$tmp.AnAI-data.dest-vnf.results_length`' >\r
+ <switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.dest-tenant' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.dest-tenant-id' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <switch test='`$tmp.dest-tenant`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve destination tenant from AAI" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.dest-tenant-id`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to retrieve destination tenant-id from AAI" />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner'\r
+ value='`$tmp.cloud-owner`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id'\r
+ value='`$tmp.cloud-region-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant'\r
+ value='`$tmp.tenant`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id'\r
+ value='`$tmp.tenant-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant'\r
+ value='`$tmp.dest-tenant`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant-id'\r
+ value='`$tmp.dest-tenant-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-context'\r
+ value='`$tmp.tenant-context`' />\r
+ </set>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='pprobe'>\r
+ <block atomic="true">\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-get-policy' mode='sync' >\r
+ <outcome value='failure'>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.src-network">\r
+ <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/' + $tmp.cloud-region-id`" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole=' + $tmp.src-network-role`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query: network-name-fromNetwork-role" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No network information returned from AAI: network-name-fromNetwork-role" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.dest-network">\r
+ <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/' + $tmp.cloud-region-id`" />\r
+ <parameter name="start_length" value="1" />\r
+ <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole=' + $tmp.dest-network-role`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query: network-name-fromNetwork-role" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No network information returned from AAI: network-name-fromNetwork-role" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.src-li">\r
+ <parameter value="`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id`" name="start[0]"/>\r
+ <parameter value="1" name="start_length"/>\r
+ <parameter value="`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-src-nfc-naming-code`" name="query"/>\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query vserver-fromVnf for source vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No interface data returned from AAI vserver-fromVnf for source vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="custom-query"\r
+ key="format = 'resource'"\r
+ force="true"\r
+ local-only="false"\r
+ pfx="tmp.AnAI-data.dest-li">\r
+ <parameter value="`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id`" name="start[0]"/>\r
+ <parameter value="1" name="start_length"/>\r
+ <parameter value="`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-dest-nfc-naming-code`" name="query"/>\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failed call to AAI custom query vserver-fromVnf for dest vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No interface data returned from AAI vserver-fromVnf for dest vnf" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <set>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\r
+ value='`$tmp.src-network-role`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\r
+ value='`$tmp.src-nfc-naming-code`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\r
+ value='port-mirror-source'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\r
+ value='`$tmp.configuration-id`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].instance-group-role'\r
+ value='`$tmp.dest-network-role`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].nfc-naming-code'\r
+ value='`$tmp.dest-nfc-naming-code`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].group-type'\r
+ value='port-mirror-dest'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].configuration-id'\r
+ value='`$tmp.configuration-id`'/>\r
+ </set>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <set>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\r
+ value='`$tmp.src-network-role`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\r
+ value='`$tmp.src-nfc-naming-code`'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\r
+ value='port-mirror-source'/>\r
+ <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\r
+ value='`$tmp.configuration-id`'/>\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\r
+ value='`$tmp.src-nfc-naming-code`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\r
+ value='`$tmp.src-network-role`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\r
+ value='`$tmp.service-instance-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\r
+ value='`$tmp.configuration-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\r
+ value='`$tmp.src-vnf-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\r
+ value='`$tmp.src-pps`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.nfc-naming-code'\r
+ value='`$tmp.dest-nfc-naming-code`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.instance-group-role'\r
+ value='`$tmp.dest-network-role`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.service-instance-id'\r
+ value='`$tmp.service-instance-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.configuration-id'\r
+ value='`$tmp.configuration-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnf-id'\r
+ value='`$tmp.dest-vnf-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\r
+ value='vprobe' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\r
+ value='`$tmp.src-nfc-naming-code`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\r
+ value='`$tmp.src-network-role`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\r
+ value='`$tmp.service-instance-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\r
+ value='`$tmp.configuration-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\r
+ value='`$tmp.src-vnf-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\r
+ value='`$tmp.src-pps`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-name'\r
+ value='`$tmp.dest-pnf-name`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-p-interface'\r
+ value='`$tmp.dest-p-interface`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-port-policy-name'\r
+ value='`$db.cap[0].policy-name`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\r
+ value='pprobe' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <for index='src-nw-idx' start='0' end='`$tmp.AnAI-data.src-network.results_length`' >\r
+ <switch test='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`'>\r
+ <outcome value=''>\r
+ <block atomic="true"></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <switch test='`$tmp.src-network-name`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.src-network-name' value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn'\r
+ value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.contrail-network-fqdn`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'More than one l3-network returned from AAI for network-role ' + $tmp.src-network-role`" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <switch test='`$tmp.src-network-name`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Cannot determine source network name from AAI data" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <block atomic="true">\r
+ <for index='dest-nw-idx' start='0' end='`$tmp.AnAI-data.dest-network.results_length`' >\r
+ <switch test='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`'>\r
+ <outcome value=''>\r
+ <block atomic="true"></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <switch test='`$tmp.dest-network-name`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.dest-network-name' value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn'\r
+ value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.contrail-network-fqdn`' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'More than one l3-network returned from AAI for network-role ' + $tmp.dest-network-role`" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <switch test='`$tmp.dest-network-name`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Cannot determine dest network name from AAI data" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-create-vnfcs' mode='sync' >\r
+ <outcome value='failure'>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-vprobe' mode='sync' >\r
+ <outcome value='failure'>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-pprobe' mode='sync' >\r
+ <outcome value='failure'>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`'>\r
+ <outcome value=''>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No usable source l-interfaces found in AAI data" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='0'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="No usable source l-interfaces found in AAI data" />\r
+ </set>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='cto-api.parent-service-instance-id' value='`$tmp.service-instance-id`' />\r
+ <parameter name='cto-api.port-mirror-configuration-instance-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.source-network-role' value='`$tmp.src-network-role`' />\r
+ <parameter name='cto-api.collector-network-role' value='`$tmp.dest-network-role`' />\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.cloud-owner' value='`$tmp.cloud-owner`' />\r
+ <parameter name='cto-api.service-type' value='`$port-mirror-topology-operation-input.service-information.subscription-service-type`' />\r
+ <parameter name='cto-api.owning-entity' value='`$tmp.owning-entity`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-create' mode='sync' >\r
+ <outcome value='failure'>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </call>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id'\r
+ value='`$cto-api.contrail-route-allotted-instance-id`' />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-name`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.configuration-name' value="`'PMC_' + $tmp.tenant + '_' + $tmp.cloud-region-id + '_' + $port-mirror-topology-operation-input.configuration-information.configuration-type + '_' + $tmp.configuration-id`" />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.configuration-name' value='`$port-mirror-topology-operation-input.configuration-information.configuration-name`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$tmp.link-name`" />\r
+ <parameter name="outputPath" value="tmp.encoded-link-name" />\r
+ </execute>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" >\r
+ <parameter name="link-name" value="`$tmp.link-name`" />\r
+ <parameter name="in-maint" value="false" />\r
+ <parameter name="link-type" value="port-mirror-configuration" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed to create logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed to create logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <block atomic="true">\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />\r
+ <parameter name="outputPath" value="tmp.encoded-source-port-name" />\r
+ </execute>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ <parameter name="outputPath" value="tmp.encoded-dest-port-name" />\r
+ </execute>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="logical-link:relationship-list"\r
+ key="logical-link.link-name = $tmp.link-name"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l-interface" />\r
+ <parameter name="relationship-list.relationship[0].relationship-label" value="org.onap.relationships.inventory.Source" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+ + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+ + $tmp.tenant-id + '/vservers/vserver/' \r
+ + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\r
+ + '/l-interfaces/l-interface/'\r
+ + $tmp.encoded-source-port-name`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="l-interface" />\r
+ <parameter name="relationship-list.relationship[1].relationship-label" value="org.onap.relationships.inventory.Destination" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+ + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+ + $tmp.dest-tenant-id + '/vservers/vserver/' \r
+ + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-vserver-id\r
+ + '/l-interfaces/l-interface/'\r
+ + $tmp.encoded-dest-port-name`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='pprobe'>\r
+ <block atomic="true">\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />\r
+ <parameter name="outputPath" value="tmp.encoded-source-port-name" />\r
+ </execute>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ <parameter name="outputPath" value="tmp.encoded-dest-port-name" />\r
+ </execute>\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+ <parameter name="source" value="`$tmp.dest-p-interface`" />\r
+ <parameter name="outputPath" value="tmp.encoded-dest-p-interface" />\r
+ </execute>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="logical-link:relationship-list"\r
+ key="logical-link.link-name = $tmp.link-name"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l-interface" />\r
+ <parameter name="relationship-list.relationship[0].relationship-label" value="org.onap.relationships.inventory.Source" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+ + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+ + $tmp.tenant-id + '/vservers/vserver/' \r
+ + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\r
+ + '/l-interfaces/l-interface/'\r
+ + $tmp.encoded-source-port-name`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="l-interface" />\r
+ <parameter name="relationship-list.relationship[1].relationship-label" value="org.onap.relationships.inventory.Destination" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/network/pnfs/pnf/'\r
+ + $tmp.dest-pnf-name + '/p-interfaces/p-interface/'\r
+ + $tmp.encoded-dest-p-interface + '/l-interfaces/l-interface/' \r
+ + $tmp.encoded-dest-port-name`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="configuration:relationship-list"\r
+ key="configuration.configuration-id = $tmp.configuration-id"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/logical-links/logical-link/' + $tmp.encoded-link-name`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </block>\r
+ </for>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="configuration"\r
+ key="configuration.configuration-id = $tmp.configuration-id"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="configuration-name" value="`$tmp.configuration-name`" />\r
+ <parameter name="operational-status" value="out-of-service-path" />\r
+ <parameter name="configuration-selflink" value="`'/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/'\r
+ + $port-mirror-topology-operation-input.configuration-information.configuration-id + '/configuration-data/port-mirror-configuration-topology'`" />\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Unable to find configuration object in AAI" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Failure updating configuration object in AAI" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </update>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="configuration:relationship-list"\r
+ key="configuration.configuration-id = $tmp.configuration-id"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="allotted-resource" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/business/customers/customer/' + $service-data.service-information.global-customer-id\r
+ + '/service-subscriptions/service-subscription/' + $port-mirror-topology-operation-input.service-information.subscription-service-type\r
+ + '/service-instances/service-instance/' + $tmp.service-instance-id\r
+ + '/allotted-resources/allotted-resource/' + $cto-api.contrail-route-allotted-instance-id`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+ + ' in AAI'`" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-id'\r
+ value='`$tmp.configuration-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-type'\r
+ value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-sub-type'\r
+ value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.parent-service-instance-id'\r
+ value='`$tmp.service-instance-id`' />\r
+ <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-name'\r
+ value='`$tmp.configuration-name`' />\r
+ </set>\r
+ <switch test='`$service-data.provided-configurations.provided-configuration_length`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.provided-conf-idx' value='0' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.provided-conf-idx' value='`$service-data.provided-configurations.provided-configuration_length`' />\r
+ <parameter name='service-data.provided-configurations.provided-configuration_length' value='`$tmp.provided-conf-idx + 1`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-id'\r
+ value='`$tmp.configuration-id`' />\r
+ <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-type'\r
+ value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\r
+ <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-sub-type'\r
+ value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+ <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-topology-link'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/' + $tmp.configuration-id + '/configuration-data/port-mirror-configuration-topology'`" />\r
+ </set>\r
+ <set>\r
+ <parameter name='pm.configuration-data.configuration-oper-status.order-status'\r
+ value='Created' />\r
+ <parameter name='pm.configuration-data.configuration-oper-status.last-action'\r
+ value='`$port-mirror-topology-operation-input.request-information.request-action`' />\r
+ <parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'\r
+ value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />\r
+ </set>\r
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+ <parameter name="source" value="`$prop.restapi.pm-configuration`"/>\r
+ <parameter name="outputPath" value="tmp.pmc-url"/>\r
+ <parameter name="target" value="{configuration-id}"/>\r
+ <parameter name="replacement" value="`$tmp.configuration-id`"/>\r
+ </execute>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`" />\r
+ <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\r
+ <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+ <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='PUT' />\r
+ <parameter name="responsePrefix" value="mdsal-pmc" />\r
+ <outcome value='success'>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />\r
+ </set>\r
+ <block>\r
+ <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+ + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+ + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+ </set>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="logical-link" \r
+ key="logical-link.link-name = $tmp.link-name" ></delete>\r
+ </block>\r
+ </for>\r
+ <block>\r
+ <set>\r
+ <parameter name='cto-api.default-domain' value='default-domain' />\r
+ <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+ <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+ <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+ <parameter name='cto-api.rollback-flag' value='true' />\r
+ <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+ <set>\r
+ <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+ </set>\r
+ <block>\r
+ <switch test='`$tmp.configuration-sub-type`'>\r
+ <outcome value='vprobe'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+ </outcome>\r
+ </switch>\r
+ <block>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="500" />\r
+ <parameter name="input.response-message" value="`$error-message`" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </execute>\r
+ <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+ <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+ <parameter name="input.ack-final-indicator" value="Y" />\r
+ <parameter name="input.response-code" value="200" />\r
+ <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+ <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+ <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+ </configure>\r
+ <return status='success'>\r
+ <parameter name='error-code' value='200' />\r
+ </return>\r
+ </block>\r
+ </method>\r
+</service-logic>
\ No newline at end of file