From 2a376642ddc8be103e57eb688da86bfb71bf790a Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Tue, 18 May 2021 06:28:21 +1200 Subject: [PATCH] ModuleHelper - better mechanism for customizing "changed" behaviour (#2514) * better mechanism for customizing "changed" behaviour * dont drink and code: silly mistake from late at night * added changelog fragment --- changelogs/fragments/2514-mh-improved-changed.yml | 2 ++ plugins/module_utils/mh/base.py | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/2514-mh-improved-changed.yml diff --git a/changelogs/fragments/2514-mh-improved-changed.yml b/changelogs/fragments/2514-mh-improved-changed.yml new file mode 100644 index 0000000000..b540600130 --- /dev/null +++ b/changelogs/fragments/2514-mh-improved-changed.yml @@ -0,0 +1,2 @@ +minor_changes: + - ModuleHelper module utils - improved mechanism for customizing the calculation of ``changed`` (https://github.com/ansible-collections/community.general/pull/2514). diff --git a/plugins/module_utils/mh/base.py b/plugins/module_utils/mh/base.py index 2a2dd88f7b..e0de7f2fdd 100644 --- a/plugins/module_utils/mh/base.py +++ b/plugins/module_utils/mh/base.py @@ -33,9 +33,15 @@ class ModuleHelperBase(object): def __quit_module__(self): pass + def __changed__(self): + raise NotImplementedError() + @property def changed(self): - return self._changed + try: + return self.__changed__() + except NotImplementedError: + return self._changed @changed.setter def changed(self, value):