Source code for meersolar.meerpipeline.show_status

import psutil
import argparse
import traceback
import glob
import sys
import os
from casatasks import casalog
from casatasks import listobs
from meersolar.utils import get_cachedir, drop_cache, SmartDefaultsHelpFormatter

try:
    casalogfile = casalog.logfile()
    os.system("rm -rf " + casalogfile)
except BaseException:
    pass


[docs] def show_job_status(clean_old_jobs=False): """ Show MeerSOLAR jobs status Parameters ---------- clean_old_jobs : bool, optional Clean old informations for stopped jobs """ cachedir = get_cachedir() try: main_pid_files = glob.glob(f"{cachedir}/main_pids_*.txt") if len(main_pid_files) == 0: print("No MeerSOLAR jobs is running.") else: print("####################") print("MeerSOLAR Job status") print("####################") for pid_file in main_pid_files: with open(pid_file, "r") as f: line = f.read().split(" ") jobid = line[0] pid = line[1] workdir = line[3] outdir = line[4] if psutil.pid_exists(int(pid)): running = "Running/Waiting" else: running = "Done/Stopped" print( f"Job ID: {jobid}, Work direcory: {workdir}, Output directory: {outdir}, Status: {running}" ) print( "#########################################################################################" ) if clean_old_jobs and running == "Done/Stopped": os.system(f"rm -rf {pid_file}") if os.path.exists(f"rm -rf {cachedir}/pids/pids_{jobid}.txt"): os.system(f"rm -rf {cachedir}/pids/pids_{jobid}.txt") except Exception as e: traceback.print_exc() finally: drop_cache(cachedir)
[docs] def cli(): parser = argparse.ArgumentParser( description="Show MeerSOLAR jobs status.", formatter_class=SmartDefaultsHelpFormatter, ) parser.add_argument( "--show", action="store_true", dest="show", help="Show job status", ) parser.add_argument( "--clean_old_jobs", action="store_true", dest="clean_old_jobs", default=False, help="Clean old jobs", ) if len(sys.argv) == 1: parser.print_help(sys.stderr) sys.exit(1) try: args = parser.parse_args() if args.show: show_job_status(clean_old_jobs=args.clean_old_jobs) except Exception as e: traceback.print_exc()
if __name__ == "__main__": cli()