cloudstack: handle unicode API results in has_changed (#16601)

* cloudstack: handle unicode API results in has_changed

* cloudstack: add more case sensitve keys
This commit is contained in:
René Moser 2016-07-06 20:27:31 +02:00 committed by GitHub
parent 58eab8ee9f
commit 0f5f5fffee

View file

@ -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
@ -155,12 +158,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