+++ /dev/null
-<service-logic\r
- xmlns='http://www.onap.org/sdnc/svclogic'\r
- 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
- <method rpc='vf-module-topology-vlan-tagging-activate' mode='sync'>\r
- <block atomic="true">\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="custom-query"\r
- key="format = 'resource&nodesOnly=true'"\r
- force="true"\r
- local-only="false"\r
- pfx="tmp.aai.vnf">\r
- <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $vf-module-topology-operation-input.vnf-information.vnf-id `" />\r
- <parameter name="start_length" value="1" />\r
- <parameter name="query" value="query/cloud-region-fromVnf" />\r
- <outcome value='failure'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf" />\r
- </set>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name="error-message" value="No cloud region returned from AAI: cloud-region-fromVnf" />\r
- </set>\r
- </block>\r
- </outcome>\r
- </save>\r
- <for index='result-idx' start='0' end='`$tmp.aai.vnf.results_length`' >\r
- <block atomic="true">\r
- <switch test='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='tmp.cloud-region-id' value='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </for>\r
- <set>\r
- <parameter name='tmp.vlan-vnfc-instance-groups.'\r
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.`' />\r
- </set>\r
- <for index='vvig-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\r
- <switch test='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='0'>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block atomic="true">\r
- <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`'>\r
- <outcome value=''>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\r
- value='0' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- <set>\r
- <parameter name='parent-port-role'\r
- value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vnic-interface-role`' />\r
- <parameter name='vnfc-instance-group-function'\r
- value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function`' />\r
- <parameter name='network-instance-group-function'\r
- value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`' />\r
- </set>\r
- <set>\r
- <parameter name='vsig-index' value='-1' />\r
- </set>\r
- <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' >\r
- <switch test='`\r
- $parent-port-role == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].parent-port-role\r
- and $vnfc-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].vnfc-instance-group-function\r
- and $network-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].network-instance-group-function\r
-`'>\r
- <outcome value='true'>\r
- <block>\r
- <set>\r
- <parameter name='vsig-index' value='`$idx`' />\r
- </set>\r
- <break/>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test='`$vsig-index`'>\r
- <outcome value='-1'>\r
- <block>\r
- <set>\r
- <parameter name='vsig-index'\r
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' />\r
- </set>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role'\r
- value='`$parent-port-role`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfc-instance-group-function'\r
- value='`$vnfc-instance-group-function`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].network-instance-group-function'\r
- value='`$network-instance-group-function`' />\r
- </set>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\r
- value='`$vsig-index + 1`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </switch>\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="custom-query"\r
- key="format = 'resource'"\r
- force="true"\r
- local-only="false"\r
- pfx="tmp.aai.network">\r
- <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $prop.cloud-region.cloud-owner + '/' + $tmp.cloud-region-id`" />\r
- <parameter name="start_length" value="1" />\r
- <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole=' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value="`'Failed to get network data for network role '\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\r
- </return>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value="`'Failed to get network data for network role '\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\r
- </return>\r
- </outcome>\r
- </save>\r
- <set>\r
- <parameter name='network-name' value='`$tmp.aai.network.results[0].l3-network.network-name`' />\r
- </set>\r
- <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`'>\r
- <outcome value=''>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\r
- value='0' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- <set>\r
- <parameter name='dest-vnfc-index'\r
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`' />\r
- </set>\r
- <for index='src-vnfc-index' start='0'\r
- end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
- <block atomic="true">\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnfc-name'\r
- value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`' />\r
- </set>\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="custom-query"\r
- key="format = 'resource'"\r
- force="true"\r
- local-only="false"\r
- pfx="tmp.aai.interfaces">\r
- <parameter name="start[0]" value="`'/network/vnfcs/vnfc/' + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`" />\r
- <parameter name="start_length" value="1" />\r
- <parameter name="query" value="`'/query/vserver-l-interfaces-fromVnfc?networkName=' + $network-name`" />\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500' />\r
- <parameter name='error-message' value="`'Failed to get interface data for network name '\r
- + $network-name\r
- + ' and vnfc '\r
- + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`" />\r
- </return>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block></block>\r
- </outcome>\r
- <outcome value='success'>\r
- <block>\r
- <for silentFailure='true' index='idx1' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
- <switch test='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <block>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-id'\r
- value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-name'\r
- value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-name`' />\r
- </set>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic_length'\r
- value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' />\r
- </set>\r
- <for silentFailure='true' index='int-index' start='0'\r
- end='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' >\r
- <block>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-id'\r
- value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-name'\r
- value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-name`' />\r
- </set>\r
- <for silentFailure='true' index='idx2' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
- <switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.interface-id\r
- == $tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`'>\r
- <outcome value='true'>\r
- <block>\r
- <switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface_length'\r
- value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- <for silentFailure='true' index='sub-int-index' start='0'\r
- end='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' >\r
- <block>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-id'\r
- value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-name'\r
- value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-name`' />\r
- </set>\r
- <for silentFailure='true' index='idx3' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
- <switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.interface-id\r
- == $tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`'>\r
- <outcome value='true'>\r
- <switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <for silentFailure='true' index='idx4' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
- <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-interface\r
- == $tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\r
- <outcome value='true'>\r
- <block>\r
- <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.upper-tag-id'\r
- value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`'>\r
- <outcome value=''>\r
- <block></block>\r
- </outcome>\r
- <outcome value='Other'>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.lower-tag-id'\r
- value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </for>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </for>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <set>\r
- <parameter name='dest-vnfc-index' value='`$dest-vnfc-index + 1`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </save>\r
- </block>\r
- </for>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\r
- value='`$dest-vnfc-index`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <return status='success'>\r
- <parameter name='' value='' />\r
- </return>\r
- </block>\r
- </method>\r
-</service-logic>
\ No newline at end of file