From 06f272129c6a6271b7a7ede9238e4295b1ece218 Mon Sep 17 00:00:00 2001 From: s-hamann <10639154+s-hamann@users.noreply.github.com> Date: Fri, 3 Oct 2025 12:28:41 +0000 Subject: [PATCH] fetch - return file in result when changed is true (#85729) Set the (source) file attribute in the return value if the file changed (e.g. on initial fetch). The attribute is already set in all other cases. (cherry picked from commit 0c7dcb65cff52d92e488ff75008d9256be37734b) --- changelogs/fragments/fix-fetch-return-file.yml | 2 ++ lib/ansible/plugins/action/fetch.py | 2 +- .../targets/fetch/roles/fetch_tests/tasks/normal.yml | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/fix-fetch-return-file.yml diff --git a/changelogs/fragments/fix-fetch-return-file.yml b/changelogs/fragments/fix-fetch-return-file.yml new file mode 100644 index 00000000000..003895d22c4 --- /dev/null +++ b/changelogs/fragments/fix-fetch-return-file.yml @@ -0,0 +1,2 @@ +bugfixes: + - fetch - also return ``file`` in the result when changed is ``True`` (https://github.com/ansible/ansible/pull/85729). diff --git a/lib/ansible/plugins/action/fetch.py b/lib/ansible/plugins/action/fetch.py index 4978f029994..1b1b1ee4053 100644 --- a/lib/ansible/plugins/action/fetch.py +++ b/lib/ansible/plugins/action/fetch.py @@ -192,7 +192,7 @@ class ActionModule(ActionBase): msg="checksum mismatch", file=source, dest=dest, remote_md5sum=None, checksum=new_checksum, remote_checksum=remote_checksum)) else: - result.update({'changed': True, 'md5sum': new_md5, 'dest': dest, + result.update({'changed': True, 'md5sum': new_md5, 'file': source, 'dest': dest, 'remote_md5sum': None, 'checksum': new_checksum, 'remote_checksum': remote_checksum}) else: diff --git a/test/integration/targets/fetch/roles/fetch_tests/tasks/normal.yml b/test/integration/targets/fetch/roles/fetch_tests/tasks/normal.yml index 6f3ab62080d..cc951cbc5f4 100644 --- a/test/integration/targets/fetch/roles/fetch_tests/tasks/normal.yml +++ b/test/integration/targets/fetch/roles/fetch_tests/tasks/normal.yml @@ -30,8 +30,10 @@ that: - fetched is changed - fetched.checksum == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" + - fetched.file == remote_tmp_dir ~ "/orig" - fetched_again is not changed - fetched_again.checksum == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" + - fetched_again.file == remote_tmp_dir ~ "/orig" - fetched.remote_checksum == "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3" - lookup("file", output_dir + "/fetched/" + inventory_hostname + remote_tmp_dir + "/orig") == "test" - fetch_check_mode is skipped