diff --git a/oarstats.py b/oarstats.py index 8e78f68fd7e39f36ada657e7c2e1a38d0915aa26..828b91016bd4879eaa77846519b81208695c6234 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: