1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-22 12:58:36 +00:00

Expose context in OP initialize and finalize

Expose the context to the initialize and finalize functions for Output
Processors. This was found to be necessary for the upcoming PostgreSQL
Output Processor.
This commit is contained in:
Waleed El-Geresy 2018-09-04 17:18:25 +01:00 committed by Marc Bonnici
parent 4c4fd2a267
commit 718f2c1c90
7 changed files with 14 additions and 14 deletions

View File

@ -106,7 +106,7 @@ class ProcessCommand(Command):
pm.install(proc, pc) pm.install(proc, pc)
pm.validate() pm.validate()
pm.initialize() pm.initialize(pc)
pc.run_output = run_output pc.run_output = run_output
pc.target_info = run_output.target_info pc.target_info = run_output.target_info
@ -139,7 +139,7 @@ class ProcessCommand(Command):
self.logger.info('Processing run') self.logger.info('Processing run')
pm.process_run_output(pc) pm.process_run_output(pc)
pm.export_run_output(pc) pm.export_run_output(pc)
pm.finalize() pm.finalize(pc)
run_output.write_result() run_output.write_result()
self.logger.info('Done.') self.logger.info('Done.')

View File

@ -516,7 +516,7 @@ class Runner(object):
signal.connect(self._error_signalled_callback, signal.ERROR_LOGGED) signal.connect(self._error_signalled_callback, signal.ERROR_LOGGED)
signal.connect(self._warning_signalled_callback, signal.WARNING_LOGGED) signal.connect(self._warning_signalled_callback, signal.WARNING_LOGGED)
self.context.start_run() self.context.start_run()
self.pm.initialize() self.pm.initialize(self.context)
with log.indentcontext(): with log.indentcontext():
self.context.initialize_jobs() self.context.initialize_jobs()
self.context.write_state() self.context.write_state()
@ -532,7 +532,7 @@ class Runner(object):
with signal.wrap('RUN_OUTPUT_PROCESSED', self): with signal.wrap('RUN_OUTPUT_PROCESSED', self):
self.pm.process_run_output(self.context) self.pm.process_run_output(self.context)
self.pm.export_run_output(self.context) self.pm.export_run_output(self.context)
self.pm.finalize() self.pm.finalize(self.context)
signal.disconnect(self._error_signalled_callback, signal.ERROR_LOGGED) signal.disconnect(self._error_signalled_callback, signal.ERROR_LOGGED)
signal.disconnect(self._warning_signalled_callback, signal.WARNING_LOGGED) signal.disconnect(self._warning_signalled_callback, signal.WARNING_LOGGED)

View File

@ -40,10 +40,10 @@ class OutputProcessor(Plugin):
msg = 'Instrument "{}" is required by {}, but is not installed.' msg = 'Instrument "{}" is required by {}, but is not installed.'
raise ConfigError(msg.format(instrument, self.name)) raise ConfigError(msg.format(instrument, self.name))
def initialize(self): def initialize(self, context):
pass pass
def finalize(self): def finalize(self, context):
pass pass
@ -104,13 +104,13 @@ class ProcessorManager(object):
for proc in self.processors: for proc in self.processors:
proc.validate() proc.validate()
def initialize(self): def initialize(self, context):
for proc in self.processors: for proc in self.processors:
proc.initialize() proc.initialize(context)
def finalize(self): def finalize(self, context):
for proc in self.processors: for proc in self.processors:
proc.finalize() proc.finalize(context)
def process_job_output(self, context): def process_job_output(self, context):
self.do_for_each_proc('process_job_output', 'Processing using "{}"', self.do_for_each_proc('process_job_output', 'Processing using "{}"',

View File

@ -85,7 +85,7 @@ class CpuStatesProcessor(OutputProcessor):
"""), """),
] ]
def initialize(self): def initialize(self, context):
self.iteration_reports = OrderedDict() # pylint: disable=attribute-defined-outside-init self.iteration_reports = OrderedDict() # pylint: disable=attribute-defined-outside-init
def process_job_output(self, output, target_info, run_output): # pylint: disable=unused-argument def process_job_output(self, output, target_info, run_output): # pylint: disable=unused-argument

View File

@ -56,7 +56,7 @@ class CsvReportProcessor(OutputProcessor):
'use_all_classifiers is True' 'use_all_classifiers is True'
raise ConfigError(msg) raise ConfigError(msg)
def initialize(self): def initialize(self, context):
# pylint: disable=attribute-defined-outside-init # pylint: disable=attribute-defined-outside-init
self.outputs_so_far = [] self.outputs_so_far = []
self.artifact_added = False self.artifact_added = False

View File

@ -108,7 +108,7 @@ class SqliteResultProcessor(OutputProcessor):
] ]
def initialize(self): def initialize(self, context):
self._last_spec = None self._last_spec = None
self._run_oid = None self._run_oid = None
self._spec_oid = None self._spec_oid = None

View File

@ -56,7 +56,7 @@ class TargzProcessor(OutputProcessor):
'''), '''),
] ]
def initialize(self): def initialize(self, context):
if self.delete_output: if self.delete_output:
self.logger.debug('Registering RUN_FINALIZED handler.') self.logger.debug('Registering RUN_FINALIZED handler.')
signal.connect(self.delete_output_directory, signal.RUN_FINALIZED, priority=-100) signal.connect(self.delete_output_directory, signal.RUN_FINALIZED, priority=-100)