toaster: report and stop builds on git and server exceptions

Submitted by Reyna, David on Sept. 7, 2017, 4:09 a.m. | Patch ID: 143792

Details

Message ID 1504757351-20450-1-git-send-email-david.reyna@windriver.com
State New
Headers show

Commit Message

Reyna, David Sept. 7, 2017, 4:09 a.m.
From: David Reyna <David.Reyna@windriver.com>

Stop the pending build and report to the user if there is
an internal exception due to a git error, a bitbake server
error, or if the server-only mode halts due to for example
a user syntax error in a layer or recipe.

These exceptions were not caught because they occured before
the normal toastergui processing was started.

[YOCTO #12056]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
---
 bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | 8 ++++++++
 1 file changed, 8 insertions(+)

Patch hide | download patch | download mbox

diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
index 8eacb5e..791e53e 100644
--- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
+++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
@@ -79,6 +79,14 @@  class Command(BaseCommand):
             br.save()
             bec.be.lock = BuildEnvironment.LOCK_FREE
             bec.be.save()
+            # Cancel the pending build and report the exception to the UI
+            log_object = LogMessage.objects.create(
+                            build = br.build,
+                            level = LogMessage.EXCEPTION,
+                            message = errmsg)
+            log_object.save()
+            br.build.outcome = Build.FAILED
+            br.build.save()
 
     def archive(self):
         for br in BuildRequest.objects.filter(state=BuildRequest.REQ_ARCHIVE):