diff --git a/fuel_dev_tools/slaves/__init__.py b/fuel_dev_tools/slaves/__init__.py index 4d123f5..f460ef2 100644 --- a/fuel_dev_tools/slaves/__init__.py +++ b/fuel_dev_tools/slaves/__init__.py @@ -15,15 +15,30 @@ from fabric import api as fabric_api from fuel_dev_tools import cmd_parser -from fuel_dev_tools import ssh -class SlavesMixin(cmd_parser.CmdParserMixin, ssh.SSHMixin): +class SlavesMixin(cmd_parser.CmdParserMixin): def discover_slaves(self): slaves = self.ssh_command('fuel', 'node') return self.parse_output(slaves) + def rsync_slave(self, slave, source, target): + self.print_debug('Syncing to slave {name} [{ip}]'.format(**slave)) + + target = ':{}'.format(target) + + hop_args = [ + '-e', + 'ssh -A -t root@{} -p {} ssh -A -t root@{}'.format( + self.app_args.ip, + self.app_args.port, + slave['ip'] + ) + ] + + self.rsync(source, target, *hop_args) + def slave_command(self, slave, *cmd): cmd = [ 'ssh', '-A', '-t', diff --git a/fuel_dev_tools/slaves/mcagent.py b/fuel_dev_tools/slaves/mcagent.py index 41a0ccd..947a1cc 100644 --- a/fuel_dev_tools/slaves/mcagent.py +++ b/fuel_dev_tools/slaves/mcagent.py @@ -48,21 +48,10 @@ class Rsync(slaves.SlavesMixin, def take_action(self, parsed_args): for slave in self.discover_slaves(): - self.print_debug('Syncing to slave {name} [{ip}]'.format(**slave)) - source = parsed_args.source - target = ':{}'.format(self.target_for_slave(slave)) + target = self.target_for_slave(slave) - hop_args = [ - '-e', - 'ssh -A -t root@{} -p {} ssh -A -t root@{}'.format( - self.app_args.ip, - self.app_args.port, - slave['ip'] - ) - ] - - self.rsync(source, target, *hop_args) + self.rsync_slave(slave, source, target) self.print_debug('Restarting mcollective') self.slave_command(slave, '/etc/init.d/mcollective', 'restart')