summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Moser <mail@renemoser.net>2016-10-30 17:05:24 +0100
committerGitHub <noreply@github.com>2016-10-30 17:05:24 +0100
commit44bdc6fb79e8edbaf9101f3a7f57e9b02398a126 (patch)
tree1332e2ffa99610a82e702089b053dd8b269741f9
parent01af85909069b644ee1781a07b2464224bf946f2 (diff)
downloadansible-44bdc6fb79e8edbaf9101f3a7f57e9b02398a126.tar.gz
cloudstack: implement diff support (#18254)
-rw-r--r--lib/ansible/module_utils/cloudstack.py23
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):