Hello Pablo Iranzo Gómez,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/21247

to review the following change.

Change subject: Remove limit of 1000 hosts, and make it use pagination
......................................................................

Remove limit of 1000 hosts, and make it use pagination

Change-Id: I28bdc52e838dc1e28a5965b3954556755d28fb82
Signed-off-by: Pablo <pablo.ira...@gmail.com>
---
M src/helper/hypervisors.py
1 file changed, 19 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-log-collector 
refs/changes/47/21247/1

diff --git a/src/helper/hypervisors.py b/src/helper/hypervisors.py
index 352dde2..1ab230f 100644
--- a/src/helper/hypervisors.py
+++ b/src/helper/hypervisors.py
@@ -145,6 +145,22 @@
     return api
 
 
+def paginate(entity, oquery=""):
+    """Generator for listing all elements of object avoiding api query limit
+    @param entity: object to paginate using list and query
+    @param oquery: optional query to limit results
+    """
+    page = 0
+    length = 100
+    while length > 0:
+        page += 1
+        query = "%s page %s" % (oquery, page)
+        tanda = entity.list(query=query)
+        length = len(tanda)
+        for elem in tanda:
+            yield elem
+
+
 def get_all(hostname, username, password, ca, insecure=False):
 
     tree = ENGINETree()
@@ -152,11 +168,11 @@
     try:
         api = _initialize_api(hostname, username, password, ca, insecure)
         if api is not None:
-            for dc in api.datacenters.list(max=1000):
+            for dc in paginate(api.datacenters):
                 tree.add_datacenter(dc)
-            for cluster in api.clusters.list(max=1000):
+            for cluster in paginate(api.clusters):
                 tree.add_cluster(cluster)
-            for host in api.hosts.list(max=1000):
+            for host in paginate(api.hosts):
                 tree.add_host(host)
             result = set(tree.get_sortable())
     except RequestError as re:


-- 
To view, visit http://gerrit.ovirt.org/21247
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I28bdc52e838dc1e28a5965b3954556755d28fb82
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-log-collector
Gerrit-Branch: ovirt-log-collector-3.3
Gerrit-Owner: Sandro Bonazzola <sbona...@redhat.com>
Gerrit-Reviewer: Pablo Iranzo Gómez <pablo.ira...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to