summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Moser <mail@renemoser.net>2016-07-06 20:27:31 +0200
committerRene Moser <mail@renemoser.net>2016-07-07 11:01:30 +0200
commit5b9f79514079ea87d5d5cab7d61ff78efa1ba068 (patch)
tree7136c359aef94b3bf33980c40414d29bd8c39772
parent8a2f54bceefb3e873c7cdfbda37cb253824b23ea (diff)
downloadansible-5b9f79514079ea87d5d5cab7d61ff78efa1ba068.tar.gz
cloudstack: handle unicode API results in has_changed (#16601)
* cloudstack: handle unicode API results in has_changed * cloudstack: add more case sensitve keys
-rw-r--r--lib/ansible/module_utils/cloudstack.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/ansible/module_utils/cloudstack.py b/lib/ansible/module_utils/cloudstack.py
index af385ee300..f6760681cc 100644
--- a/lib/ansible/module_utils/cloudstack.py
+++ b/lib/ansible/module_utils/cloudstack.py
@@ -93,6 +93,9 @@ class AnsibleCloudStack(object):
# these keys will be compared case sensitive in self.has_changed()
self.case_sensitive_keys = [
'id',
+ 'displaytext',
+ 'displayname',
+ 'description',
]
self.module = module
@@ -154,12 +157,17 @@ class AnsibleCloudStack(object):
continue
if key in current_dict:
- if self.case_sensitive_keys and key in self.case_sensitive_keys:
- if str(value) != str(current_dict[key]):
+ if isinstance(current_dict[key], (int, long, float, complex)):
+ if value != current_dict[key]:
+ return True
+ else:
+ if self.case_sensitive_keys and key in self.case_sensitive_keys:
+ if value != current_dict[key].encode('utf-8'):
+ return True
+
+ # Test for diff in case insensitive way
+ elif value.lower() != current_dict[key].encode('utf-8').lower():
return True
- # Test for diff in case insensitive way
- elif str(value).lower() != str(current_dict[key]).lower():
- return True
else:
return True
return False