Merge pull request #871 from mwhudson/exception-to-error-report

add a way of mapping an exception to an error report
This commit is contained in:
Michael Hudson-Doyle 2020-12-18 14:39:58 +13:00 committed by GitHub
commit 4798b7f9a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -337,6 +337,7 @@ class ErrorReporter(object):
self.reports = [] self.reports = []
self._reports_by_base = {} self._reports_by_base = {}
self._reports_by_exception = {}
self.crashdb_spec = { self.crashdb_spec = {
'impl': 'launchpad', 'impl': 'launchpad',
'project': 'subiquity', 'project': 'subiquity',
@ -372,11 +373,15 @@ class ErrorReporter(object):
def note_data_for_apport(self, key, value): def note_data_for_apport(self, key, value):
self._apport_data.append((key, value)) self._apport_data.append((key, value))
def report_for_exc(self, exc):
return self._reports_by_exception.get(exc)
def make_apport_report(self, kind, thing, *, wait=False, exc=None, **kw): def make_apport_report(self, kind, thing, *, wait=False, exc=None, **kw):
if not self.dry_run and not os.path.exists('/cdrom/.disk/info'): if not self.dry_run and not os.path.exists('/cdrom/.disk/info'):
return None return None
log.debug("generating crash report") log.debug("generating crash report")
os.makedirs(self.crash_directory, exist_ok=True)
try: try:
report = ErrorReport.new(self, kind) report = ErrorReport.new(self, kind)
@ -393,6 +398,7 @@ class ErrorReporter(object):
thing, type(exc).__name__) thing, type(exc).__name__)
tb = traceback.TracebackException.from_exception(exc) tb = traceback.TracebackException.from_exception(exc)
report.pr['Traceback'] = "".join(tb.format()) report.pr['Traceback'] = "".join(tb.format())
self._reports_by_exception[exc] = report
else: else:
report.pr["Title"] = thing report.pr["Title"] = thing