cloudstack: add _has_changed() to utils
Generic method to compare values in dict.
This commit is contained in:
parent
765c8fe368
commit
6354ca0718
1 changed files with 21 additions and 0 deletions
|
@ -69,6 +69,27 @@ class AnsibleCloudStack:
|
|||
self.cs = CloudStack(**read_config())
|
||||
|
||||
|
||||
def _has_changed(self, want_dict, current_dict, only_keys=None):
|
||||
for key, value in want_dict.iteritems():
|
||||
|
||||
# Optionally limit by a list of keys
|
||||
if only_keys and key not in only_keys:
|
||||
continue;
|
||||
|
||||
if key in current_dict:
|
||||
|
||||
# API returns string for int in some cases, just to make sure
|
||||
if isinstance(value, int):
|
||||
current_dict[key] = int(current_dict[key])
|
||||
elif isinstance(value, str):
|
||||
current_dict[key] = str(current_dict[key])
|
||||
|
||||
# Only need to detect a singe change, not every item
|
||||
if value != current_dict[key]:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _get_by_key(self, key=None, my_dict={}):
|
||||
if key:
|
||||
if key in my_dict:
|
||||
|
|
Loading…
Reference in a new issue