diff options
author | René Moser <mail@renemoser.net> | 2016-07-06 20:27:31 +0200 |
---|---|---|
committer | Rene Moser <mail@renemoser.net> | 2016-07-07 11:01:30 +0200 |
commit | 5b9f79514079ea87d5d5cab7d61ff78efa1ba068 (patch) | |
tree | 7136c359aef94b3bf33980c40414d29bd8c39772 | |
parent | 8a2f54bceefb3e873c7cdfbda37cb253824b23ea (diff) | |
download | ansible-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.py | 18 |
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 |