From: Michael Tremer Date: Sun, 26 Jan 2025 14:28:32 +0000 (+0000) Subject: jobs: Fix aborting jobs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c554c19fa31e90b3d0efecb96a133819cbea3189;p=pbs.git jobs: Fix aborting jobs Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index 5ea856d2..cfeadcaa 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -844,7 +844,7 @@ class Job(database.Base, database.BackendMixin, database.SoftDeleteMixin): # Abort! - async def abort(self, user=None): + async def abort(self, aborted_by=None): """ Aborts the job """ @@ -860,8 +860,8 @@ class Job(database.Base, database.BackendMixin, database.SoftDeleteMixin): # Mark as aborted self.aborted = True - if user: - self.aborted_by = user + if aborted_by: + self.aborted_by = aborted_by # Try to dispatch more jobs in the background await self.backend.jobs.queue.dispatch() diff --git a/src/templates/jobs/abort.html b/src/templates/jobs/abort.html index f1ca06b5..6e1c3bc5 100644 --- a/src/templates/jobs/abort.html +++ b/src/templates/jobs/abort.html @@ -1,8 +1,8 @@ -{% extends "../base.html" %} +{% extends "modal.html" %} -{% block title %}{{ _("Abort Job %s") % job }}{% end block %} +{% block title %}{{ _("Abort Job %s") % job }}{% endblock %} -{% block container %} +{% block breadcrumbs %} +{% endblock %} -
-
-

{{ _("Abort Job") }}

+{% block modal_title %} +

{{ _("Abort Job") }}

+
{{ job }}
+{% endblock %} -
-
- {% raw xsrf_form_html() %} +{% block modal %} + + {{ xsrf_form_html() | safe }} - -
-
+
+

+ {{ _("Do you want to abort %s?") % job }} +

-
-{% end block %} + + {# Submit! #} +
+ +
+ +{% endblock %} diff --git a/src/web/jobs.py b/src/web/jobs.py index f503e193..2ef8b8dd 100644 --- a/src/web/jobs.py +++ b/src/web/jobs.py @@ -228,7 +228,7 @@ class AbortHandler(base.BaseHandler): if not job.has_perm(self.current_user): raise tornado.web.HTTPError(403) - self.render("jobs/abort.html", job=job) + await self.render("jobs/abort.html", job=job) @base.authenticated async def post(self, uuid): @@ -240,8 +240,9 @@ class AbortHandler(base.BaseHandler): if not job.has_perm(self.current_user): raise tornado.web.HTTPError(403) + # Abort the job async with await self.db.transaction(): - await job.abort(self.current_user) + await job.abort(aborted_by=self.current_user) self.redirect("/builds/%s" % job.build.uuid)