You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					40 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					40 lines
				
				1.0 KiB
			| 
											6 years ago
										 | #!/usr/bin/env python3
 | ||
|  | import os
 | ||
|  | import shutil
 | ||
|  | import threading
 | ||
|  | from selfdrive.swaglog import cloudlog
 | ||
|  | from selfdrive.loggerd.config import ROOT, get_available_bytes
 | ||
|  | from selfdrive.loggerd.uploader import listdir_by_creation
 | ||
|  | 
 | ||
|  | 
 | ||
|  | def deleter_thread(exit_event):
 | ||
|  |   while not exit_event.is_set():
 | ||
|  |     available_bytes = get_available_bytes()
 | ||
|  | 
 | ||
|  |     if available_bytes is not None and available_bytes < (5 * 1024 * 1024 * 1024):
 | ||
|  |       # remove the earliest directory we can
 | ||
|  |       dirs = listdir_by_creation(ROOT)
 | ||
|  |       for delete_dir in dirs:
 | ||
|  |         delete_path = os.path.join(ROOT, delete_dir)
 | ||
|  | 
 | ||
|  |         if any(name.endswith(".lock") for name in os.listdir(delete_path)):
 | ||
|  |           continue
 | ||
|  | 
 | ||
|  |         try:
 | ||
|  |           cloudlog.info("deleting %s" % delete_path)
 | ||
|  |           shutil.rmtree(delete_path)
 | ||
|  |           break
 | ||
|  |         except OSError:
 | ||
|  |           cloudlog.exception("issue deleting %s" % delete_path)
 | ||
|  |       exit_event.wait(.1)
 | ||
|  |     else:
 | ||
|  |       exit_event.wait(30)
 | ||
|  | 
 | ||
|  | 
 | ||
|  | def main(gctx=None):
 | ||
|  |   deleter_thread(threading.Event())
 | ||
|  | 
 | ||
|  | 
 | ||
|  | if __name__ == "__main__":
 | ||
|  |   main()
 |