diff options
author | Martin Peres <martin.peres@linux.intel.com> | 2017-04-26 13:42:27 +0300 |
---|---|---|
committer | Martin Peres <martin.peres@linux.intel.com> | 2017-10-04 17:48:28 +0300 |
commit | d5552e0ae35f4a5a69aec4930072f15da60cbeca (patch) | |
tree | e52960a1aa80ea0c291a6a0e19111e46c5df6d90 | |
parent | d7fa87fb3ee7d10ea49f667a185c21d552649bdd (diff) |
smartezbench: allow calling a callback on in hooks
-rw-r--r-- | python-modules/ezbench/smartezbench.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/python-modules/ezbench/smartezbench.py b/python-modules/ezbench/smartezbench.py index 4140163..58ba114 100644 --- a/python-modules/ezbench/smartezbench.py +++ b/python-modules/ezbench/smartezbench.py @@ -211,13 +211,15 @@ class SmartEzbenchAttributes(Enum): class SmartEzbench: def __init__(self, ezbench_dir, report_name, readonly = False, - hook_binary_path = None, logs_callback = None): + hook_binary_path = None, logs_callback = None, + hooks_callback = None): self.readonly = readonly self.ezbench_dir = ezbench_dir self.report_name = report_name self.log_folder = ezbench_dir + '/logs/' + report_name self.hook_binary_path = hook_binary_path self.logs_callback = logs_callback + self.hooks_callback = hooks_callback self.smart_ezbench_state = self.log_folder + "/smartezbench.state" self.smart_ezbench_lock = self.log_folder + "/smartezbench.lock" self.smart_ezbench_log = self.log_folder + "/smartezbench.log" @@ -265,6 +267,25 @@ class SmartEzbench: # WARNING: Call this function after making sure state has an up-to-date state def __call_hook__(self, action, parameters = dict()): + if self.hooks_callback is not None: + HookCallbackState = namedtuple('HookCallbackState', ['action', 'ezbench_dir', + 'ezbench_report_name', + 'ezbench_report_path', + 'ezbench_report_mode', + 'hook_parameters']) + state = HookCallbackState(action=str(action), + ezbench_dir = str(self.ezbench_dir), + ezbench_report_name = str(self.report_name), + ezbench_report_path = str(self.log_folder), + ezbench_report_mode = str(RunningMode(self.state['mode']).name), + hook_parameters=parameters) + + try: + self.hooks_callback(state) + except: + traceback.print_exc(file=sys.stderr) + sys.stderr.write("\n") + if self.hook_binary_path is None: return |