mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-25 14:20:22 -07:00
cloudstack: add get_domain() and get_account() to utils
This commit is contained in:
parent
034ac8ae78
commit
af74d7f1a9
1 changed files with 40 additions and 2 deletions
|
@ -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:
|
||||||
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:
|
||||||
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:
|
||||||
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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue