@@ -521,18 +521,33 @@ def get_latest_successful_job_ids_for_name_all_params(self, report_name: str) ->
521
521
def n_all_results_for_report_name (self , report_name : str ) -> int :
522
522
return self ._get_result_count ({"report_name" : report_name })
523
523
524
- def delete_result (self , job_id : AnyStr ) -> Dict [str , Any ]:
524
+ def delete_result (self , job_id : AnyStr , dry_run : bool = False ) -> Dict [str , Any ]:
525
525
result = self ._get_raw_check_result (job_id )
526
526
status = JobStatus .from_string (result ["status" ])
527
527
gridfs_filenames = load_files_from_gridfs (self .result_data_store , result , do_read = False )
528
528
if status in (JobStatus .ERROR , JobStatus .TIMEOUT , JobStatus .CANCELLED ):
529
529
gridfs_filenames .append (_error_info_filename (job_id ))
530
- self .update_check_status (job_id , JobStatus .DELETED )
530
+ if not dry_run :
531
+ self .update_check_status (job_id , JobStatus .DELETED )
532
+ deleted_gridfs_files = []
531
533
for filename in gridfs_filenames :
532
- logger .info (f"Deleting { filename } " )
534
+ logger .debug (f"Deleting { filename } " )
535
+ existed = False
533
536
for grid_out in self .result_data_store .find ({"filename" : filename }):
534
- self .result_data_store .delete (grid_out ._id )
535
- return {"deleted_result_document" : result , "gridfs_filenames" : gridfs_filenames }
537
+ existed = True
538
+ if not dry_run :
539
+ self .result_data_store .delete (grid_out ._id )
540
+ if existed :
541
+ deleted_gridfs_files .append (filename )
542
+ return {"deleted_result_document" : result , "gridfs_filenames" : deleted_gridfs_files }
543
+
544
+ def get_job_ids_older_than (self , cutoff : datetime .datetime , report_name : Optional [str ] = None ) -> List [str ]:
545
+ query = {"job_start_time" : {"$lte" : cutoff }}
546
+ query = _add_deleted_status_to_filter (query )
547
+ if report_name :
548
+ query ["report_name" ] = report_name
549
+ to_delete = [d ["job_id" ] for d in self .library .find (query , {"_id" : 0 , "job_id" : 1 })]
550
+ return to_delete
536
551
537
552
538
553
def _pdf_filename (job_id : str ) -> str :
0 commit comments