cloudstack: prevent getting the wrong project.
Since we use domain and account data to filter the project, listall is not needed and can return the wrong identical named project of another account if root admin permissions are used. Fixed projects names are not case insensitive.
This commit is contained in:
parent
8e3213a91e
commit
fc3020c57a
2 changed files with 4 additions and 4 deletions
|
@ -124,13 +124,12 @@ class AnsibleCloudStack:
|
|||
if not project:
|
||||
return None
|
||||
args = {}
|
||||
args['listall'] = True
|
||||
args['account'] = self.get_account(key='name')
|
||||
args['domainid'] = self.get_domain(key='id')
|
||||
projects = self.cs.listProjects(**args)
|
||||
if projects:
|
||||
for p in projects['project']:
|
||||
if project in [ p['name'], p['displaytext'], p['id'] ]:
|
||||
if project.lower() in [ p['name'].lower(), p['id'] ]:
|
||||
self.project = p
|
||||
return self._get_by_key(key, self.project)
|
||||
self.module.fail_json(msg="project '%s' not found" % project)
|
||||
|
@ -361,6 +360,7 @@ class AnsibleCloudStack:
|
|||
self.capabilities = capabilities['capability']
|
||||
return self._get_by_key(key, self.capabilities)
|
||||
|
||||
|
||||
# TODO: rename to poll_job()
|
||||
def _poll_job(self, job=None, key=None):
|
||||
if 'jobid' in job:
|
||||
|
|
|
@ -122,13 +122,12 @@ class AnsibleCloudStack:
|
|||
if not project:
|
||||
return None
|
||||
args = {}
|
||||
args['listall'] = True
|
||||
args['account'] = self.get_account(key='name')
|
||||
args['domainid'] = self.get_domain(key='id')
|
||||
projects = self.cs.listProjects(**args)
|
||||
if projects:
|
||||
for p in projects['project']:
|
||||
if project in [ p['name'], p['displaytext'], p['id'] ]:
|
||||
if project.lower() in [ p['name'].lower(), p['id'] ]:
|
||||
self.project = p
|
||||
return self._get_by_key(key, self.project)
|
||||
self.module.fail_json(msg="project '%s' not found" % project)
|
||||
|
@ -359,6 +358,7 @@ class AnsibleCloudStack:
|
|||
self.capabilities = capabilities['capability']
|
||||
return self._get_by_key(key, self.capabilities)
|
||||
|
||||
|
||||
# TODO: rename to poll_job()
|
||||
def _poll_job(self, job=None, key=None):
|
||||
if 'jobid' in job:
|
||||
|
|
Loading…
Reference in a new issue