Generic resource API DG catch up
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml
new file mode 100755 (executable)
index 0000000..42c29a7
--- /dev/null
@@ -0,0 +1,313 @@
+<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&amp;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