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-mapping-vprobe.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-mapping-vprobe' mode='sync'>
5         <block atomic="true">
6             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
7   key='select vnics_group_id
8     from VNICS_CAPACITY_GROUP
9     where service_instance_id = $tmp.service-instance-id
10     and nfc_naming_code = $tmp.dest-nfc-naming-code
11     and vnf_id = $tmp.dest-vnf-id'
12   pfx='db'>
13                 <outcome value='failure'>
14                     <return status='failure'>
15                         <parameter name='error-code' value='500' />
16                         <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
17                     </return>
18                 </outcome>
19                 <outcome value='not-found'>
20                     <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
21         key="insert into VNICS_CAPACITY_GROUP 
22           (service_instance_id, nfc_naming_code, vnf_id)
23           VALUES ( $tmp.service-instance-id , $tmp.dest-nfc-naming-code , $tmp.dest-vnf-id )"
24         pfx='pfx' >
25                         <outcome value='failure'>
26                             <return status='failure'>
27                                 <parameter name='error-code' value='500' />
28                                 <parameter name='error-message' value="Failure to insert record into VNICS_CAPACITY_GROUP table" />
29                             </return>
30                         </outcome>
31                         <outcome value='success'>
32                             <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
33   key='select vnics_group_id
34     from VNICS_CAPACITY_GROUP
35     where service_instance_id = $tmp.service-instance-id
36     and nfc_naming_code = $tmp.dest-nfc-naming-code
37     and vnf_id = $tmp.dest-vnf-id'
38   pfx='db'>
39                                 <outcome value='failure'>
40                                     <return status='failure'>
41                                         <parameter name='error-code' value='500' />
42                                         <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
43                                     </return>
44                                 </outcome>
45                             </get-resource>
46                         </outcome>
47                     </save>
48                 </outcome>
49             </get-resource>
50             <set>
51                 <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id'
52   value='`$db.vnics-group-id`' />
53             </set>
54             <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
55                 <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
56                     <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
57   key='select available_capacity, vnic_capacity
58     from VNICS_CAPACITY
59     where vnics_group_id = $db.vnics-group-id
60     and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'
61   pfx='db.vnics-capacity'>
62                         <outcome value='failure'>
63                             <return status='failure'>
64                                 <parameter name='error-code' value='500' />
65                                 <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
66                             </return>
67                         </outcome>
68                         <outcome value='not-found'>
69                             <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
70         key="insert into VNICS_CAPACITY 
71           (vnics_group_id, vnic_port_name, available_capacity, vnic_capacity)
72           VALUES ( $db.vnics-group-id ,
73             $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name ,
74             $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity ,
75             $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity
76             )"
77         pfx='pfx' >
78                                 <outcome value='failure'>
79                                     <return status='failure'>
80                                         <parameter name='error-code' value='500' />
81                                         <parameter name='error-message' value="Failure to insert record into VNICS_CAPACITY table" />
82                                     </return>
83                                 </outcome>
84                             </save>
85                         </outcome>
86                         <outcome value='success'>
87                             <set>
88                                 <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity'
89   value='`$db.vnics-capacity.available-capacity`' />
90                             </set>
91                         </outcome>
92                     </get-resource>
93                 </for>
94             </for>
95             <set>
96                 <parameter name='map-idx' value='0' />
97             </set>
98             <for silentFailure='true' index='vnfc-so-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length`' >
99                 <for silentFailure='true' index='vnic-s-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic_length`' >
100                     <block atomic="true">
101                         <set>
102                             <parameter name='tmp.found-capacity' value='N' />
103                             <parameter name='tmp.save-rem-cap' value='0' />
104                         </set>
105                         <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
106                             <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
107                                 <block atomic="true">
108                                     <set>
109                                         <parameter name='tmp.rem-cap' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity
110   - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
111                                     </set>
112                                     <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].capacity.vnic-capacity
113   &lt;= $tmp.rem-cap`'>
114                                         <outcome value='true'>
115                                             <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`'>
116                                                 <outcome value=''>
117                                                     <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`'>
118                                                         <outcome value=''>
119                                                             <block atomic="true"></block>
120                                                         </outcome>
121                                                         <outcome value='Other'>
122                                                             <switch test='`$tmp.rem-cap &gt; $tmp.save-rem-cap`'>
123                                                                 <outcome value='true'>
124                                                                     <set>
125                                                                         <parameter name='tmp.found-capacity' value='Y' />
126                                                                         <parameter name='tmp.save-vnfc-do-idx' value='`$vnfc-do-idx`' />
127                                                                         <parameter name='tmp.save-vnic-d-idx' value='`$vnic-d-idx`' />
128                                                                         <parameter name='tmp.save-rem-cap' value='`$tmp.rem-cap`' />
129                                                                     </set>
130                                                                 </outcome>
131                                                             </switch>
132                                                         </outcome>
133                                                     </switch>
134                                                 </outcome>
135                                                 <outcome value='Other'>
136                                                     <switch test='`$tmp.rem-cap &gt; $tmp.save-rem-cap`'>
137                                                         <outcome value='true'>
138                                                             <set>
139                                                                 <parameter name='tmp.found-capacity' value='Y' />
140                                                                 <parameter name='tmp.save-vnfc-do-idx' value='`$vnfc-do-idx`' />
141                                                                 <parameter name='tmp.save-vnic-d-idx' value='`$vnic-d-idx`' />
142                                                                 <parameter name='tmp.save-rem-cap' value='`$tmp.rem-cap`' />
143                                                             </set>
144                                                         </outcome>
145                                                     </switch>
146                                                 </outcome>
147                                             </switch>
148                                         </outcome>
149                                     </switch>
150                                 </block>
151                             </for>
152                         </for>
153                         <switch test="`$tmp.found-capacity == 'N'`">
154                             <outcome value='true'>
155                                 <return status='failure'>
156                                     <parameter name='error-code' value='500' />
157                                     <parameter name='error-message' value="`'No capacity for source interface '
158   + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`" />
159                                 </return>
160                             </outcome>
161                         </switch>
162                         <set>
163                             <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity'
164   value='`$tmp.src-pps + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity`' />
165                         </set>
166                         <set>
167                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-id'
168   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`' />
169                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-name'
170   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-name`' />
171                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-vserver-id'
172   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vserver-id`' />
173                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-id'
174   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-id`' />
175                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-name'
176   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-name`' />
177                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-vserver-id'
178   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vserver-id`' />
179                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv4-address'
180   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`' />
181                             <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv6-address'
182   value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`' />
183                         </set>
184                         <set>
185                             <parameter name='map-idx' value='`$map-idx + 1`' />
186                         </set>
187                     </block>
188                 </for>
189             </for>
190             <set>
191                 <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length'
192   value='`$map-idx`' />
193             </set>
194             <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
195                 <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
196                     <block atomic="true">
197                         <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
198   key='select available_capacity
199     from VNICS_CAPACITY
200     where vnics_group_id = $db.vnics-group-id
201     and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'
202   pfx='db.vnics-capacity'>
203                             <outcome value='failure'>
204                                 <return status='failure'>
205                                     <parameter name='ack-final' value='Y'/>
206                                     <parameter name="error-code" value="500" />
207                                     <parameter name="error-message" value="Failure reading VNICS_CAPACITY table" />
208                                 </return>
209                             </outcome>
210                         </get-resource>
211                         <set>
212                             <parameter name='tmp.original-avail-capacity' value='`$db.vnics-capacity.available-capacity`' />
213                             <parameter name='tmp.original-used-capacity' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
214                             <parameter name='tmp.avail-capacity' value='`$db.vnics-capacity.available-capacity - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
215                         </set>
216                         <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
217 key="update VNICS_CAPACITY
218      set available_capacity = $tmp.avail-capacity
219      where vnics_group_id = $db.vnics-group-id
220      and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name
221 " >
222                             <outcome value='failure'>
223                                 <return status='failure'>
224                                     <parameter name='ack-final' value='Y'/>
225                                     <parameter name="error-code" value="500" />
226                                     <parameter name="error-message" value="Failure updating VNICS_CAPACITY table" />
227                                 </return>
228                             </outcome>
229                         </update>
230                     </block>
231                 </for>
232             </for>
233             <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
234         key="insert into VNICS_CONFIGURATION_ID
235         (configuration_id, vnics_group_id)
236         values ( $tmp.configuration-id , $db.vnics-group-id )"
237         pfx='pfx' ></save>
238             <return status='success'>
239                 <parameter name='' value='' />
240             </return>
241         </block>
242     </method>
243 </service-logic>