Skip to content
20 changes: 19 additions & 1 deletion holmes/core/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,7 @@ def check_prerequisites(self):
text=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
timeout=60,
)
if (
prereq.expected_output
Expand All @@ -438,7 +439,24 @@ def check_prerequisites(self):
self.error = f"`{prereq.command}` did not include `{prereq.expected_output}`"
except subprocess.CalledProcessError as e:
self.status = ToolsetStatusEnum.FAILED
self.error = f"`{prereq.command}` returned {e.returncode}"
output_info = (
f"\nStdout: {e.stdout}\nStderr: {e.stderr}"
if e.stdout or e.stderr
else ""
)
self.error = (
f"`{prereq.command}` returned {e.returncode}{output_info}"
)
except subprocess.TimeoutExpired as e:
self.status = ToolsetStatusEnum.FAILED
output_info = (
f"\nPartial stdout: {e.stdout}\nPartial stderr: {e.stderr}"
if e.stdout or e.stderr
else ""
)
self.error = (
f"`{prereq.command}` timed out after 60 seconds{output_info}"
)

elif isinstance(prereq, ToolsetEnvironmentPrerequisite):
for env_var in prereq.env:
Expand Down
Loading