Commit af74d7f1 by Rene Moser

cloudstack: add get_domain() and get_account() to utils

parent 034ac8ae
...@@ -48,6 +48,8 @@ class AnsibleCloudStack: ...@@ -48,6 +48,8 @@ class AnsibleCloudStack:
self.module = module self.module = module
self._connect() self._connect()
self.domain = None
self.account = None
self.project = None self.project = None
self.ip_address = None self.ip_address = None
self.zone = None self.zone = None
...@@ -73,7 +75,7 @@ class AnsibleCloudStack: ...@@ -73,7 +75,7 @@ class AnsibleCloudStack:
else: else:
self.cs = CloudStack(**read_config()) self.cs = CloudStack(**read_config())
# TODO: rename to has_changed()
def _has_changed(self, want_dict, current_dict, only_keys=None): def _has_changed(self, want_dict, current_dict, only_keys=None):
for key, value in want_dict.iteritems(): for key, value in want_dict.iteritems():
...@@ -245,6 +247,42 @@ class AnsibleCloudStack: ...@@ -245,6 +247,42 @@ class AnsibleCloudStack:
self.module.fail_json(msg="Hypervisor '%s' not found" % hypervisor) self.module.fail_json(msg="Hypervisor '%s' not found" % hypervisor)
def get_account(self, key=None):
if self.account:
return self._get_by_key(key, self.account)
account = self.module.params.get('account')
if not account:
return None
args = {}
args['name'] = account
args['listall'] = True
accounts = self.cs.listAccounts(**args)
if accounts:
self.account = accounts['account'][0]
return self._get_by_key(key, self.account)
self.module.fail_json(msg="Account '%s' not found" % account)
def get_domain(self, key=None):
if self.domain:
return self._get_by_key(key, self.domain)
domain = self.module.params.get('domain')
if not domain:
return None
args = {}
args['name'] = domain
args['listall'] = True
domain = self.cs.listDomains(**args)
if domains:
self.domain = domains['domain'][0]
return self._get_by_key(key, self.domain)
self.module.fail_json(msg="Domain '%s' not found" % domain)
def get_tags(self, resource=None): def get_tags(self, resource=None):
existing_tags = self.cs.listTags(resourceid=resource['id']) existing_tags = self.cs.listTags(resourceid=resource['id'])
if existing_tags: if existing_tags:
...@@ -309,7 +347,7 @@ class AnsibleCloudStack: ...@@ -309,7 +347,7 @@ class AnsibleCloudStack:
self.capabilities = capabilities['capability'] self.capabilities = capabilities['capability']
return self._get_by_key(key, self.capabilities) return self._get_by_key(key, self.capabilities)
# TODO: rename to poll_job()
def _poll_job(self, job=None, key=None): def _poll_job(self, job=None, key=None):
if 'jobid' in job: if 'jobid' in job:
while True: while True:
......
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