diff options
-rw-r--r-- | yardstick/benchmark/runners/arithmetic.py | 8 | ||||
-rw-r--r-- | yardstick/benchmark/runners/duration.py | 12 | ||||
-rw-r--r-- | yardstick/benchmark/scenarios/base.py | 9 |
3 files changed, 22 insertions, 7 deletions
diff --git a/yardstick/benchmark/runners/arithmetic.py b/yardstick/benchmark/runners/arithmetic.py index bac7efb49..a3aceb35d 100644 --- a/yardstick/benchmark/runners/arithmetic.py +++ b/yardstick/benchmark/runners/arithmetic.py @@ -26,9 +26,6 @@ def _worker_process(queue, cls, method_name, context, scenario_args): sequence = 1 - benchmark = cls(context) - method = getattr(benchmark, method_name) - interval = context.get("interval", 1) arg_name = context.get('name') stop = context.get('stop') @@ -41,6 +38,10 @@ def _worker_process(queue, cls, method_name, context, scenario_args): LOG.info("worker START, step(%s, %d, %d, %d), class %s", arg_name, start, stop, step, cls) + benchmark = cls(context) + benchmark.setup() + method = getattr(benchmark, method_name) + record_context = {"runner": context["runner"], "host": context["host"]} @@ -91,6 +92,7 @@ def _worker_process(queue, cls, method_name, context, scenario_args): if errors: break + benchmark.teardown() LOG.info("worker END") diff --git a/yardstick/benchmark/runners/duration.py b/yardstick/benchmark/runners/duration.py index 991724826..61d498f02 100644 --- a/yardstick/benchmark/runners/duration.py +++ b/yardstick/benchmark/runners/duration.py @@ -25,13 +25,15 @@ def _worker_process(queue, cls, method_name, context, scenario_args): sequence = 1 - benchmark = cls(context) - method = getattr(benchmark, method_name) interval = context.get("interval", 1) duration = context.get("duration", 60) + LOG.info("worker START, duration %d sec, class %s", duration, cls) + context['runner'] = os.getpid() - LOG.info("worker START, duration %d sec, class %s", duration, cls) + benchmark = cls(context) + benchmark.setup() + method = getattr(benchmark, method_name) record_context = {"runner": context["runner"], "host": context["host"]} @@ -81,7 +83,9 @@ def _worker_process(queue, cls, method_name, context, scenario_args): if (errors and sla_action is None) or (time.time() - start > duration): LOG.info("worker END") - return + break + + benchmark.teardown() class DurationRunner(base.Runner): diff --git a/yardstick/benchmark/scenarios/base.py b/yardstick/benchmark/scenarios/base.py index 540acca47..e1e31fd2a 100644 --- a/yardstick/benchmark/scenarios/base.py +++ b/yardstick/benchmark/scenarios/base.py @@ -15,7 +15,16 @@ import yardstick.common.utils as utils class Scenario(object): + def setup(self): + ''' default impl for scenario setup ''' + pass + def run(self, args): + ''' catcher for not implemented run methods in subclasses ''' + raise RuntimeError("run method not implemented") + + def teardown(self): + ''' default impl for scenario teardown ''' pass @staticmethod |