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-enable.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-enable' 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             <set>
48                 <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
49             </set>
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'`" />
55                     </return>
56                 </outcome>
57             </switch>
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'>
62                         <block atomic="true">
63                             <set>
64                                 <parameter name='src-idx' value='`$idx`' />
65                             </set>
66                             <break/>
67                         </block>
68                     </outcome>
69                 </switch>
70             </for>
71             <switch test='`$src-idx`'>
72                 <outcome value=''>
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'`" />
76                     </return>
77                 </outcome>
78             </switch>
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'>
81                     <set>
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`' />
84                     </set>
85                 </outcome>
86                 <outcome value=''>
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'>
89                             <set>
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`' />
92                             </set>
93                         </outcome>
94                         <outcome value=''>
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'>
97                                     <set>
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`' />
100                                     </set>
101                                 </outcome>
102                                 <outcome value=''>
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'>
105                                             <set>
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`' />
108                                             </set>
109                                         </outcome>
110                                         <outcome value=''>
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`" />
114                                             </return>
115                                         </outcome>
116                                     </switch>
117                                 </outcome>
118                             </switch>
119                         </outcome>
120                     </switch>
121                 </outcome>
122             </switch>
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'>
150                             <set>
151                                 <parameter name='contrail-set[$src-idx]' value='true' />
152                             </set>
153                         </outcome>
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 `" />
158                             </return>
159                         </outcome>
160                     </execute>
161                 </outcome>
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'>
190                             <set>
191                                 <parameter name='contrail-set[$src-idx]' value='true' />
192                             </set>
193                         </outcome>
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 `" />
198                             </return>
199                         </outcome>
200                     </execute>
201                 </outcome>
202             </switch>
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`" />
216                     </return>
217                 </outcome>
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`" />
222                     </return>
223                 </outcome>
224             </update>
225             <return status='success'>
226                 <parameter name='error-code' value='200' />
227                 <parameter name='ack-final' value='Y' />
228             </return>
229         </block>
230     </method>
231 </service-logic>