diff options
author | chenjiankun <chenjiankun1@huawei.com> | 2017-05-26 06:52:07 +0000 |
---|---|---|
committer | chenjiankun <chenjiankun1@huawei.com> | 2017-05-26 07:06:58 +0000 |
commit | 8a99466a004256005a2a3c60ed39641937d2fe30 (patch) | |
tree | 689cd1a9b56f512fd38f03c6735fe819f9d8c786 | |
parent | dd42ba3cafb908246da5b90c8bbbc2c7d0beb801 (diff) |
Bugfix: AttributeError when run tc055
JIRA: YARDSTICK-662
When I run tc055, I got an error, see log:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in
_bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114,
in run
self._target(*self._args, **self._kwargs)
File
"/usr/local/lib/python2.7/dist-packages/yardstick/benchmark/runners/iteration.py",
line 46, in _worker_process
initial_rate = options_cfg.get("rate", 100)
AttributeError: 'NoneType' object has no attribute 'get'
This is because in the former patch, we get 'options' by scenario_cfg['options'], it is
unsafe since some test case do not have 'options' field. For tc055, 'options' is None.
Change-Id: I18a4a7954c18c609f422da403fe65c4739c93648
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
-rw-r--r-- | yardstick/benchmark/runners/iteration.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/yardstick/benchmark/runners/iteration.py b/yardstick/benchmark/runners/iteration.py index 29daa0d42..3963de871 100644 --- a/yardstick/benchmark/runners/iteration.py +++ b/yardstick/benchmark/runners/iteration.py @@ -41,10 +41,8 @@ def _worker_process(queue, cls, method_name, scenario_cfg, interval = runner_cfg.get("interval", 1) iterations = runner_cfg.get("iterations", 1) run_step = runner_cfg.get("run_step", "setup,run,teardown") + delta = runner_cfg.get("delta", 2) - options_cfg = scenario_cfg['options'] - initial_rate = options_cfg.get("rate", 100) - scenario_cfg['options']['rate'] = initial_rate LOG.info("worker START, iterations %d times, class %s", iterations, cls) runner_cfg['runner_id'] = os.getpid() @@ -82,6 +80,12 @@ def _worker_process(queue, cls, method_name, scenario_cfg, LOG.warning("SLA validation failed: %s", assertion.args) errors = assertion.args elif sla_action == "rate-control": + try: + scenario_cfg['options']['rate'] + except KeyError: + scenario_cfg.setdefault('options', {}) + scenario_cfg['options']['rate'] = 100 + scenario_cfg['options']['rate'] -= delta sequence = 1 continue |