--- /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-assign-rollback' mode='sync'>\r
+ <block>\r
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+ <outcome value='1'>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\r
+ <outcome value='true'>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ <outcome value='false'>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+ <outcome value='true'>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+ <outcome value='true'>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload`'>\r
+ <outcome value='false'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.status' value="`'PENDING_DELETE_' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
+ </set>\r
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $vf-module-topology-operation-input.vf-module-information.vf-module-id" ></update>\r
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='true'>\r
+ <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+ <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block>\r
+ <set>\r
+ <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+ <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+ <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+ </set>\r
+ <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+ <block>\r
+ <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag`'>\r
+ <outcome value='true'>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vnfc" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name" ></delete>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+ <block>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag`'>\r
+ <outcome value='true'>\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vf-module:relationship-list"\r
+ key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+ AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ AND related-to = l3-network\r
+ AND l3-network.network-id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id" ></delete>\r
+ </outcome>\r
+ </switch>\r
+ <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+ <block>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\r
+ <outcome value='true'>\r
+ <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vip-ipv4-address-list" \r
+ key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+ AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+ AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" ></delete>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+ <outcome value='true'>\r
+ <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vip-ipv6-address-list" \r
+ key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+ AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+ AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" ></delete>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+ <outcome value=''>\r
+ <block></block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\r
+ == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+ <outcome value='true'>\r
+ <for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\r
+ <set>\r
+ <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\r
+ value='' />\r
+ <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\r
+ value='unassigned' />\r
+ </set>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </method>\r
+</service-logic>
\ No newline at end of file