From: Michael Tremer Date: Thu, 13 Dec 2012 21:03:52 +0000 (+0100) Subject: builders: Fix counting active jobs. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e8a20d7d61e29d356f5ee213aac11e0ce5ab9a1;p=pbs.git builders: Fix counting active jobs. --- diff --git a/backend/builders.py b/backend/builders.py index 9a8415bb..e132d404 100644 --- a/backend/builders.py +++ b/backend/builders.py @@ -537,16 +537,28 @@ class Builder(base.Object): return "online" - @property - def active_jobs(self): - jobs = self.get_active_jobs() - - return len(jobs) - - def get_active_jobs(self, uploads=True): + def get_active_jobs(self, count=False): + query = self.db.query("\ + SELECT * FROM jobs \ + WHERE \ + jobs.builder_id = %s AND \ + (jobs.state = 'dispatching' OR jobs.state = 'running' OR jobs.state = 'uploading') \ + ORDER BY time_started ASC", + self.id) + + if count: + return len(query) + + jobs = [] + for job in query: + job = self.pakfire.jobs.get_by_id(job.id, job) + jobs.append(job) + + return jobs + + def count_active_jobs(self): if self._active_jobs is None: - self._active_jobs = \ - self.pakfire.jobs.get_active(host_id=self.id, uploads=uploads) + self._active_jobs = self.get_active_jobs(count=True) return self._active_jobs diff --git a/data/templates/builder-list.html b/data/templates/builder-list.html index f89d1c9c..0106c583 100644 --- a/data/templates/builder-list.html +++ b/data/templates/builder-list.html @@ -60,8 +60,8 @@ {% end %} -

- {{ len(builder.get_active_jobs()) }}/{{ builder.max_jobs }} +

+ {{ builder.count_active_jobs() }}/{{ builder.max_jobs }}