]> git.ipfire.org Git - people/jschlag/pbs.git/commitdiff
builds: Polulate cache for jobs
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Oct 2017 18:11:25 +0000 (19:11 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Oct 2017 18:11:25 +0000 (19:11 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builds.py

index 8da51062d7b8b897a8e3da07ee287b407064422e..d7cbf290f8cfc37d782e5acfac5eebe3d5eff3c7 100644 (file)
@@ -739,17 +739,25 @@ class Build(base.DataObject):
        def critical_path(self):
                return self.pkg.critical_path
 
+       def _get_jobs(self, query, *args):
+               ret = []
+               for job in self.backend.jobs._get_jobs(query, *args):
+                       job.build = self
+                       ret.append(job)
+
+               return ret
+
        @lazy_property
        def jobs(self):
                """
                        Get a list of all build jobs that are in this build.
                """
-               return self.backend.jobs._get_jobs("SELECT * FROM jobs \
-                       WHERE build_id = %s AND test IS FALSE AND deleted_at IS NULL", self.id)
+               return self._get_jobs("SELECT * FROM jobs \
+                               WHERE build_id = %s AND test IS FALSE AND deleted_at IS NULL", self.id)
 
        @property
        def test_jobs(self):
-               return self.backend.jobs._get_jobs("SELECT * FROM jobs \
+               return self._get_jobs("SELECT * FROM jobs \
                        WHERE build_id = %s AND test IS TRUE AND deleted_at IS NULL", self.id)
 
        @property