From: Michael Tremer Date: Sun, 23 Oct 2022 19:43:28 +0000 (+0000) Subject: jobs: Implement marking jobs as aborted X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d61050883a29ead18fb9222f75c8fe109026f6d4;p=pbs.git jobs: Implement marking jobs as aborted Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index 32f25a4f..e05d2b94 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -327,7 +327,28 @@ class Job(base.DataObject): """ Aborts the job """ - pass # XXX TODO + # Mark as aborted + self._set_attribute_now("aborted_at") + if user: + self._set_attribute("aborted_by", user) + + def is_aborted(self): + """ + Returns True if this job has been aborted + """ + if self.aborted_at: + return True + + return False + + @property + def aborted_at(self): + return self.data.aborted_at + + @lazy_property + def aborted_by(self): + if self.data.aborted_by: + return self.backend.users.get_by_id(self.data.aborted_by) @property def message(self): diff --git a/src/database.sql b/src/database.sql index a6f2b863..b6a0162d 100644 --- a/src/database.sql +++ b/src/database.sql @@ -342,7 +342,9 @@ CREATE TABLE public.jobs ( log_size bigint, log_digest_blake2s bytea, deleted_at timestamp without time zone, - deleted_by integer + deleted_by integer, + aborted_at timestamp without time zone, + aborted_by integer ); @@ -1749,6 +1751,14 @@ ALTER TABLE ONLY public.builds ADD CONSTRAINT builds_pkg_id FOREIGN KEY (pkg_id) REFERENCES public.packages(id); +-- +-- Name: jobs jobs_aborted_by; Type: FK CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.jobs + ADD CONSTRAINT jobs_aborted_by FOREIGN KEY (aborted_by) REFERENCES public.users(id); + + -- -- Name: jobs jobs_build_id; Type: FK CONSTRAINT; Schema: public; Owner: - --