diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 15 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/toasterui.py | 7 |
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 | ||