2 xmlns='http://www.onap.org/sdnc/svclogic'
3 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
4 <method rpc='port-mirror-topology-operation-disable' mode='sync'>
7 <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
9 <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
10 <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
11 <parameter name='contextPrefix' value='prop' />
13 <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
14 <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
15 <parameter name="outputPath" value="tmp.pmc-url"/>
16 <parameter name="target" value="{configuration-id}"/>
17 <parameter name="replacement" value="`$tmp.configuration-id`"/>
19 <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
20 <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
21 <parameter name='restapiUser' value='`$prop.controller.user`' />
22 <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
23 <parameter name='format' value='json' />
24 <parameter name='httpMethod' value='GET' />
25 <parameter name="responsePrefix" value="pm-mdsal" />
26 <outcome value='success'>
27 <switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>
28 <outcome value='false'>
29 <return status='failure'>
30 <parameter name='error-code' value='500' />
31 <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
36 <outcome value='Other'>
37 <return status='failure'>
38 <parameter name='error-code' value='500' />
39 <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
44 <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
45 <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
47 <switch test="`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`">
48 <outcome value='false'>
49 <return status='failure'>
50 <parameter name='error-code' value='500' />
51 <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`" />
55 <for index='idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
56 <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$idx].source-port-id
57 == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>
58 <outcome value='true'>
61 <parameter name='src-idx' value='`$idx`' />
68 <switch test='`$src-idx`'>
70 <return status='failure'>
71 <parameter name='error-code' value='500' />
72 <parameter name='error-message' value="`'Unable to find source port ' + $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id + ' in MD-SAL'`" />
76 <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>
77 <outcome value='Other'>
79 <parameter name='tmp.analyzer.ip-address'
80 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />
84 <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>
85 <outcome value='Other'>
87 <parameter name='tmp.analyzer.ip-address'
88 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />
92 <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>
93 <outcome value='Other'>
95 <parameter name='tmp.analyzer.ip-address'
96 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />
100 <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>
101 <outcome value='Other'>
103 <parameter name='tmp.analyzer.ip-address'
104 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />
108 <return status='failure'>
109 <parameter name='error-code' value='500' />
110 <parameter name='error-message' value="`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
120 <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
121 <parameter name='api-name' value='port-mirroring' />
122 <parameter name='api-action' value='disable' />
123 <parameter name='resp-prefix' value='contrailResp' />
124 <parameter name='display-name'
125 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`' />
126 <parameter name='contrail-virtual-machine-interface-name'
127 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`' />
128 <parameter name='contrail-virtual-machine-interface-id'
129 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
130 <parameter name='default-domain' value='default-domain' />
131 <parameter name='default-project'
132 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
133 <parameter name='traffic-direction' value='both' />
134 <parameter name='analyzer-ip-address'
135 value='`$tmp.analyzer.ip-address`' />
136 <parameter name='udp-port' value='8099' />
137 <parameter name='routing-instance'
138 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
139 <parameter name='local-preference' value='1' />
140 <parameter name='cloud-region-id'
141 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
142 <parameter name='cloud-owner'
143 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
144 <outcome value='success'>
146 <parameter name='contrail-set[$src-idx]' value='true' />
149 <outcome value='failure'>
150 <return status='failure'>
151 <parameter name='error-code' value='500' />
152 <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
156 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
157 resource="l-interface"
158 key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
159 AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
160 AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
161 AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
162 AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
163 force="true" pfx="tmp.AnAI-data">
164 <parameter name="is-port-mirrored" value="false" />
165 <outcome value='not-found'>
166 <return status='failure'>
167 <parameter name='error-code' value='500' />
168 <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
171 <outcome value='failure'>
172 <return status='failure'>
173 <parameter name='error-code' value='500' />
174 <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
178 <return status='success'>
179 <parameter name='error-code' value='200' />
180 <parameter name='ack-final' value='Y' />