diff options
author | René Moser <mail@renemoser.net> | 2016-10-30 17:05:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-30 17:05:24 +0100 |
commit | 44bdc6fb79e8edbaf9101f3a7f57e9b02398a126 (patch) | |
tree | 1332e2ffa99610a82e702089b053dd8b269741f9 | |
parent | 01af85909069b644ee1781a07b2464224bf946f2 (diff) | |
download | ansible-44bdc6fb79e8edbaf9101f3a7f57e9b02398a126.tar.gz |
cloudstack: implement diff support (#18254)
-rw-r--r-- | lib/ansible/module_utils/cloudstack.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/ansible/module_utils/cloudstack.py b/lib/ansible/module_utils/cloudstack.py index 5962c64ce7..d01fdcdb60 100644 --- a/lib/ansible/module_utils/cloudstack.py +++ b/lib/ansible/module_utils/cloudstack.py @@ -69,6 +69,10 @@ class AnsibleCloudStack(object): self.result = { 'changed': False, + 'diff' : { + 'before': dict(), + 'after': dict() + } } # Common returns, will be merged with self.returns @@ -149,6 +153,7 @@ class AnsibleCloudStack(object): def has_changed(self, want_dict, current_dict, only_keys=None): + result = False for key, value in want_dict.iteritems(): # Optionally limit by a list of keys @@ -172,18 +177,26 @@ class AnsibleCloudStack(object): current_dict[key] = complex(current_dict[key]) if value != current_dict[key]: - return True + self.result['diff']['before'][key] = current_dict[key] + self.result['diff']['after'][key] = value + result = True else: if self.case_sensitive_keys and key in self.case_sensitive_keys: if value != current_dict[key].encode('utf-8'): - return True + self.result['diff']['before'][key] = current_dict[key].encode('utf-8') + self.result['diff']['after'][key] = value + result = True # Test for diff in case insensitive way elif value.lower() != current_dict[key].encode('utf-8').lower(): - return True + self.result['diff']['before'][key] = current_dict[key].encode('utf-8') + self.result['diff']['after'][key] = value + result = True else: - return True - return False + self.result['diff']['before'][key] = None + self.result['diff']['after'][key] = value + result = True + return result def _get_by_key(self, key=None, my_dict=None): |