Fix piped transfer with become (#34584)
* Ignore become if we shouldn't be sudoable
* More explicit passing of kwargs
* dd/piped put should be sudoable=False. Fixes #34523
(cherry picked from commit 03794864c2
)
This commit is contained in:
parent
6f7e1fa773
commit
55765c8b1e
1 changed files with 3 additions and 3 deletions
|
@ -641,7 +641,7 @@ class Connection(ConnectionBase):
|
|||
# only when using ssh. Otherwise we can send initial data straightaway.
|
||||
|
||||
state = states.index('ready_to_send')
|
||||
if b'ssh' in cmd:
|
||||
if b'ssh' in cmd and sudoable:
|
||||
if self._play_context.prompt:
|
||||
# We're requesting escalation with a password, so we have to
|
||||
# wait for a password prompt.
|
||||
|
@ -853,7 +853,7 @@ class Connection(ConnectionBase):
|
|||
def _run(self, cmd, in_data, sudoable=True, checkrc=True):
|
||||
"""Wrapper around _bare_run that retries the connection
|
||||
"""
|
||||
return self._bare_run(cmd, in_data, sudoable, checkrc)
|
||||
return self._bare_run(cmd, in_data, sudoable=sudoable, checkrc=checkrc)
|
||||
|
||||
@_ssh_retry
|
||||
def _file_transport_command(self, in_path, out_path, sftp_action):
|
||||
|
@ -914,7 +914,7 @@ class Connection(ConnectionBase):
|
|||
else:
|
||||
in_data = open(to_bytes(in_path, errors='surrogate_or_strict'), 'rb').read()
|
||||
in_data = to_bytes(in_data, nonstring='passthru')
|
||||
(returncode, stdout, stderr) = self.exec_command('dd of=%s bs=%s' % (out_path, BUFSIZE), in_data=in_data)
|
||||
(returncode, stdout, stderr) = self.exec_command('dd of=%s bs=%s' % (out_path, BUFSIZE), in_data=in_data, sudoable=False)
|
||||
|
||||
# Check the return code and rollover to next method if failed
|
||||
if returncode == 0:
|
||||
|
|
Loading…
Reference in a new issue