summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-11-25 10:12:46 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-11-28 14:02:58 +0000
commitaf1f9fda8b295d277a6967453b2d03e43474ab68 (patch)
tree0e6f9ab6194767449872e6bc0e4011026e4cc042 /bitbake/lib/bb/ui
parent707a960ffa20d6093ff787084e0b0f50a7b8305e (diff)
downloadpoky-af1f9fda8b295d277a6967453b2d03e43474ab68.tar.gz
bitbake: toaster: display Toaster exceptions and other fixes
Changing ToasterUI to log toaster exceptions on a different level than build errors. Updating the build dashboard to show Toaster exceptions. We add extra logging to console for exceptions. Fixed a problem where packages database entries were created instead of being looked up in the database, conficting with entries created to satisfy dependency information. Toaster now checks for invalid states at startup and performs needed cleanups. Removed loading reference to jquery-ui.min.css as we do not have this file. (Bitbake rev: 2378812bc24d433125fb940f110154f0ce638448) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui')
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py15
-rw-r--r--bitbake/lib/bb/ui/toasterui.py7
2 files changed, 17 insertions, 5 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index a907a0337b..a3401ceda9 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -381,7 +381,7 @@ class ORMWrapper(object):
381 searchname = pkgpnmap[p]['OPKGN'] 381 searchname = pkgpnmap[p]['OPKGN']
382 382
383 packagedict[p]['object'], created = Package.objects.get_or_create( build = build_obj, name = searchname ) 383 packagedict[p]['object'], created = Package.objects.get_or_create( build = build_obj, name = searchname )
384 if created or package[p]['object'].size == -1: # save the data anyway we can, not just if it was not created here; bug [YOCTO #6887] 384 if created or packagedict[p]['object'].size == -1: # save the data anyway we can, not just if it was not created here; bug [YOCTO #6887]
385 # fill in everything we can from the runtime-reverse package data 385 # fill in everything we can from the runtime-reverse package data
386 try: 386 try:
387 packagedict[p]['object'].recipe = recipes[pkgpnmap[p]['PN']] 387 packagedict[p]['object'].recipe = recipes[pkgpnmap[p]['PN']]
@@ -462,7 +462,7 @@ class ORMWrapper(object):
462 if 'OPKGN' in package_info.keys(): 462 if 'OPKGN' in package_info.keys():
463 pname = package_info['OPKGN'] 463 pname = package_info['OPKGN']
464 464
465 bp_object = Package.objects.create( build = build_obj, 465 bp_object, created = Package.objects.get_or_create( build = build_obj,
466 name = pname ) 466 name = pname )
467 467
468 bp_object.installed_name = package_info['PKG'] 468 bp_object.installed_name = package_info['PKG']
@@ -1043,6 +1043,15 @@ class BuildInfoHelper(object):
1043 mockevent.lineno = -1 1043 mockevent.lineno = -1
1044 self.store_log_event(mockevent) 1044 self.store_log_event(mockevent)
1045 1045
1046 def store_log_exception(self, text, backtrace = ""):
1047 mockevent = MockEvent()
1048 mockevent.levelno = -1
1049 mockevent.msg = text
1050 mockevent.pathname = backtrace
1051 mockevent.lineno = -1
1052 self.store_log_event(mockevent)
1053
1054
1046 def store_log_event(self, event): 1055 def store_log_event(self, event):
1047 if event.levelno < format.WARNING: 1056 if event.levelno < format.WARNING:
1048 return 1057 return
@@ -1078,6 +1087,8 @@ class BuildInfoHelper(object):
1078 log_information['level'] = LogMessage.ERROR 1087 log_information['level'] = LogMessage.ERROR
1079 elif event.levelno == format.WARNING: 1088 elif event.levelno == format.WARNING:
1080 log_information['level'] = LogMessage.WARNING 1089 log_information['level'] = LogMessage.WARNING
1090 elif event.levelno == -1: # toaster self-logging
1091 log_information['level'] = -1
1081 else: 1092 else:
1082 log_information['level'] = LogMessage.INFO 1093 log_information['level'] = LogMessage.INFO
1083 1094
diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py
index b9e8029da1..9bd04df1c6 100644
--- a/bitbake/lib/bb/ui/toasterui.py
+++ b/bitbake/lib/bb/ui/toasterui.py
@@ -299,12 +299,13 @@ def main(server, eventHandler, params ):
299 logger.error(e) 299 logger.error(e)
300 import traceback 300 import traceback
301 exception_data = traceback.format_exc() 301 exception_data = traceback.format_exc()
302 print(exception_data)
302 303
303 # save them to database, if possible; if it fails, we already logged to console. 304 # save them to database, if possible; if it fails, we already logged to console.
304 try: 305 try:
305 buildinfohelper.store_log_error("%s\n%s" % (str(e), exception_data)) 306 buildinfohelper.store_log_exception("%s\n%s" % (str(e), exception_data))
306 except Exception: 307 except Exception as ce:
307 pass 308 print("CRITICAL: failed to to save toaster exception to the database: %s" % str(ce))
308 309
309 pass 310 pass
310 311