mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-06 22:24:23 -07:00
allow configuring sftp/scp executables (#36648)
* allow configuring sftp/scp executables fixes #36616 also removed dupe test
This commit is contained in:
parent
e7db3c0eba
commit
4aac0f5f18
2 changed files with 30 additions and 31 deletions
|
@ -65,9 +65,24 @@ DOCUMENTATION = '''
|
|||
env: [{name: ANSIBLE_SSH_EXECUTABLE}]
|
||||
ini:
|
||||
- {key: ssh_executable, section: ssh_connection}
|
||||
yaml: {key: ssh_connection.ssh_executable}
|
||||
#const: ANSIBLE_SSH_EXECUTABLE
|
||||
version_added: "2.2"
|
||||
sftp_executable:
|
||||
default: sftp
|
||||
description:
|
||||
- This defines the location of the sftp binary. It defaults to `sftp` which will use the first binary available in $PATH.
|
||||
env: [{name: ANSIBLE_SFTP_EXECUTABLE}]
|
||||
ini:
|
||||
- {key: sftp_executable, section: ssh_connection}
|
||||
version_added: "2.6"
|
||||
scp_executable:
|
||||
default: scp
|
||||
description:
|
||||
- This defines the location of the scp binary. It defaults to `scp` which will use the first binary available in $PATH.
|
||||
env: [{name: ANSIBLE_SCP_EXECUTABLE}]
|
||||
ini:
|
||||
- {key: scp_executable, section: ssh_connection}
|
||||
version_added: "2.6"
|
||||
scp_extra_args:
|
||||
description: Extra exclusive to the 'scp' CLI
|
||||
vars:
|
||||
|
@ -913,15 +928,16 @@ class Connection(ConnectionBase):
|
|||
for method in methods:
|
||||
returncode = stdout = stderr = None
|
||||
if method == 'sftp':
|
||||
cmd = self._build_command('sftp', to_bytes(host))
|
||||
cmd = self._build_command(self.get_option('sftp_executable'), to_bytes(host))
|
||||
in_data = u"{0} {1} {2}\n".format(sftp_action, shlex_quote(in_path), shlex_quote(out_path))
|
||||
in_data = to_bytes(in_data, nonstring='passthru')
|
||||
(returncode, stdout, stderr) = self._bare_run(cmd, in_data, checkrc=False)
|
||||
elif method == 'scp':
|
||||
scp = self.get_option('scp_executable')
|
||||
if sftp_action == 'get':
|
||||
cmd = self._build_command('scp', u'{0}:{1}'.format(host, shlex_quote(in_path)), out_path)
|
||||
cmd = self._build_command(scp, u'{0}:{1}'.format(host, shlex_quote(in_path)), out_path)
|
||||
else:
|
||||
cmd = self._build_command('scp', in_path, u'{0}:{1}'.format(host, shlex_quote(out_path)))
|
||||
cmd = self._build_command(scp, in_path, u'{0}:{1}'.format(host, shlex_quote(out_path)))
|
||||
in_data = None
|
||||
(returncode, stdout, stderr) = self._bare_run(cmd, in_data, checkrc=False)
|
||||
elif method == 'piped':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue