2 xmlns='http://www.onap.org/sdnc/svclogic'
\r
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}'>
\r
4 <method rpc='assign-vlan-tags' mode='sync'>
\r
5 <block atomic="true">
\r
7 <parameter name='tmp.vlan-vnics.' value='' />
\r
10 <parameter name='tmp.vlan-vnics.'
\r
11 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.`' />
\r
14 <parameter name='total-subs' value='`$get-data-from-policy-output.precreate-sub-intf-num`' />
\r
16 <switch test='`$total-subs > ( $tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf )`'>
\r
17 <outcome value='true'>
\r
19 <parameter name='total-subs' value='`$tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf`' />
\r
24 <parameter name='cur-tag-id' value='`$get-data-from-policy-output.vlan-tag-start + $get-data-from-policy-output.vlan-tag-offset`' />
\r
27 <parameter name='sub-index' value='0' />
\r
28 <parameter name='vnic-index' value='0' />
\r
30 <while test='`$total-subs > 0`'>
\r
31 <block atomic="true">
\r
33 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id'
\r
34 value='`$cur-tag-id`' />
\r
37 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length'
\r
38 value='`$sub-index + 1`' />
\r
41 <parameter name='cur-tag-id' value='`$cur-tag-id + 1`' />
\r
44 <parameter name='vnic-index' value='`$vnic-index + 1`' />
\r
46 <switch test='`$vnic-index == $tmp.vlan-vnics.vlan-vnic_length`'>
\r
47 <outcome value='true'>
\r
50 <parameter name='vnic-index' value='0' />
\r
53 <parameter name='sub-index' value='`$sub-index + 1`' />
\r
59 <parameter name='total-subs' value='`$total-subs - 1`' />
\r
63 <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
\r
64 resource="instance-groups"
\r
65 key="instance-group.instance-group-function = $db.group-uuids[$group-index].network-collection-function
\r
66 AND instance-group.instance-group-type = 'L3-NETWORK'"
\r
67 pfx='aai.instance-group' local-only='false' >
\r
68 <outcome value='not-found'>
\r
69 <return status='failure'>
\r
70 <parameter name='ack-final' value='Y'/>
\r
71 <parameter name="error-code" value="500" />
\r
72 <parameter name="error-message"
\r
73 value="`'Unable to find AAI instance-group for instance-group-function '
\r
74 + $db.group-uuids[$group-index].network-collection-function
\r
75 + ' and instance-group-type L3-NETWORK'`" />
\r
78 <outcome value='failure'>
\r
79 <return status='failure'>
\r
80 <parameter name='ack-final' value='Y'/>
\r
81 <parameter name="error-code" value="500" />
\r
82 <parameter name="error-message"
\r
83 value="`'System error getting AAI instance-group for instance-group-function '
\r
84 + $db.group-uuids[$group-index].network-collection-function
\r
85 + ' and instance-group-type L3-NETWORK'`" />
\r
90 <parameter name='found-instance-group' value='false' />
\r
92 <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >
\r
93 <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >
\r
94 <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >
\r
95 <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key
\r
96 == 'service-instance.service-instance-id'`">
\r
97 <outcome value='true'>
\r
98 <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value
\r
99 == $service-data.service-information.service-instance-id`'>
\r
100 <outcome value='true'>
\r
103 <parameter name='found-instance-group' value='true' />
\r
106 <parameter name='aai-ig-index' value='`$ig-index`' />
\r
117 <switch test='`$found-instance-group`'>
\r
118 <outcome value='false'>
\r
119 <return status='failure'>
\r
120 <parameter name='ack-final' value='Y'/>
\r
121 <parameter name="error-code" value="500" />
\r
122 <parameter name="error-message"
\r
123 value="`'Unable to find AAI instance-group for instance-group-function '
\r
124 + $db.group-uuids[$group-index].vfc-instance-group-function
\r
125 + ' and instance-group-type VNFC'`" />
\r
130 <parameter name='network-instance-group-id' value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />
\r
131 <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id'
\r
132 value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />
\r
135 <parameter name='network-instance-group-index' value='-1' />
\r
137 <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >
\r
138 <switch test='`$network-instance-group-id
\r
139 == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>
\r
140 <outcome value='true'>
\r
143 <parameter name='network-instance-group-index' value='`$nig-index`' />
\r
150 <switch test='`$network-instance-group-index`'>
\r
151 <outcome value='-1'>
\r
152 <return status='failure'>
\r
153 <parameter name='error-code' value='500' />
\r
154 <parameter name='error-message' value="`'Unable to find network instance group ID '
\r
155 + $network-instance-group-id
\r
156 + ' in network-instance-groups'`" />
\r
160 <for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >
\r
161 <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >
\r
162 <block atomic="true">
\r
164 <parameter name='network-index' value='-1' />
\r
165 <parameter name='unassigned-network-index' value='-1' />
\r
167 <for index='n-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network_length`' >
\r
168 <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id
\r
169 == $service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].vlan-tag-id`'>
\r
170 <outcome value='true'>
\r
173 <parameter name='network-index' value='`$n-index`' />
\r
178 <outcome value='false'>
\r
179 <switch test="`$unassigned-network-index`">
\r
180 <outcome value='-1'>
\r
181 <switch test='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].network-status`'>
\r
182 <outcome value='unassigned'>
\r
184 <parameter name='unassigned-network-index' value='`$n-index`' />
\r
193 <switch test='`$network-index`'>
\r
194 <outcome value='-1'>
\r
195 <switch test='`$unassigned-network-index`'>
\r
196 <outcome value='-1'>
\r
197 <return status='failure'>
\r
198 <parameter name='error-code' value='500' />
\r
199 <parameter name='error-message' value="L3-network not found" />
\r
202 <outcome value='Other'>
\r
205 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'
\r
206 value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-id`' />
\r
209 <parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].vlan-tag-id'
\r
210 value='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id`' />
\r
211 <parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-status'
\r
212 value='assigned' />
\r
218 <outcome value='Other'>
\r
220 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'
\r
221 value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$network-index].network-id`' />
\r
228 <for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >
\r
229 <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >
\r
230 <block atomic="true">
\r
231 <for index='n-index' start='0' end='`$service-data.networks.network_length`' >
\r
232 <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id
\r
233 == $service-data.networks.network[$n-index].network-id`'>
\r
234 <outcome value='true'>
\r
237 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name'
\r
238 value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-name`' />
\r
239 <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-role'
\r
240 value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-role`' />
\r
250 <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name`'>
\r
252 <return status='failure'>
\r
253 <parameter name='error-code' value='500' />
\r
254 <parameter name='error-message' value="`'Failed to find a network name for network id '
\r
255 + $service-data.networks.network[$n-index].network-id`" />
\r
260 <parameter name='found-collection' value='false' />
\r
262 <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length`' >
\r
263 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$idx].network-instance-group-function
\r
264 == $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>
\r
265 <outcome value='true'>
\r
268 <parameter name='found-collection' value='true' />
\r
271 <parameter name='vnc-index' value='`$idx`' />
\r
278 <switch test='`$found-collection`'>
\r
279 <outcome value='false'>
\r
280 <return status='failure'>
\r
281 <parameter name='error-code' value='500' />
\r
282 <parameter name='error-message' value="`'Unable to find vnf-network-collection for network-instance-group-function '
\r
283 + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`" />
\r
288 <parameter name='found-network-instance-group' value='false' />
\r
290 <for index='idx' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >
\r
291 <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id
\r
292 == $service-data.network-instance-groups.network-instance-group[$idx].network-instance-group-id`'>
\r
293 <outcome value='true'>
\r
296 <parameter name='found-network-instance-group' value='true' />
\r
299 <parameter name='nig-index' value='`$idx`' />
\r
306 <switch test='`$found-network-instance-group`'>
\r
307 <outcome value='false'>
\r
308 <return status='failure'>
\r
309 <parameter name='error-code' value='500' />
\r
310 <parameter name='error-message' value="`'Unable to find network-instance-group for network-instance-group-id '
\r
311 + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`" />
\r
315 <for silentFailure='true' index='subnet-index' start='0'
\r
316 end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >
\r
317 <switch test='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`'>
\r
318 <outcome value='ipv4'>
\r
320 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address`'>
\r
324 <parameter name='tmp.vt-ip.network-instance-group-id'
\r
325 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />
\r
326 <parameter name='tmp.vt-ip.network-instance-group-function'
\r
327 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />
\r
328 <parameter name='tmp.vt-ip.nf-role'
\r
329 value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />
\r
330 <parameter name='tmp.vt-ip.vm-type'
\r
331 value='`$db.group-uuids[$group-index].vm-type`' />
\r
332 <parameter name='tmp.vt-ip.vnfc-name'
\r
333 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />
\r
334 <parameter name='tmp.vt-ip.type'
\r
336 <parameter name='tmp.vt-ip.vf-module-id'
\r
337 value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />
\r
338 <parameter name='tmp.vt-ip.ip-version'
\r
340 <parameter name='tmp.vt-ip.network-id'
\r
341 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />
\r
343 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >
\r
344 <outcome value='failure'>
\r
345 <return status='failure'></return>
\r
349 <parameter name='eipam-ip-block.plans_length' value='2' />
\r
350 <parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />
\r
351 <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />
\r
352 <parameter name='eipam-ip-block.plans[0].requests[0].client-key'
\r
353 value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />
\r
354 <parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />
\r
355 <parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value="`'34.52.87.1' + $counter`" />
\r
356 <parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />
\r
359 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address'
\r
360 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />
\r
365 <for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >
\r
366 <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >
\r
368 <parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v4'
\r
369 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />
\r
375 <outcome value='ipv6'>
\r
377 <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address`'>
\r
381 <parameter name='tmp.vt-ip.network-instance-group-id'
\r
382 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />
\r
383 <parameter name='tmp.vt-ip.network-instance-group-function'
\r
384 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />
\r
385 <parameter name='tmp.vt-ip.nf-role'
\r
386 value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />
\r
387 <parameter name='tmp.vt-ip.vm-type'
\r
388 value='`$db.group-uuids[$group-index].vm-type`' />
\r
389 <parameter name='tmp.vt-ip.vnfc-name'
\r
390 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />
\r
391 <parameter name='tmp.vt-ip.type'
\r
393 <parameter name='tmp.vt-ip.vf-module-id'
\r
394 value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />
\r
395 <parameter name='tmp.vt-ip.ip-version'
\r
397 <parameter name='tmp.vt-ip.network-id'
\r
398 value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />
\r
400 <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >
\r
401 <outcome value='failure'>
\r
402 <return status='failure'></return>
\r
406 <parameter name='eipam-ip-block.plans_length' value='2' />
\r
407 <parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />
\r
408 <parameter name='eipam-ip-block.plans[0].requests_length' value='6' />
\r
409 <parameter name='eipam-ip-block.plans[0].requests[0].client-key'
\r
410 value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />
\r
411 <parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />
\r
412 <parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value="`'cafe:1111' + $counter`" />
\r
413 <parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='6' />
\r
416 <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address'
\r
417 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />
\r
422 <for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >
\r
423 <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >
\r
425 <parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v6'
\r
426 value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />
\r
435 <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.'
\r
436 value='`$tmp.vlan-vnics.`' />
\r
438 <return status='success'></return>
\r