diff options
author | rexlee8776 <limingjiang@huawei.com> | 2018-06-19 10:40:20 +0000 |
---|---|---|
committer | rexlee8776 <limingjiang@huawei.com> | 2018-06-26 01:45:46 +0000 |
commit | 736f3fa5d52345d6fe5174b83de043f779fa0600 (patch) | |
tree | aec893f1b9d5d94f7dae693f6bae36f5e8a3d4cc /yardstick/benchmark/scenarios | |
parent | 172d932bccf58e1fb56872fffee698a9e36ddb83 (diff) |
Bugfix: HA kill process recovery has a conflict
It happens in Nokia SUT when running in the Plugfest. The problem happens when
the start_process start to recover the killed process (like nova-api), but the
self-cured mechanism already recovered. And somehow it lead to a conflict and
has problems.
So the recover of the HA attack-recover should be improved to only recover it
when it needs to.
JIRA: YARDSTICK-1222
Change-Id: I1acb5a7d59d6fe4e0de0b0c5942fa89e051dd1ff
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
Diffstat (limited to 'yardstick/benchmark/scenarios')
-rwxr-xr-x | yardstick/benchmark/scenarios/availability/serviceha.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/yardstick/benchmark/scenarios/availability/serviceha.py b/yardstick/benchmark/scenarios/availability/serviceha.py index 76721e38c..7f976fdbc 100755 --- a/yardstick/benchmark/scenarios/availability/serviceha.py +++ b/yardstick/benchmark/scenarios/availability/serviceha.py @@ -29,6 +29,7 @@ class ServiceHA(base.Scenario): self.context_cfg = context_cfg self.setup_done = False self.data = {} + self.sla_pass = False def setup(self): """scenario setup""" @@ -69,26 +70,28 @@ class ServiceHA(base.Scenario): self.monitorMgr.wait_monitors() LOG.info("Monitor '%s' stop!", self.__scenario_type__) - sla_pass = self.monitorMgr.verify_SLA() + self.sla_pass = self.monitorMgr.verify_SLA() service_not_found = False for k, v in self.data.items(): if v == 0: - sla_pass = False + self.sla_pass = False service_not_found = True LOG.info("The service process (%s) not found in the host envrioment", k) - result['sla_pass'] = 1 if sla_pass else 0 + result['sla_pass'] = 1 if self.sla_pass else 0 self.monitorMgr.store_result(result) self.verify_SLA( - sla_pass, ("a service process was not found in the host " - "environment" if service_not_found - else "MonitorMgr.verify_SLA() failed")) + self.sla_pass, ("a service process was not found in the host " + "environment" if service_not_found + else "MonitorMgr.verify_SLA() failed")) def teardown(self): """scenario teardown""" - for attacker in self.attackers: - attacker.recover() + # only recover when sla not pass + if not self.sla_pass: + for attacker in self.attackers: + attacker.recover() def _test(): # pragma: no cover |