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)