From 40a7a68b3112633f0a840928a0de0f22a1a0f06a Mon Sep 17 00:00:00 2001 From: Jeremy Auguste <jeremy.auguste@lis-lab.fr> Date: Wed, 24 Oct 2018 15:21:40 +0200 Subject: [PATCH] Changed karma to be queue based and added better printing of timeleft --- oarstats.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/oarstats.py b/oarstats.py index 8e78f68..828b910 100644 --- a/oarstats.py +++ b/oarstats.py @@ -8,13 +8,14 @@ import subprocess from collections import defaultdict import re import time +import datetime class Owner: def __init__(self, name): self.name = name self.queues = defaultdict(list) - self.karma = 0.0 + self.karma = defaultdict(float) self.timeleft = 0 self.running = defaultdict(int) self.resources = defaultdict(int) @@ -22,8 +23,8 @@ class Owner: def add_job(self, job): self.queues[job.queue].append(job) - if job.karma > self.karma: - self.karma = job.karma + if job.karma > self.karma[job.queue]: + self.karma[job.queue] = job.karma self.timeleft += job.wall_time - job.elapsed_time self.resources[job.queue] += job.resources if job.elapsed_time != 0: @@ -32,9 +33,9 @@ class Owner: self.gpu[job.queue] += job.resources def print_info(self): - print("User {} :: Timeleft: {}, Karma: {}".format(self.name, self.timeleft, self.karma)) + print("User {} :: Timeleft: {}".format(self.name, datetime.timedelta(seconds=self.timeleft))) for queue in self.queues.keys(): - print("\t{} - Running {}, Resources: {}, GPUs: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue])) + print("\t{} - Running {}, Resources: {}, GPUs: {}, Karma: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue], self.karma[queue])) class Job: -- GitLab