From: Michael Tremer Date: Sun, 23 Oct 2022 19:53:30 +0000 (+0000) Subject: jobs: Mark jobs as finished, and have a boolean to mark as aborted X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6c199eac2a92e24fb18292bf4b5ccf66b48a5d56;p=pbs.git jobs: Mark jobs as finished, and have a boolean to mark as aborted Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/jobs.py b/src/buildservice/jobs.py index e05d2b94..72d0a874 100644 --- a/src/buildservice/jobs.py +++ b/src/buildservice/jobs.py @@ -306,12 +306,17 @@ class Job(base.DataObject): """ Returns True if this job is running """ - return self.started_at and not self.finished_at + return self.started_at and not self.finished_at and not self.aborted_at def has_finished(self): + # Jobs can be marked as finished if self.finished_at: return True + # Jobs can be marked as aborted, too + elif self.aborted_at: + return True + return False def has_failed(self): @@ -327,8 +332,11 @@ class Job(base.DataObject): """ Aborts the job """ + # Mark as finished + self._set_attribute_now("finished_at") + # Mark as aborted - self._set_attribute_now("aborted_at") + self._set_attribute("aborted", True) if user: self._set_attribute("aborted_by", user) @@ -336,14 +344,12 @@ class Job(base.DataObject): """ Returns True if this job has been aborted """ - if self.aborted_at: - return True - - return False + return self.data.aborted @property def aborted_at(self): - return self.data.aborted_at + if self.is_aborted(): + return self.data.finished_at @lazy_property def aborted_by(self): diff --git a/src/database.sql b/src/database.sql index b6a0162d..0786ab8c 100644 --- a/src/database.sql +++ b/src/database.sql @@ -343,7 +343,7 @@ CREATE TABLE public.jobs ( log_digest_blake2s bytea, deleted_at timestamp without time zone, deleted_by integer, - aborted_at timestamp without time zone, + aborted boolean DEFAULT false NOT NULL, aborted_by integer );