X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fbenchmark%2Fscenarios%2Favailability%2Fattacker%2Fattacker_process.py;h=f7ab23dcd946b56463e10eef5dc9e838f0ddd75a;hb=5b99f1532ec4d15258ec86e970acd2904954b3bc;hp=1d190a1605392665c83447fdd55e2dbdf4a46aea;hpb=827e341ed222a562a87d8f238fc0a6a16cfb1393;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py b/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py index 1d190a160..f7ab23dcd 100644 --- a/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py +++ b/yardstick/benchmark/scenarios/availability/attacker/attacker_process.py @@ -6,10 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from __future__ import absolute_import import logging -from baseattacker import BaseAttacker import yardstick.ssh as ssh +from yardstick.benchmark.scenarios.availability.attacker.baseattacker import \ + BaseAttacker LOG = logging.getLogger(__name__) @@ -21,13 +23,8 @@ class ProcessAttacker(BaseAttacker): def setup(self): LOG.debug("config:%s context:%s", self._config, self._context) host = self._context.get(self._config['host'], None) - ip = host.get("ip", None) - user = host.get("user", "root") - ssh_port = host.get("ssh_port", ssh.DEFAULT_PORT) - key_filename = host.get("key_filename", "~/.ssh/id_rsa") - self.connection = ssh.SSH(user, ip, key_filename=key_filename, - port=ssh_port) + self.connection = ssh.SSH.from_node(host, defaults={"user": "root"}) self.connection.wait(timeout=600) LOG.debug("ssh host success!") @@ -41,18 +38,17 @@ class ProcessAttacker(BaseAttacker): self.recovery_script = self.get_script_fullpath( self.fault_cfg['recovery_script']) - if self.check(): - self.setup_done = True + self.data[self.service_name] = self.check() def check(self): with open(self.check_script, "r") as stdin_file: exit_status, stdout, stderr = self.connection.execute( - "/bin/sh -s {0}".format(self.service_name), + "sudo /bin/sh -s {0}".format(self.service_name), stdin=stdin_file) - if stdout and "running" in stdout: + if stdout: LOG.info("check the envrioment success!") - return True + return int(stdout.strip('\n')) else: LOG.error( "the host envrioment is error, stdout:%s, stderr:%s", @@ -62,11 +58,13 @@ class ProcessAttacker(BaseAttacker): def inject_fault(self): with open(self.inject_script, "r") as stdin_file: exit_status, stdout, stderr = self.connection.execute( - "/bin/sh -s {0}".format(self.service_name), + "sudo /bin/sh -s {0}".format(self.service_name), stdin=stdin_file) def recover(self): with open(self.recovery_script, "r") as stdin_file: exit_status, stdout, stderr = self.connection.execute( - "/bin/sh -s {0} ".format(self.service_name), + "sudo /bin/bash -s {0} ".format(self.service_name), stdin=stdin_file) + if exit_status: + LOG.info("Fail to restart service!")