--- /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='rollback-generated-names' mode='sync'>\r
+ <block atomic="true">\r
+ <switch test='`$rollback-generated-names-input.context-id`'>\r
+ <outcome value=''>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="rollback-generated-names-input.context-id can not be null" />\r
+ </return>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$rollback-generated-names-input.naming-type`'>\r
+ <outcome value=''>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="rollback-generated-names-input.naming-type can not be null" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='VM_INSTANCE'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VM_NAME_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vm_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='VNFC_INSTANCE'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VNFC_NAME_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnfc_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='CLIENT_KEY'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnf_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='NETWORK_INSTANCE'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' \r
+ value='NETWORK_INSTANCE_NAME_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+ value='network_instance_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='SERVICE_INSTANCE'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' \r
+ value='SERVICE_INSTANCE_NAME_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+ value='service_instance_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='VNF_INSTANCE'>\r
+ <set>\r
+ <parameter name='rollback-generated-names.index-table-name' value='VNF_NAME_INDEX' />\r
+ <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+ value='vnf_name_prefix' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`'Unknown rollbck-generated-name-input.naming-type: ' + $rollback-generated-names-input.naming-type`" />\r
+ </return>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='db.grn.' value='' />\r
+ </set>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='SELECT distinct prefix from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type \r
+ AND context_id = $rollback-generated-names-input.context-id'\r
+ pfx='db.grn.distinct-prefix[]'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500'/>\r
+ <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table to retrieve distinct prefix"/>\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <set>\r
+ <parameter name='db.grn.distinct-prefix_length' value='0' />\r
+ </set>\r
+ </outcome>\r
+ </get-resource>\r
+ <for index='prefix-index' start='0' end='`$db.grn.distinct-prefix_length`' >\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='db.grn.subset.' value='' />\r
+ </set>\r
+ <set>\r
+ <parameter name='tmp.rb.' value='' />\r
+ </set>\r
+ <set>\r
+ <parameter name='tmp.rb.grn.prefix' value='`$db.grn.distinct-prefix[$prefix-index].prefix`' />\r
+ </set>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type \r
+ AND context_id = $rollback-generated-names-input.context-id \r
+ AND prefix = $tmp.rb.grn.prefix order by name_index'\r
+ pfx='db.grn.subset[]'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500'/>\r
+ <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\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="`'No entry found in GENERIC_RESOURCE_NAME where context_id = ' + $rollback-generated-names-input.context-id + ' and type = ' + $rollback-generated-names-input.naming-type + ' and prefix = ' + $db.grn.distinct-prefix[$prefix-index].prefix`"/>\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='tmp.rb.sql' \r
+ value="`'SELECT * from ' + $rollback-generated-names.index-table-name \r
+ + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+ + ' = $tmp.rb.grn.prefix'`" />\r
+ </set>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key="`$tmp.rb.sql`" pfx='db.grn.index-table'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error reading the '\r
+ + $rollback-generated-names.index-table-name \r
+ + ' table with ' + $rollback-generated-names.name-prefix-column\r
+ + ' = ' + $tmp.rb.grn.prefix \r
+ + '. MANUAL clean up is required!'`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'No entries found in ' \r
+ + $rollback-generated-names.index-table-name \r
+ + ' with ' \r
+ + $rollback-generated-names.name-prefix-column \r
+ + ' = ' \r
+ + $tmp.rb.grn.prefix `" />\r
+ </return>\r
+ </outcome>\r
+ </get-resource>\r
+ </block>\r
+ <set>\r
+ <parameter name='tmp.rb.grn.max-index' \r
+ value='`$db.grn.subset[$db.grn.subset_length - 1].name-index`' />\r
+ </set>\r
+ <set>\r
+ <parameter name='tmp.rb.delta-index' \r
+ value='`$db.grn.index-table.index-number - $tmp.rb.grn.max-index`' />\r
+ </set>\r
+ <set>\r
+ <parameter name='tmp.rb.net-index' \r
+ value='`$db.grn.index-table.index-number - $db.grn.subset_length`' />\r
+ </set>\r
+ <switch test="`$tmp.rb.delta-index == 0`">\r
+ <outcome value='true'>\r
+ <switch test="`$tmp.rb.net-index == 0`">\r
+ <outcome value='true'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='tmp.rb.sql' \r
+ value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
+ + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+ + ' = $tmp.rb.grn.prefix'`" />\r
+ <!--\r
++ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
+-->\r
+ </set>\r
+ <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key="`$tmp.rb.sql`">\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error deleting '\r
+ + $rollback-generated-names.index-table-name \r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix \r
+ + ' AND index_number = ' + $db.index-table.index-number\r
+ + '. MANUAL clean up is required!'`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block></block>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='false'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='tmp.rb.sql' \r
+ value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
+ + ' set index_number = ' + $tmp.rb.net-index\r
+ + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+ + ' = $tmp.rb.grn.prefix'`" />\r
+ </set>\r
+ <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key="`$tmp.rb.sql`">\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error updating '\r
+ + $rollback-generated-names.index-table-name + '.index_number = ' \r
+ + $tmp.rb.net-index\r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix\r
+ + '. MANUAL clean up is required!'`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error updating '\r
+ + $rollback-generated-names.index-table-name + '.index_number = ' \r
+ + $tmp.rb.net-index\r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix\r
+ + '. MANUAL clean up is required!'`" />\r
+ </return>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ <outcome value='false'>\r
+ <block></block>\r
+ </outcome>\r
+ </switch>\r
+ <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='DELETE from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type \r
+ AND context_id = $rollback-generated-names-input.context-id \r
+ AND prefix = $tmp.rb.grn.prefix'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error deleting GENERIC_RESOURCE_NAME WHERE type = '\r
+ + $rollback-generated-names-input.naming-type \r
+ + ' AND context_id = ' + $rollback-generated-names-input.context-id \r
+ + ' AND prefix = '+ $tmp.rb.grn.prefix\r
+ + '. MANUAL clean up is required!'`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block></block>\r
+ </outcome>\r
+ </delete>\r
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type \r
+ AND prefix = $tmp.rb.grn.prefix order by name_index'\r
+ pfx='db.grn.prefix[]'>\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-code' value='500'/>\r
+ <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.rb.sql' \r
+ value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
+ + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+ + ' = $tmp.rb.grn.prefix'`" />\r
+ <!--\r
++ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
+-->\r
+ </set>\r
+ <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key="`$tmp.rb.sql`">\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error deleting '\r
+ + $rollback-generated-names.index-table-name \r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix \r
+ + ' AND index_number = ' + $db.index-table.index-number`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block></block>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.rb.grn.last-max-index' \r
+ value='`$db.grn.prefix[$db.grn.prefix_length - 1].name-index`' />\r
+ </set>\r
+ <switch test="`$tmp.rb.net-index > $tmp.rb.grn.last-max-index`">\r
+ <outcome value='true'>\r
+ <block>\r
+ <set>\r
+ <parameter name='tmp.rb.sql' \r
+ value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
+ + ' set index_number = ' + $tmp.rb.grn.last-max-index\r
+ + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+ + ' = $tmp.rb.grn.prefix'`" />\r
+ </set>\r
+ <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+ key="`$tmp.rb.sql`">\r
+ <outcome value='failure'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error updating '\r
+ + $rollback-generated-names.index-table-name + '.index_number = ' \r
+ + $tmp.rb.grn.last-max-index\r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix`" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <return status='failure'>\r
+ <parameter name='error-message' value="`'Error updating '\r
+ + $rollback-generated-names.index-table-name + '.index_number = ' \r
+ + $tmp.rb.grn.last-max-index\r
+ + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+ + ' = ' + $tmp.rb.grn.prefix`" />\r
+ </return>\r
+ </outcome>\r
+ </update>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ </get-resource>\r
+ </block>\r
+ </for>\r
+ </block>\r
+ </method>\r
+</service-logic>
\ No newline at end of file