Skip to content

Commit

Permalink
Handle timeout in subprocess call
Browse files Browse the repository at this point in the history
  • Loading branch information
mangelajo committed Jan 22, 2025
1 parent 9844f77 commit fdbf82d
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions contrib/drivers/shell/jumpstarter_driver_shell/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,18 @@ def call_method(self, method: str, env, *args):
raise ValueError(f"Method '{method}' not found in available methods: {list(self.methods.keys())}")
script = self.methods[method]
logger.debug(f"running script: {script}")
result = self._run_inline_shell_script(method, script, *args, env_vars=env)
if result.returncode != 0:
logger.info(f"{method} return code: {result.returncode}")
if result.stderr != "":
logger.debug(f"{method} stderr:\n{result.stderr.rstrip("\n")}")
if result.stdout != "":
logger.debug(f"{method} stdout:\n{result.stdout.rstrip("\n")}")
return result.stdout, result.stderr, result.returncode
try:
result = self._run_inline_shell_script(method, script, *args, env_vars=env)
if result.returncode != 0:
logger.info(f"{method} return code: {result.returncode}")
if result.stderr != "":
logger.debug(f"{method} stderr:\n{result.stderr.rstrip("\n")}")
if result.stdout != "":
logger.debug(f"{method} stdout:\n{result.stdout.rstrip("\n")}")
return result.stdout, result.stderr, result.returncode
except subprocess.TimeoutExpired as e:
logger.error(f"Timeout expired while running {method}: {e}")
return "", f"Timeout expired while running {method}: {e}", 199

def _run_inline_shell_script(self, method, script, *args, env_vars=None):
"""
Expand Down

0 comments on commit fdbf82d

Please sign in to comment.