From 92e643f425870163df147f1ab42eea40cec624d4 Mon Sep 17 00:00:00 2001 From: Damien De Paoli Date: Sat, 25 Sep 2021 13:13:35 +1000 Subject: [PATCH] actually call RemoveDirFromDB when deleting a missing dir, I really screwed this - didnt test properly until now. Should all work finally --- pa_job_manager.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pa_job_manager.py b/pa_job_manager.py index 34ed94e..3a51f5f 100644 --- a/pa_job_manager.py +++ b/pa_job_manager.py @@ -903,10 +903,11 @@ def RemoveFileFromDB(job, del_me): session.query(Face).filter(Face.id==ffl.face_id).delete() session.query(File).filter(File.eid==del_me.id).delete() session.query(Entry).filter(Entry.id==del_me.id).delete() - AddLogForJob( job, f"INFO: Removing {del_me.name} from system as it is no longer on the file system") + AddLogForJob( job, f"INFO: Removing file: {del_me.name} from system as it is no longer on the file system") CleanUpDirInDB(job, parent_dir_e) return + #################################################################################################################################### # Function that restores a file that was deleted (moved into the Bin) # it moves file on the filesystem back to its original path and then changes the database path from the Bin path @@ -1045,10 +1046,12 @@ def MoveFileToNewFolderInStorage(job,move_me, dst_storage_path, dst_rel_path): #################################################################################################################################### # Convenience function to remove a dir from the database - and its associated links #################################################################################################################################### -def RemoveDirFromDB(id): - session.query(EntryDirLink).filter(EntryDirLink.entry_id==id).delete() - session.query(Dir).filter(Dir.eid==id).delete() - session.query(Entry).filter(Entry.id==id).delete() +def RemoveDirFromDB(job, del_me): + session.query(PathDirLink).filter(PathDirLink.dir_eid==del_me.id).delete() + session.query(EntryDirLink).filter(EntryDirLink.entry_id==del_me.id).delete() + session.query(Dir).filter(Dir.eid==del_me.id).delete() + session.query(Entry).filter(Entry.id==del_me.id).delete() + AddLogForJob( job, f"INFO: Removing dir: id={del_me.name} from system as it is no longer on the file system") return #################################################################################################################################### @@ -1065,7 +1068,7 @@ def HandleAnyFSDeletions(job): rmdirs = session.query(Entry).filter(Entry.exists_on_fs==False,Entry.type_id==dtype.id).order_by(Entry.id.desc()).all() for rmdir in rmdirs: - RemoveFileFromDB(job, rmdir) + RemoveDirFromDB(job, rmdir) rm_cnt+=1 return rm_cnt