cloudstack: use paging for listVirtualMachines (#40018)

Paging wasn't implemented, so once a cs domain has over 500 (default page size) VMs, Ansible can no longer find newly created VM.
This commit is contained in:
Peter Farmer 2018-05-12 08:46:49 +01:00 committed by René Moser
parent 06f76d6407
commit 16994bbdca
5 changed files with 12 additions and 8 deletions

View file

@ -147,11 +147,11 @@ class CloudStackInventory(object):
sys.exit(1)
def get_host(self, name, project_id=None, domain_id=None, **kwargs):
hosts = self.cs.listVirtualMachines(projectid=project_id, domainid=domain_id, **kwargs)
hosts = self.cs.listVirtualMachines(projectid=project_id, domainid=domain_id, fetch_list=True, **kwargs)
data = {}
if not hosts:
return data
for host in hosts['virtualmachine']:
for host in hosts:
host_name = host['displayname']
if name == host_name:
data['zone'] = host['zonename']
@ -202,10 +202,10 @@ class CloudStackInventory(object):
'hosts': []
}
hosts = self.cs.listVirtualMachines(projectid=project_id, domainid=domain_id, **kwargs)
hosts = self.cs.listVirtualMachines(projectid=project_id, domainid=domain_id, fetch_list=True, **kwargs)
if not hosts:
return data
for host in hosts['virtualmachine']:
for host in hosts:
host_name = host['displayname']
data['all']['hosts'].append(host_name)
data['_meta']['hostvars'][host_name] = {}