From 3b04ddbae7b1f168944e1cc2c8f3d41a6363d89d Mon Sep 17 00:00:00 2001 From: Thomas Kluyver <thomas.kluyver@xfel.eu> Date: Mon, 30 Sep 2024 17:06:54 +0100 Subject: [PATCH] Simplify getting hostname in serve_overview --- webservice/config/serve_overview.yaml | 1 - webservice/serve_overview.py | 14 +++----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/webservice/config/serve_overview.yaml b/webservice/config/serve_overview.yaml index 535c04ba6..2da8f8cbc 100644 --- a/webservice/config/serve_overview.yaml +++ b/webservice/config/serve_overview.yaml @@ -10,7 +10,6 @@ templates: shell-commands: total-jobs: "sinfo -p exfel -o %A --noheader" - job-nodes: "squeue --me -o %i,%N --noheader" tail-log: "tail -5000 web.log" tail-log-monitor: "tail -5000 monitor.log" diff --git a/webservice/serve_overview.py b/webservice/serve_overview.py index 3ce5f3da8..7053f6273 100644 --- a/webservice/serve_overview.py +++ b/webservice/serve_overview.py @@ -39,7 +39,6 @@ class RequestHandler(BaseHTTPRequestHandler): def init_config(self): self.total_jobs_cmd = config["shell-commands"]["total-jobs"] self.tail_log_cmd = config["shell-commands"]["tail-log"] - self.job_nodes_cmd = config["shell-commands"]["job-nodes"] self.run_candidates = config["run-candidates"] self.templates = {} @@ -186,7 +185,7 @@ class RequestHandler(BaseHTTPRequestHandler): ) c = self.jobs_db.execute( - "SELECT job_id, status, elapsed, det_type, proposal, run, action " + "SELECT job_id, status, elapsed, hostname, det_type, proposal, run, action " "FROM slurm_jobs INNER JOIN executions USING (exec_id) " "INNER JOIN requests USING (req_id) " "WHERE finished = 0" @@ -195,14 +194,7 @@ class RequestHandler(BaseHTTPRequestHandler): now = datetime.now() running_jobs = {} - # Mapping of job ID (str) to node for running jobs. - job_nodes = dict([ - x.split(",") for x in check_output( - self.job_nodes_cmd, shell=True).decode("utf-8").split("\n") - if x - ]) - - for job_id, status, elapsed, det, proposal, run, act in c: + for job_id, status, elapsed, job_node, det, proposal, run, act in c: key = f'{proposal}/r{int(run):04d}/{det}/{act}' flg = "Q" if status in {"QUEUE", "PENDING"} else "R" rjobs = running_jobs.setdefault(key, []) @@ -211,7 +203,7 @@ class RequestHandler(BaseHTTPRequestHandler): flg, f'{status[0]}-{elapsed}', datetime_to_grafana(now - elapsed_to_timedelta(elapsed)), - job_nodes.get(str(job_id), '') + job_node )) tmpl = self.templates["running-jobs"] -- GitLab