X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fbenchmark%2Fscenarios%2Favailability%2Fattacker%2Fattacker_general.py;h=48863af938068744ba29a74ce023715f35ec4bfa;hb=67da8f2ddb5cbf14bbf0df48b10240ba6ebadbe9;hp=a452c37ac91ab19eb8ae7c667b7f210499c91bce;hpb=fad4811d1a722f2577f158840b7c8e61489e2e90;p=yardstick.git diff --git a/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py b/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py index a452c37ac..48863af93 100644 --- a/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py +++ b/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py @@ -6,11 +6,13 @@ # 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 import util +from yardstick.benchmark.scenarios.availability.attacker.baseattacker import \ + BaseAttacker LOG = logging.getLogger(__name__) @@ -22,13 +24,8 @@ class GeneralAttacker(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!") @@ -38,19 +35,19 @@ class GeneralAttacker(BaseAttacker): if "action_parameter" in self._config: actionParameter = self._config['action_parameter'] str = util.buildshellparams(actionParameter) - LOG.debug("inject parameter is: {0}".format(actionParameter)) - LOG.debug("inject parameter values are: {0}" - .format(actionParameter.values())) - l = list(item for item in actionParameter.values()) + LOG.debug("inject parameter is: %s", actionParameter) + LOG.debug("inject parameter values are: %s", + list(actionParameter.values())) + l = list(actionParameter.values()) self.action_param = str.format(*l) if "rollback_parameter" in self._config: rollbackParameter = self._config['rollback_parameter'] str = util.buildshellparams(rollbackParameter) - LOG.debug("recover parameter is: {0}".format(rollbackParameter)) - LOG.debug("recover parameter values are: {0}". - format(rollbackParameter.values())) - l = list(item for item in rollbackParameter.values()) + LOG.debug("recover parameter is: %s", rollbackParameter) + LOG.debug("recover parameter values are: %s", + list(rollbackParameter.values())) + l = list(rollbackParameter.values()) self.rollback_param = str.format(*l) self.fault_cfg = BaseAttacker.attacker_cfgs.get(self.attack_key) @@ -60,23 +57,24 @@ class GeneralAttacker(BaseAttacker): self.fault_cfg['recovery_script']) def inject_fault(self): - LOG.debug("{0} starting inject!".format(self.key)) - LOG.debug("the inject_script path:{0}".format(self.inject_script)) + LOG.debug("%s starting inject!", self.key) + LOG.debug("the inject_script path:%s", self.inject_script) if "action_parameter" in self._config: - LOG.debug("the shell command is: {0}".format(self.action_param)) - exit_status, stdout, stderr = self.connection.execute( - self.action_param, - stdin=open(self.inject_script, "r")) + LOG.debug("the shell command is: %s", self.action_param) + with open(self.inject_script, "r") as stdin_file: + exit_status, stdout, stderr = self.connection.execute( + "sudo {}".format(self.action_param), + stdin=stdin_file) else: - exit_status, stdout, stderr = self.connection.execute( - "/bin/bash -s ", - stdin=open(self.inject_script, "r")) + with open(self.inject_script, "r") as stdin_file: + exit_status, stdout, stderr = self.connection.execute( + "sudo /bin/bash -s ", + stdin=stdin_file) - LOG.debug("the inject_fault's exit status is: {0}".format(exit_status)) + LOG.debug("the inject_fault's exit status is: %s", exit_status) if exit_status == 0: - LOG.debug("success,the inject_fault's output is: {0}" - .format(stdout)) + LOG.debug("success,the inject_fault's output is: %s", stdout) else: LOG.error( "the inject_fault's error, stdout:%s, stderr:%s", @@ -84,11 +82,13 @@ class GeneralAttacker(BaseAttacker): def recover(self): if "rollback_parameter" in self._config: - LOG.debug("the shell command is: {0}".format(self.rollback_param)) - exit_status, stdout, stderr = self.connection.execute( - self.rollback_param, - stdin=open(self.recovery_script, "r")) + LOG.debug("the shell command is: %s", self.rollback_param) + with open(self.recovery_script, "r") as stdin_file: + exit_status, stdout, stderr = self.connection.execute( + "sudo {}".format(self.rollback_param), + stdin=stdin_file) else: - exit_status, stdout, stderr = self.connection.execute( - "/bin/bash -s ", - stdin=open(self.recovery_script, "r")) + with open(self.recovery_script, "r") as stdin_file: + exit_status, stdout, stderr = self.connection.execute( + "sudo /bin/bash -s ", + stdin=stdin_file)