Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions changelogs/fragments/11172-zfs-changed-extra-props.yml
Original file line number Diff line number Diff line change
@@ -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).
4 changes: 3 additions & 1 deletion plugins/modules/zfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,9 +185,11 @@ def set_property(self, prop, value):
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
Expand All @@ -198,7 +200,7 @@ def set_properties_if_changed(self):
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
Expand Down