From 3d42ad4c6cac7337482b520baee63bb79c760a6d Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Sun, 30 Nov 2025 15:03:32 +0100 Subject: [PATCH] [PR #11172/ebcad7e6 backport][stable-12] zfs: mark change correctly when updating properties whose current value differs, even if they already have a non-default value (Fixes #11019) (#11234) zfs: mark change correctly when updating properties whose current value differs, even if they already have a non-default value (Fixes #11019) (#11172) * zfs - mark change correctly when updating properties whose current value differs, even if they already have a non-default value (https://github.com/ansible-collections/community.general/issues/11019). * changelog: rename fragment to match PR number * Update changelogs/fragments/11172-zfs-changed-extra-props.yml --------- (cherry picked from commit ebcad7e6d111f3b6326f058e800cbc8fd44ecce9) Signed-off-by: handisyde Co-authored-by: Paul Mercier-Handisyde <33284285+handisyde@users.noreply.github.com> Co-authored-by: Felix Fontein --- changelogs/fragments/11172-zfs-changed-extra-props.yml | 3 +++ plugins/modules/zfs.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/11172-zfs-changed-extra-props.yml diff --git a/changelogs/fragments/11172-zfs-changed-extra-props.yml b/changelogs/fragments/11172-zfs-changed-extra-props.yml new file mode 100644 index 0000000000..8fbdeadf58 --- /dev/null +++ b/changelogs/fragments/11172-zfs-changed-extra-props.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - zfs - mark change correctly when updating properties whose current value differs, even if they already have a non-default value (https://github.com/ansible-collections/community.general/issues/11019, https://github.com/ansible-collections/community.general/pull/11172). \ No newline at end of file diff --git a/plugins/modules/zfs.py b/plugins/modules/zfs.py index 492fa62d27..5682fa52bc 100644 --- a/plugins/modules/zfs.py +++ b/plugins/modules/zfs.py @@ -185,9 +185,11 @@ class Zfs: def set_properties_if_changed(self): diff = {"before": {"extra_zfs_properties": {}}, "after": {"extra_zfs_properties": {}}} current_properties = self.list_properties() + previous_values = {} for prop, value in self.extra_zfs_properties.items(): current_value = self.get_property(prop, current_properties) if current_value != value: + previous_values[prop] = current_value self.set_property(prop, value) diff["before"]["extra_zfs_properties"][prop] = current_value diff["after"]["extra_zfs_properties"][prop] = value @@ -198,7 +200,7 @@ class Zfs: value = self.get_property(prop, updated_properties) if value is None: self.module.fail_json(msg=f"zfsprop was not present after being successfully set: {prop}") - if self.get_property(prop, current_properties) != value: + if prop in previous_values and previous_values[prop] != value: self.changed = True if prop in diff["after"]["extra_zfs_properties"]: diff["after"]["extra_zfs_properties"][prop] = value