Fix ssh plugin to correctly fetch files when using scp (#18614)
Fetch module uses fetch_file() from plugin/connection/ssh.py to
retrieve files from the remote hosts which in turns uses
_file_transport_command(self, in_path, out_path, sftp_action) being
sftp_action = 'get'
When using scp rather than sftp, sftp_action variable is not used
and the scp command is formed in a way that the file is always
sent to the remote machine
This patch fixes _file_transport_command() to correctly form the scp
swaping src and dest if sftp_action is 'get'
Bug introduced at 8e47b9b
Fixes #18603
Signed-off-by: Alberto Murillo Silva <alberto.murillo.silva@intel.com>
This commit is contained in:
parent
43714f859a
commit
ec2521f6af
1 changed files with 4 additions and 1 deletions
|
@ -628,7 +628,10 @@ class Connection(ConnectionBase):
|
||||||
cmd = self._build_command('sftp', to_bytes(host))
|
cmd = self._build_command('sftp', to_bytes(host))
|
||||||
in_data = u"{0} {1} {2}\n".format(sftp_action, shlex_quote(in_path), shlex_quote(out_path))
|
in_data = u"{0} {1} {2}\n".format(sftp_action, shlex_quote(in_path), shlex_quote(out_path))
|
||||||
elif method == 'scp':
|
elif method == 'scp':
|
||||||
cmd = self._build_command('scp', in_path, u'{0}:{1}'.format(host, shlex_quote(out_path)))
|
if sftp_action == 'get':
|
||||||
|
cmd = self._build_command('scp', u'{0}:{1}'.format(host, shlex_quote(out_path)), in_path)
|
||||||
|
else:
|
||||||
|
cmd = self._build_command('scp', in_path, u'{0}:{1}'.format(host, shlex_quote(out_path)))
|
||||||
in_data = None
|
in_data = None
|
||||||
|
|
||||||
in_data = to_bytes(in_data, nonstring='passthru')
|
in_data = to_bytes(in_data, nonstring='passthru')
|
||||||
|
|
Loading…
Reference in a new issue