summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-07-13 14:39:47 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-11 00:09:26 +0100
commite387a7ab9d46535a495bc7052915021dc914205d (patch)
tree44d70acb71719ba2e41b6bb071ea0ec452a59533 /bitbake/lib/toaster/orm/models.py
parentdce503764653051ddb1b3d67eb7d6059b8d31f92 (diff)
downloadpoky-e387a7ab9d46535a495bc7052915021dc914205d.tar.gz
bitbake: toaster: add started property to Build
Add a property to the Build model which records whether the BuildStarted event has occurred for the build. The proxy for this event is the presence of variables recorded against the Build: as the buildinfohelper only saves variables when the BuildStarted event occurs (as the variables aren't available on the bitbake server before that point), we can tell whether BuildStarted has happened by counting Variable objects on the Build. This can then be used to determine whether a Build "properly" started, enabling a different dashboard display (left-hand menu hidden) if the build didn't record any useful information (e.g. if it had a bad target). [YOCTO #8443] (Bitbake rev: aa151a4d2de4a54fe3075a8c56a4935158398a18) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index cfa243c595..3da9a66d0c 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -436,6 +436,21 @@ class Build(models.Model):
436 436
437 return recent_builds 437 return recent_builds
438 438
439 def started(self):
440 """
441 As build variables are only added for a build when its BuildStarted event
442 is received, a build with no build variables is counted as
443 "in preparation" and not properly started yet. This method
444 will return False if a build has no build variables (it never properly
445 started), or True otherwise.
446
447 Note that this is a temporary workaround for the fact that we don't
448 have a fine-grained state variable on a build which would allow us
449 to record "in progress" (BuildStarted received) vs. "in preparation".
450 """
451 variables = Variable.objects.filter(build=self)
452 return len(variables) > 0
453
439 def completeper(self): 454 def completeper(self):
440 tf = Task.objects.filter(build = self) 455 tf = Task.objects.filter(build = self)
441 tfc = tf.count() 456 tfc = tf.count()