]> git.ipfire.org Git - pbs.git/commitdiff
jobs: Mark jobs as finished, and have a boolean to mark as aborted
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 23 Oct 2022 19:53:30 +0000 (19:53 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 23 Oct 2022 19:53:30 +0000 (19:53 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/jobs.py
src/database.sql

index e05d2b94b0f5974863b018659cc21b459b76fc2b..72d0a874cb01482d6449b0d1b477c796ab716b8b 100644 (file)
@@ -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):
index b6a0162d447d67dfbf8fb751725580b4ddb6201a..0786ab8c2506d014322e2e7af829c2b0e6aa1922 100644 (file)
@@ -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
 );