remove PLC.Debug.log, use PLC.Logger.logger instead
[plcapi.git] / tools / dzombie.py
index 6ccc58a..2095c96 100755 (executable)
@@ -37,8 +37,11 @@ try:
                line = lines[index].strip()
                 # find all created objects
                 if line.startswith("CREATE"):
-                        item_type = line.split(" ")[1].strip()
-                        item_name = line.split(" ")[2].strip()
+                       line_parts = line.split(" ")
+                       if line_parts[1:3] == ['OR', 'REPLACE']:
+                               line_parts = line_parts[2:]
+                       item_type = line_parts[1].strip()
+                       item_name = line_parts[2].strip()
                        if item_type.upper() in ['TABLE']:
                                while index < len(lines):
                                        index = index + 1
@@ -72,7 +75,7 @@ try:
        
                # do not delete from primary tables
                if foreign_key_parts[0] in ['addresses', 'boot_states', 'conf_files', \
-                       'keys', 'messages', 'nodegroups', 'nodenetworks', 'nodes', 'pcus', 'peers' \
+                       'keys', 'messages', 'nodegroups', 'interfaces', 'nodes', 'pcus', 'peers' \
                         'persons', 'roles', 'sessions', 'sites', 'slices']:
                        #print "skipping table %s" % foreign_key_parts[0] 
                        continue
@@ -108,7 +111,7 @@ try:
                # delete these zombie records
                if zombie_keys_list:
                        print " -> Deleting %d zombie record(s) from %s after checking %s" % \
-                                       (len(zombie_keys_list), foreign_key[0], primary_key[0])
+                                       (len(zombie_keys_list), foreign_key_parts[0], primary_key_parts[0])
                        sql_delete = 'DELETE FROM %s WHERE %s IN %s' % \
                        (foreign_key_parts[0], foreign_key_parts[1], tuple(zombie_keys_list))
                        cursor.execute(sql_delete)