pass the context object to report_start_event / report_finish_event

This commit is contained in:
Michael Hudson-Doyle 2020-04-06 16:24:53 +12:00
parent c20264bcd7
commit 246570314a
3 changed files with 18 additions and 18 deletions

View File

@ -250,17 +250,19 @@ class Subiquity(Application):
traceback.print_exc()
signal.pause()
def report_start_event(self, name, description, level="INFO"):
def report_start_event(self, context, description):
# report_start_event gets called when the Reporting controller
# is being loaded...
Reporting = getattr(self.controllers, "Reporting", None)
if Reporting is not None:
Reporting.report_start_event(name, description, level)
Reporting.report_start_event(
context.full_name(), description, context.level)
def report_finish_event(self, name, description, status, level="INFO"):
def report_finish_event(self, context, description, status):
Reporting = getattr(self.controllers, "Reporting", None)
if Reporting is not None:
Reporting.report_finish_event(name, description, status, level)
Reporting.report_finish_event(
context.full_name(), description, status, context.level)
def confirm_install(self):
self.install_confirmed = True

View File

@ -56,15 +56,15 @@ class Context:
self.childlevel = childlevel
@classmethod
def new(self, app):
return Context(app, app.project, "", None, "INFO")
def new(cls, app):
return cls(app, app.project, "", None, "INFO")
def child(self, name, description="", level=None, childlevel=None):
if level is None:
level = self.childlevel
return Context(self.app, name, description, self, level, childlevel)
return type(self)(self.app, name, description, self, level, childlevel)
def _name(self):
def full_name(self):
c = self
names = []
while c is not None:
@ -75,13 +75,12 @@ class Context:
def enter(self, description=None):
if description is None:
description = self.description
self.app.report_start_event(self._name(), description, self.level)
self.app.report_start_event(self, description)
def exit(self, description=None, result=Status.SUCCESS):
if description is None:
description = self.description
self.app.report_finish_event(
self._name(), description, result, self.level)
self.app.report_finish_event(self, description, result)
def __enter__(self):
self.enter()

View File

@ -472,15 +472,14 @@ class Application:
self.controllers.index = controller_index - 1
self.next_screen()
def report_start_event(self, name, description, level):
# See context.py for what calls these.
log = logging.getLogger(name)
level = getattr(logging, level)
def report_start_event(self, context, description):
log = logging.getLogger(context.full_name())
level = getattr(logging, context.level)
log.log(level, "start: %s", description)
def report_finish_event(self, name, description, status, level):
log = logging.getLogger(name)
level = getattr(logging, level)
def report_finish_event(self, context, description, status):
log = logging.getLogger(context.full_name())
level = getattr(logging, context.level)
log.log(level, "finish: %s %s", description, status.name)
# EventLoop -------------------------------------------------------------------