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-enable' 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.`' />
48 <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
50 <switch test="`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`">
51 <outcome value='false'>
52 <return status='failure'>
53 <parameter name='error-code' value='500' />
54 <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'`" />
58 <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`' >
59 <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
60 == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>
61 <outcome value='true'>
64 <parameter name='src-idx' value='`$idx`' />
71 <switch test='`$src-idx`'>
73 <return status='failure'>
74 <parameter name='error-code' value='500' />
75 <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'`" />
79 <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`'>
80 <outcome value='Other'>
82 <parameter name='tmp.analyzer.ip-address'
83 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`' />
87 <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`'>
88 <outcome value='Other'>
90 <parameter name='tmp.analyzer.ip-address'
91 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`' />
95 <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`'>
96 <outcome value='Other'>
98 <parameter name='tmp.analyzer.ip-address'
99 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`' />
103 <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`'>
104 <outcome value='Other'>
106 <parameter name='tmp.analyzer.ip-address'
107 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`' />
111 <return status='failure'>
112 <parameter name='error-code' value='500' />
113 <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`" />
123 <switch test='`$tmp.configuration-sub-type`'>
124 <outcome value='vprobe'>
125 <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
126 <parameter name='api-name' value='port-mirroring' />
127 <parameter name='api-action' value='enable' />
128 <parameter name='resp-prefix' value='contrailResp' />
129 <parameter name='display-name'
130 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`' />
131 <parameter name='contrail-virtual-machine-interface-name'
132 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`' />
133 <parameter name='contrail-virtual-machine-interface-id'
134 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`' />
135 <parameter name='default-domain' value='default-domain' />
136 <parameter name='default-project'
137 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
138 <parameter name='traffic-direction' value='both' />
139 <parameter name='analyzer-ip-address'
140 value='`$tmp.analyzer.ip-address`' />
141 <parameter name='udp-port' value='8099' />
142 <parameter name='routing-instance'
143 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
144 <parameter name='local-preference' value='1' />
145 <parameter name='cloud-region-id'
146 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
147 <parameter name='cloud-owner'
148 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
149 <outcome value='success'>
151 <parameter name='contrail-set[$src-idx]' value='true' />
154 <outcome value='failure'>
155 <return status='failure'>
156 <parameter name='error-code' value='500' />
157 <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
162 <outcome value='pprobe'>
163 <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
164 <parameter name='api-name' value='port-mirroring' />
165 <parameter name='api-action' value='enable' />
166 <parameter name='resp-prefix' value='contrailResp' />
167 <parameter name='display-name'
168 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`' />
169 <parameter name='contrail-virtual-machine-interface-name'
170 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`' />
171 <parameter name='contrail-virtual-machine-interface-id'
172 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`' />
173 <parameter name='default-domain' value='default-domain' />
174 <parameter name='default-project'
175 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
176 <parameter name='traffic-direction' value='both' />
177 <parameter name='analyzer-ip-address'
178 value='`$tmp.analyzer.ip-address`' />
179 <parameter name='vni' value='1000' />
180 <parameter name='udp-port' value='8099' />
181 <parameter name='routing-instance'
182 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
183 <parameter name='local-preference' value='1' />
184 <parameter name='juniper-header' value='false' />
185 <parameter name='cloud-region-id'
186 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
187 <parameter name='cloud-owner'
188 value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
189 <outcome value='success'>
191 <parameter name='contrail-set[$src-idx]' value='true' />
194 <outcome value='failure'>
195 <return status='failure'>
196 <parameter name='error-code' value='500' />
197 <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
203 <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
204 resource="l-interface"
205 key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
206 AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
207 AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
208 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
209 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"
210 force="true" pfx="tmp.AnAI-data">
211 <parameter name="is-port-mirrored" value="true" />
212 <outcome value='not-found'>
213 <return status='failure'>
214 <parameter name='error-code' value='500' />
215 <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`" />
218 <outcome value='failure'>
219 <return status='failure'>
220 <parameter name='error-code' value='500' />
221 <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`" />
225 <return status='success'>
226 <parameter name='error-code' value='200' />
227 <parameter name='ack-final' value='Y' />