Commit af49944a by Brian Coca

Merge pull request #11398 from resmo/for-ansible

cloudstack: fixes and updates
parents 6daae92e 79527235
...@@ -77,6 +77,14 @@ class AnsibleCloudStack: ...@@ -77,6 +77,14 @@ class AnsibleCloudStack:
else: else:
self.cs = CloudStack(**read_config()) self.cs = CloudStack(**read_config())
def get_or_fallback(self, key=None, fallback_key=None):
value = self.module.params.get(key)
if not value:
value = self.module.params.get(fallback_key)
return value
# TODO: for backward compatibility only, remove if not used anymore # TODO: for backward compatibility only, remove if not used anymore
def _has_changed(self, want_dict, current_dict, only_keys=None): def _has_changed(self, want_dict, current_dict, only_keys=None):
return self.has_changed(want_dict=want_dict, current_dict=current_dict, only_keys=only_keys) return self.has_changed(want_dict=want_dict, current_dict=current_dict, only_keys=only_keys)
...@@ -266,12 +274,13 @@ class AnsibleCloudStack: ...@@ -266,12 +274,13 @@ class AnsibleCloudStack:
return None return None
args = {} args = {}
args['name'] = domain
args['listall'] = True args['listall'] = True
domains = self.cs.listDomains(**args) domains = self.cs.listDomains(**args)
if domains: if domains:
self.domain = domains['domain'][0] for d in domains['domain']:
return self._get_by_key(key, self.domain) if d['path'].lower() in [ domain.lower(), "root/" + domain.lower(), "root" + domain.lower() ]:
self.domain = d
return self._get_by_key(key, self.domain)
self.module.fail_json(msg="Domain '%s' not found" % domain) self.module.fail_json(msg="Domain '%s' not found" % domain)
......
...@@ -77,6 +77,14 @@ class AnsibleCloudStack: ...@@ -77,6 +77,14 @@ class AnsibleCloudStack:
else: else:
self.cs = CloudStack(**read_config()) self.cs = CloudStack(**read_config())
def get_or_fallback(self, key=None, fallback_key=None):
value = self.module.params.get(key)
if not value:
value = self.module.params.get(fallback_key)
return value
# TODO: for backward compatibility only, remove if not used anymore # TODO: for backward compatibility only, remove if not used anymore
def _has_changed(self, want_dict, current_dict, only_keys=None): def _has_changed(self, want_dict, current_dict, only_keys=None):
return self.has_changed(want_dict=want_dict, current_dict=current_dict, only_keys=only_keys) return self.has_changed(want_dict=want_dict, current_dict=current_dict, only_keys=only_keys)
...@@ -266,12 +274,13 @@ class AnsibleCloudStack: ...@@ -266,12 +274,13 @@ class AnsibleCloudStack:
return None return None
args = {} args = {}
args['name'] = domain
args['listall'] = True args['listall'] = True
domains = self.cs.listDomains(**args) domains = self.cs.listDomains(**args)
if domains: if domains:
self.domain = domains['domain'][0] for d in domains['domain']:
return self._get_by_key(key, self.domain) if d['path'].lower() in [ domain.lower(), "root/" + domain.lower(), "root" + domain.lower() ]:
self.domain = d
return self._get_by_key(key, self.domain)
self.module.fail_json(msg="Domain '%s' not found" % domain) self.module.fail_json(msg="Domain '%s' not found" % domain)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment