lib.Result: Fill "cmd" ctor parameter
Commands executed by ExecContext and its derived classes don't populate the "cmd" parameter of "Result"'s constructor. Fixing that makes for nicer error messages. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
0386c351a9
commit
048726a1aa
5 changed files with 66 additions and 54 deletions
|
|
@ -83,7 +83,7 @@ class Local(Base):
|
|||
|
||||
# PTY merges stdout/stderr
|
||||
stdout = b''.join(stdout_chunks) if stdout_chunks else None
|
||||
return Result(stdout, None, exit_code)
|
||||
return Result(stdout, None, exit_code, cmd = cmd)
|
||||
|
||||
# -- non-interactive mode
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ class Local(Base):
|
|||
stdout = b''.join(stdout_parts) if stdout_parts else None
|
||||
stderr = b''.join(stderr_parts) if stderr_parts else None
|
||||
|
||||
return Result(stdout, stderr, exit_code)
|
||||
return Result(stdout, stderr, exit_code, cmd = cmd)
|
||||
|
||||
finally:
|
||||
if cwd is not None:
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ class AsyncSSH(Base):
|
|||
)
|
||||
|
||||
stdout = b''.join(stdout_parts) if stdout_parts else None
|
||||
return Result(stdout, None, exit_code)
|
||||
return Result(stdout, None, exit_code, cmd = cmd)
|
||||
|
||||
finally:
|
||||
if stdin_reader_installed:
|
||||
|
|
@ -353,7 +353,7 @@ class AsyncSSH(Base):
|
|||
exit_code = completed.returncode if completed.returncode is not None else -1
|
||||
|
||||
stdout = b''.join(stdout_parts) if stdout_parts else None
|
||||
return Result(stdout, None, exit_code)
|
||||
return Result(stdout, None, exit_code, cmd = cmd)
|
||||
|
||||
async def _run_ssh(
|
||||
self,
|
||||
|
|
@ -446,7 +446,7 @@ class AsyncSSH(Base):
|
|||
completed.returncode if completed.returncode is not None else -1
|
||||
)
|
||||
|
||||
return Result(stdout, stderr, exit_code)
|
||||
return Result(stdout, stderr, exit_code, cmd = cmd)
|
||||
|
||||
except Exception as e:
|
||||
log(ERR, f'Failed to run command {" ".join(cmd)} ({e})')
|
||||
|
|
|
|||
|
|
@ -84,4 +84,4 @@ class Paramiko(Base):
|
|||
if cmd_input is not None:
|
||||
stdin.write(cmd_input)
|
||||
exit_status = stdout.channel.recv_exit_status()
|
||||
return Result(stdout.read(), stderr.read(), exit_status)
|
||||
return Result(stdout.read(), stderr.read(), exit_status, cmd = cmd)
|
||||
|
|
|
|||
Loading…
Reference in a new issue