diff --git a/webservice/config/serve_overview.yaml b/webservice/config/serve_overview.yaml index 535c04ba680f639313af73ffdbd3b8078e3e1fbf..2da8f8cbc71c7b0a5328ef7ba2ccce12c366b9c3 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 3ce5f3da8664624012a5a9d8423118bce70c9767..7053f6273adecb78df9f90bdc1cebb0605b94f87 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"]