Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.xml
1 <service-logic
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'>
5         <block atomic="true">
6             <set>
7                 <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
8             </set>
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' />
12             </execute>
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`"/>
18             </execute>
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`" />
32                             </return>
33                         </outcome>
34                     </switch>
35                 </outcome>
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`" />
40                     </return>
41                 </outcome>
42             </execute>
43             <set>
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.`' />
46             </set>
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'`" />
52                     </return>
53                 </outcome>
54             </switch>
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'>
59                         <block atomic="true">
60                             <set>
61                                 <parameter name='src-idx' value='`$idx`' />
62                             </set>
63                             <break/>
64                         </block>
65                     </outcome>
66                 </switch>
67             </for>
68             <switch test='`$src-idx`'>
69                 <outcome value=''>
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'`" />
73                     </return>
74                 </outcome>
75             </switch>
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'>
78                     <set>
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`' />
81                     </set>
82                 </outcome>
83                 <outcome value=''>
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'>
86                             <set>
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`' />
89                             </set>
90                         </outcome>
91                         <outcome value=''>
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'>
94                                     <set>
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`' />
97                                     </set>
98                                 </outcome>
99                                 <outcome value=''>
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'>
102                                             <set>
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`' />
105                                             </set>
106                                         </outcome>
107                                         <outcome value=''>
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`" />
111                                             </return>
112                                         </outcome>
113                                     </switch>
114                                 </outcome>
115                             </switch>
116                         </outcome>
117                     </switch>
118                 </outcome>
119             </switch>
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'>
145                     <set>
146                         <parameter name='contrail-set[$src-idx]' value='true' />
147                     </set>
148                 </outcome>
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 `" />
153                     </return>
154                 </outcome>
155             </execute>
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`" />
169                     </return>
170                 </outcome>
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`" />
175                     </return>
176                 </outcome>
177             </update>
178             <return status='success'>
179                 <parameter name='error-code' value='200' />
180                 <parameter name='ack-final' value='Y' />
181             </return>
182         </block>
183     </method>
184 </service-logic>