From 3b9fcc48e677afcd7ca6a8b6d7449cbd9ce3ada6 Mon Sep 17 00:00:00 2001 From: Alan De Smet <alan.desmet@ssec.wisc.edu> Date: Fri, 12 May 2023 09:29:33 -0500 Subject: [PATCH] Fix bug; add lockfile to cleaning it's help=, not description= --- example/aitf-clean-temporal | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/example/aitf-clean-temporal b/example/aitf-clean-temporal index e4898ae..914e0ac 100755 --- a/example/aitf-clean-temporal +++ b/example/aitf-clean-temporal @@ -25,6 +25,7 @@ import logging import aitf.ancil import aitf.conlog import csppfetch +from csppfetch.exclusivelockfile import PIDLockFile def parse_args(): @@ -58,7 +59,7 @@ def parse_args(): TEMPORAL_CACHE_ENV = 'CSPP_GEO_AITF_TEMPORAL_CACHE' TEMPORAL_DEFAULT = os.environ.get(TEMPORAL_CACHE_ENV, TEMPORAL_INVALID) ap.add_argument("temporal-dir", metavar = "DIR", nargs='?', - description = f'temporal directory to clean (default: environment variable {TEMPORAL_CACHE_ENV}', + help = f'temporal directory to clean (default: environment variable {TEMPORAL_CACHE_ENV}', default=TEMPORAL_DEFAULT) subgroup = ap.add_mutually_exclusive_group() @@ -106,12 +107,16 @@ def main(): if not args.keep_old: from datetime import datetime stats = csppfetch.CleaningStats() - csppfetch.delete_old_files(args.temporal_dir+"/L1b", args.oldest, stats) - csppfetch.delete_old_files(args.temporal_dir+"/L2", args.oldest, stats) - if args.want_summary: - sys.stdout.write('Expiring Old Data Summary\n') - sys.stdout.write(f' Removed {stats.num_deleted} files totaling {stats.size_deleted} bytes\n') - sys.stdout.write(f' Kept {stats.num_kept} files totaling {stats.size_kept} bytes\n') + with PIDLockFile(args.temporal_dir+"cleaning-process.pid") as has_lock: + if has_lock: + csppfetch.delete_old_files(args.temporal_dir+"/L1b", args.oldest, stats) + csppfetch.delete_old_files(args.temporal_dir+"/L2", args.oldest, stats) + if args.want_summary: + sys.stdout.write('Expiring Old Data Summary\n') + sys.stdout.write(f' Removed {stats.num_deleted} files totaling {stats.size_deleted} bytes\n') + sys.stdout.write(f' Kept {stats.num_kept} files totaling {stats.size_kept} bytes\n') + else: # No lock + sys.stdout.write("Cleaning skipped; another process is already doing so.") return 0 -- GitLab