X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yardstick%2Fbenchmark%2Fscenarios%2Favailability%2Fserviceha.py;h=6d0d812af9fd038985ecd6eeba8c3a248e9d1592;hb=050a7452ef96c2a5d887207587436fc61e7d24cd;hp=10f2c4f4548ffdd0dd8148795f39b86c39461d79;hpb=94c16e0c5a7589951aea3fb9ff4dd01f37a327f4;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/availability/serviceha.py b/yardstick/benchmark/scenarios/availability/serviceha.py index 10f2c4f45..6d0d812af 100755 --- a/yardstick/benchmark/scenarios/availability/serviceha.py +++ b/yardstick/benchmark/scenarios/availability/serviceha.py @@ -6,6 +6,8 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from __future__ import print_function +from __future__ import absolute_import import logging from yardstick.benchmark.scenarios import base from yardstick.benchmark.scenarios.availability.monitor import basemonitor @@ -21,14 +23,16 @@ class ServiceHA(base.Scenario): def __init__(self, scenario_cfg, context_cfg): LOG.debug( - "scenario_cfg:%s context_cfg:%s" % - (scenario_cfg, context_cfg)) + "scenario_cfg:%s context_cfg:%s", + scenario_cfg, context_cfg) self.scenario_cfg = scenario_cfg self.context_cfg = context_cfg self.setup_done = False + self.data = {} + self.pass_flag = True def setup(self): - '''scenario setup''' + """scenario setup""" nodes = self.context_cfg.get("nodes", None) if nodes is None: LOG.error("the nodes info is none") @@ -42,10 +46,11 @@ class ServiceHA(base.Scenario): attacker_ins = attacker_cls(attacker_cfg, nodes) attacker_ins.setup() self.attackers.append(attacker_ins) + self.data = dict(self.data.items() + attacker_ins.data.items()) monitor_cfgs = self.scenario_cfg["options"]["monitors"] - self.monitorMgr = basemonitor.MonitorMgr() + self.monitorMgr = basemonitor.MonitorMgr(self.data) self.monitorMgr.init_monitors(monitor_cfgs, nodes) self.setup_done = True @@ -57,31 +62,43 @@ class ServiceHA(base.Scenario): return self.monitorMgr.start_monitors() - LOG.info("monitor start!") + LOG.info("HA monitor start!") for attacker in self.attackers: attacker.inject_fault() self.monitorMgr.wait_monitors() - LOG.info("monitor stop!") + LOG.info("HA monitor stop!") sla_pass = self.monitorMgr.verify_SLA() + for k, v in self.data.items(): + if v == 0: + result['sla_pass'] = 0 + self.pass_flag = False + LOG.info("The service process not found in the host envrioment, \ +the HA test case NOT pass") + return + self.monitorMgr.store_result(result) if sla_pass: result['sla_pass'] = 1 + LOG.info("The HA test case PASS the SLA") else: result['sla_pass'] = 0 - assert sla_pass is True, "the test cases is not pass the SLA" + self.pass_flag = False + assert sla_pass is True, "The HA test case NOT pass the SLA" return def teardown(self): - '''scenario teardown''' + """scenario teardown""" for attacker in self.attackers: attacker.recover() + assert self.pass_flag, "The HA test case NOT passed" + def _test(): # pragma: no cover - '''internal test function''' + """internal test function""" host = { "ip": "10.20.0.5", "user": "root", @@ -109,15 +126,16 @@ def _test(): # pragma: no cover sla = {"outage_time": 5} args = {"options": options, "sla": sla} - print "create instance" + print("create instance") terstInstance = ServiceHA(args, ctx) terstInstance.setup() result = {} terstInstance.run(result) - print result + print(result) terstInstance.teardown() + if __name__ == '__main__': # pragma: no cover _test()