mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-02-03 23:41:51 +00:00
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). Signed-off-by: handisyde <github@handisyde.com> * changelog: rename fragment to match PR number Signed-off-by: handisyde <github@handisyde.com> * Update changelogs/fragments/11172-zfs-changed-extra-props.yml Co-authored-by: Felix Fontein <felix@fontein.de> --------- Signed-off-by: handisyde <github@handisyde.com> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
f27839673c
commit
ebcad7e6d1
2 changed files with 6 additions and 1 deletions
3
changelogs/fragments/11172-zfs-changed-extra-props.yml
Normal file
3
changelogs/fragments/11172-zfs-changed-extra-props.yml
Normal file
|
|
@ -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).
|
||||||
|
|
@ -185,9 +185,11 @@ class Zfs:
|
||||||
def set_properties_if_changed(self):
|
def set_properties_if_changed(self):
|
||||||
diff = {"before": {"extra_zfs_properties": {}}, "after": {"extra_zfs_properties": {}}}
|
diff = {"before": {"extra_zfs_properties": {}}, "after": {"extra_zfs_properties": {}}}
|
||||||
current_properties = self.list_properties()
|
current_properties = self.list_properties()
|
||||||
|
previous_values = {}
|
||||||
for prop, value in self.extra_zfs_properties.items():
|
for prop, value in self.extra_zfs_properties.items():
|
||||||
current_value = self.get_property(prop, current_properties)
|
current_value = self.get_property(prop, current_properties)
|
||||||
if current_value != value:
|
if current_value != value:
|
||||||
|
previous_values[prop] = current_value
|
||||||
self.set_property(prop, value)
|
self.set_property(prop, value)
|
||||||
diff["before"]["extra_zfs_properties"][prop] = current_value
|
diff["before"]["extra_zfs_properties"][prop] = current_value
|
||||||
diff["after"]["extra_zfs_properties"][prop] = value
|
diff["after"]["extra_zfs_properties"][prop] = value
|
||||||
|
|
@ -198,7 +200,7 @@ class Zfs:
|
||||||
value = self.get_property(prop, updated_properties)
|
value = self.get_property(prop, updated_properties)
|
||||||
if value is None:
|
if value is None:
|
||||||
self.module.fail_json(msg=f"zfsprop was not present after being successfully set: {prop}")
|
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
|
self.changed = True
|
||||||
if prop in diff["after"]["extra_zfs_properties"]:
|
if prop in diff["after"]["extra_zfs_properties"]:
|
||||||
diff["after"]["extra_zfs_properties"][prop] = value
|
diff["after"]["extra_zfs_properties"][prop] = value
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue