import argparse import os.path import sqlite3 import sys parser = argparse.ArgumentParser( description='Check jobs for a given proposal & run number') parser.add_argument('--sqlite-fpath', type=str, help='Path to sqlite file path', default='db/webservice_jobs.sqlite') parser.add_argument('--proposal', type=str, required=True, help='Proposal number') parser.add_argument('--run', type=int, required=True, help='Run number') args = vars(parser.parse_args()) sqlite_fpath = args['sqlite_fpath'] proposal = args['proposal'].zfill(6) run = args['run'] if not os.path.isfile(sqlite_fpath): sys.exit(f"File not found: {sqlite_fpath}") conn = sqlite3.connect(sqlite_fpath) c = conn.execute( "SELECT status, elapsed, karabo_id, det_type, action FROM " "slurm_jobs INNER JOIN executions USING (exec_id) " "INNER JOIN requests USING (req_id) " "WHERE proposal = ? AND run = ?", (proposal, run) ) for r in c.fetchall(): print(r)