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
{% end %}
</td>
<td>
- <p class="{% if builder.active_jobs == 0 %}text-success{% elif builder.active_jobs >= builder.max_jobs %}text-error{% else %}text-warning{% end %}">
- {{ len(builder.get_active_jobs()) }}/{{ builder.max_jobs }}
+ <p class="{% if builder.count_active_jobs() == 0 %}text-success{% elif builder.count_active_jobs() >= builder.max_jobs %}text-error{% else %}text-warning{% end %}">
+ {{ builder.count_active_jobs() }}/{{ builder.max_jobs }}
</p>
</td>
</tr>