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 | ||
