diff --git a/webservice/check_run_status.py b/webservice/check_run_status.py new file mode 100644 index 0000000000000000000000000000000000000000..c97668fa52002019889e61aadbbcfc4db2e3d9ba --- /dev/null +++ b/webservice/check_run_status.py @@ -0,0 +1,36 @@ +"""Usage: check_run_status.py <proposal> <run> + +e.g. check_run_status.py 3279 168 +""" + +import sqlite3 +import sys + +from config import webservice as config + +proposal, run = sys.argv[1:3] +proposal = proposal.zfill(6) +run = int(run) + +conn = sqlite3.connect(config['web-service']['job-db']) + +req_cur = conn.execute(""" + SELECT req_id, timestamp FROM requests + WHERE proposal = ? AND run = ? AND action = 'CORRECT' +""", (proposal, run)) + +for req_id, req_time in req_cur: + print(f"Request {req_id} at {req_time}") + for exec_id, karabo_id in conn.execute( + "SELECT exec_id, karabo_id FROM executions WHERE req_id = ?", (req_id,) + ): + print(f"- {karabo_id}") + jobs_by_status = {} + for job_id, status in conn.execute( + "SELECT job_id, status FROM slurm_jobs WHERE exec_id = ?", (exec_id,) + ): + jobs_by_status.setdefault(status, []).append(job_id) + + for status, job_ids in sorted(jobs_by_status.items()): + print(f" {status}:", *job_ids) + print()