diff options
author | mbeierl <mark.beierl@dell.com> | 2017-02-16 10:40:35 -0500 |
---|---|---|
committer | mbeierl <mark.beierl@dell.com> | 2017-02-16 13:16:51 -0500 |
commit | ac7b5490cb305468b0bd961fc5caad9c51b8b77b (patch) | |
tree | 8c4975a2dab26fc551ce0d933395c37375f5a423 /storperf/fio/fio_invoker.py | |
parent | acfadc79623d9ac6ec0a625ba69b356b71606252 (diff) |
Prevent notifications after termination
Changes the event notification logic inside the FIO invoker
so that it no longer publishes events after termination.
Prevents false reports after steady state has been detected.
Change-Id: I694f77b6493b88820fe4f4cc7f634e3e62c45a9a
JIRA: STORPERF-105
Signed-off-by: mbeierl <mark.beierl@dell.com>
Diffstat (limited to 'storperf/fio/fio_invoker.py')
-rw-r--r-- | storperf/fio/fio_invoker.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/storperf/fio/fio_invoker.py b/storperf/fio/fio_invoker.py index a201802..106696d 100644 --- a/storperf/fio/fio_invoker.py +++ b/storperf/fio/fio_invoker.py @@ -21,6 +21,7 @@ class FIOInvoker(object): self.event_callback_ids = set() self._remote_host = None self.callback_id = None + self.terminated = False @property def remote_host(self): @@ -51,17 +52,19 @@ class FIOInvoker(object): json_metric = json.loads(self.json_body) self.json_body = "" - for event_listener in self.event_listeners: - try: + if not self.terminated: + for event_listener in self.event_listeners: + try: + self.logger.debug( + "Event listener callback") + event_listener( + self.callback_id, json_metric) + except Exception, e: + self.logger.exception( + "Notifying listener %s: %s", + self.callback_id, e) self.logger.debug( - "Event listener callback") - event_listener(self.callback_id, json_metric) - except Exception, e: - self.logger.exception( - "Notifying listener %s: %s", - self.callback_id, e) - self.logger.debug( - "Event listener callback complete") + "Event listener callback complete") except Exception, e: self.logger.error("Error parsing JSON: %s", e) except IOError: @@ -128,6 +131,7 @@ class FIOInvoker(object): def terminate(self): self.logger.debug("Terminating fio on " + self.remote_host) + self.terminated = True ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) |