From d392c5150e85b2db842a7c4d206d03d3f7393d53 Mon Sep 17 00:00:00 2001 From: Hao Liu Date: Mon, 27 Feb 2023 16:20:11 -0500 Subject: [PATCH] differentiate timeout vs idle timeout currently idle timeout and timeout result in the same status call back this result in the AWX not being able to parse the differences between the two failure condition and make it confusing to debg Co-Authored-By: Gabriel Muniz --- ansible_runner/runner.py | 5 ++++- test/integration/test_runner.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ansible_runner/runner.py b/ansible_runner/runner.py index 737d557fd..a0289ac20 100644 --- a/ansible_runner/runner.py +++ b/ansible_runner/runner.py @@ -35,6 +35,7 @@ def __init__(self, config, cancel_callback=None, remove_partials=True, event_han self.status_handler = status_handler self.canceled = False self.timed_out = False + self.idle_timed_out = False self.errored = False self.status = "unstarted" self.rc = None @@ -337,7 +338,7 @@ def _decode(x): if self.config.idle_timeout and (time.time() - self.last_stdout_update) > self.config.idle_timeout: self.kill_container() Runner.handle_termination(child.pid, is_cancel=False) - self.timed_out = True + self.idle_timed_out = True stdout_handle.close() stderr_handle.close() @@ -350,6 +351,8 @@ def _decode(x): self.status_callback('successful') elif self.timed_out: self.status_callback('timeout') + elif self.idle_timed_out: + self.status_callback('idle_timeout') else: self.status_callback('failed') diff --git a/test/integration/test_runner.py b/test/integration/test_runner.py index c3ccfa656..cff7183dd 100644 --- a/test/integration/test_runner.py +++ b/test/integration/test_runner.py @@ -110,7 +110,7 @@ def test_run_command_idle_timeout(rc): rc.idle_timeout = 0.0000001 runner = Runner(config=rc) status, exitcode = runner.run() - assert status == 'timeout' + assert status == 'idle_timeout' assert exitcode == 254