Пример #1
0
 def _copy(self, direction, local_path, remote_path, **kwargs):
     # TODO create dir is not existing
     NodeManager.gen_ssh_config(self.node)
     cmd = ['scp', '-i', SshUtil.get_id_rsa(), '-F',
            SshUtil.get_config_file_path()]
     if direction == 'to':
         if os.path.isdir(local_path):
             cmd.append('-r')
         cmd = cmd + [local_path,
                      ('%s:%s') % (self.node.name, remote_path)]
     if direction == 'from':
         if self.node.is_dir(remote_path):
             cmd.append('-r')
         cmd = cmd + [('%s:%s') % (self.node.name, remote_path),
                      local_path]
     if self.node.password:
         cmd = ['sshpass', '-p', self.node.password] + cmd
     return execute(cmd, **kwargs)
Пример #2
0
 def execute(self, cmd, **kwargs):
     if 'log_true' in kwargs:
         if kwargs['log_true']:
             LOG.info('Node: %s Executing: %s' % (self.node.name, cmd))
         kwargs.pop('log_true')
     NodeManager.gen_ssh_config(self.node)
     if not isinstance(cmd, str):
         cmd = ' '.join(cmd)
     cmd_addition = ['ssh', '-i', SshUtil.get_id_rsa(), '-F',
                     SshUtil.get_config_file_path(),
                     self.node.name]
     if self.node.password:
         cmd_addition = ['sshpass', '-p', self.node.password] + cmd_addition
     if 'as_root' in kwargs:
         kwargs.pop('as_root')
         cmd = 'sudo ' + cmd
     cmd_addition.append(cmd)
     return execute(cmd_addition, **kwargs)