Merge "Apply process timeout to process.send_all method from sh.execute" into osp-16.2

This commit is contained in:
Zuul 2023-11-08 09:47:30 +00:00 committed by Gerrit Code Review
commit 634ca64346

View File

@ -158,21 +158,23 @@ def execute(command, environment=None, timeout=None, shell=None,
stdin=stdin, stdin=stdin,
login=login, login=login,
expect_exit_status=expect_exit_status, expect_exit_status=expect_exit_status,
decode_streams=decode_streams) decode_streams=decode_streams,
timeout=timeout)
def execute_process(process: _process.ShellProcessFixture, def execute_process(process: _process.ShellProcessFixture,
stdin=None, stdin=None,
expect_exit_status=0, expect_exit_status=0,
login=None, login=None,
decode_streams=True) \ decode_streams=True,
timeout=None) \
-> ShellExecuteResult: -> ShellExecuteResult:
error = None error = None
status = None status = None
try: try:
with process: with process:
if stdin and isinstance(stdin, DATA_TYPES): if stdin and isinstance(stdin, DATA_TYPES):
process.send_all(data=stdin) process.send_all(data=stdin, timeout=timeout)
except _exception.ShellTimeoutExpired: except _exception.ShellTimeoutExpired:
status = ShellExecuteStatus.TIMEDOUT status = ShellExecuteStatus.TIMEDOUT
if expect_exit_status is not None: if expect_exit_status is not None: