From f5b3f7da24d3e0493deca42aa450b860749c22eb Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 07:42:19 +0100 Subject: [PATCH] [PR #11273/b2f16f18 backport][stable-10] test(integration): monit: backport of PR 11255 (#11274) test(integration): monit: backport of PR 11255 (#11273) * test(integration): monit: backport of PR 11255 * add changelog frag (cherry picked from commit b2f16f184a18b5b7dd1a03e9c57004a8ab149608) Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- changelogs/fragments/11255-monit-integrationtests.yml | 2 ++ plugins/modules/monit.py | 3 +++ .../targets/monit/tasks/test_reload_present.yml | 8 ++++++++ 3 files changed, 13 insertions(+) create mode 100644 changelogs/fragments/11255-monit-integrationtests.yml diff --git a/changelogs/fragments/11255-monit-integrationtests.yml b/changelogs/fragments/11255-monit-integrationtests.yml new file mode 100644 index 0000000000..c8cfd08526 --- /dev/null +++ b/changelogs/fragments/11255-monit-integrationtests.yml @@ -0,0 +1,2 @@ +bugfixes: + - monit - add delay of 0.5 seconds after state change and check for status (https://github.com/ansible-collections/community.general/pull/11255). diff --git a/plugins/modules/monit.py b/plugins/modules/monit.py index a6df722dd8..ad752bc05b 100644 --- a/plugins/modules/monit.py +++ b/plugins/modules/monit.py @@ -259,6 +259,9 @@ class Monit(object): def change_state(self, state, expected_status, invert_expected=None): current_status = self.get_status() self.run_command(STATE_COMMAND_MAP[state]) + # Give monit daemon a moment to process the command before checking status + # to avoid race condition where HTTP interface may be temporarily unresponsive + time.sleep(0.5) status = self.wait_for_status_change(current_status) status = self.wait_for_monit_to_stop_pending(status) status_match = status.value == expected_status.value diff --git a/tests/integration/targets/monit/tasks/test_reload_present.yml b/tests/integration/targets/monit/tasks/test_reload_present.yml index 0bd6cd073b..fef8d84c16 100644 --- a/tests/integration/targets/monit/tasks/test_reload_present.yml +++ b/tests/integration/targets/monit/tasks/test_reload_present.yml @@ -52,6 +52,14 @@ name: monit state: restarted +- name: wait for monit daemon to be responsive after restart + command: monit status -B httpd_echo + register: monit_status_check + changed_when: false + until: monit_status_check.rc == 0 + retries: 10 + delay: 0.5 + - name: test process present again monit: name: httpd_echo