def can_build(self, job):
return job.arch in self.supported_arches
- # Jobs
+ # Running Jobs
- @property
- def jobs(self):
- jobs = self.backend.jobs._get_jobs("""
- SELECT
- jobs.*
- FROM
- jobs
- WHERE
- deleted_at IS NULL
- AND
- started_at IS NOT NULL
- AND
- finished_at IS NULL
- AND
- builder_id = %s
- ORDER BY
- started_at DESC""",
- self.id,
+ async def get_running_jobs(self):
+ stmt = (
+ sqlalchemy
+ .select(
+ jobs.Job,
+ )
+ .where(
+ jobs.Job.deleted_at == None,
+ jobs.Job.started_at != None,
+ jobs.Job.finished_at == None,
+ jobs.Job.builder == self,
+ )
+ .order_by(
+ jobs.Job.started_at.desc(),
+ )
)
- return list(jobs)
+ return await self.db.fetch_as_list(stmt)
# Max Jobs
</section>
{% endif %}
- {% if builder.jobs %}
+ {# Show any running jobs #}
+ {% set jobs = builder.get_running_jobs() %}
+ {% if jobs %}
<section class="section">
<div class="container">
<h5 class="subtitle is-5">{{ _("Running Jobs") }}</h5>
- {{ JobsList(builder.jobs) }}
+ {{ JobList(jobs) }}
</div>
</section>
{% endif %}