Allow for specifying the page size
Default to 25
Max of 100
Change-Id: Ic8dc5986f09ad7be95d37654abd71f89bf3516b0
diff --git a/client.py b/client.py
index 2c90c87..b2a058d 100644
--- a/client.py
+++ b/client.py
@@ -61,10 +61,12 @@
def _Url(self, path):
return urlparse.urljoin(self.url_prefix, path) + '/'
- def ListTasks(self, page=1):
+ def ListTasks(self, page_size=25, page=1):
"""Fetches a list of tasks.
Args:
+ page_size: the number of records to fetch
+ per page(Default: 25, Maximum: 100)
page: Which page of results to return.
Returns:
@@ -73,9 +75,15 @@
Raises:
HTTPError: a 4XX client error or 5XX server error
response was returned.
+ ValueError: if page_size is less than or equal to 0
+ or greater than 100
"""
+ self._CheckPageSize(page_size)
r = requests.get(
- self._Url('tasks'), headers=self.headers, params={
+ self._Url('tasks'),
+ headers=self.headers,
+ params={
+ 'page_size': page_size,
'page': page
})
r.raise_for_status()
@@ -158,22 +166,30 @@
return r.json()
return
- def ListTaskInstances(self, page=1):
+ def ListTaskInstances(self, page_size=25, page=1):
"""Fetches a list of tasks.
Args:
+ page_size: the number of records to fetch
+ per page(Default: 25, Maximum: 100)
page: Which page of results to return.
Returns:
A JSON encoded list of task instances.
Raises:
-
HTTPError: a 4XX client error or 5XX server error
response was returned.
+ ValueError: if page_size is less than or equal to 0
+ or greater than 100
"""
+
+ self._CheckPageSize(page_size)
r = requests.get(
- self._Url('instances'), headers=self.headers, params={
+ self._Url('instances'),
+ headers=self.headers,
+ params={
+ 'page_size': page_size,
'page': page
})
r.raise_for_status()
@@ -196,3 +212,19 @@
self._Url('instances/%d' % task_instance_id), headers=self.headers)
r.raise_for_status()
return r.json()
+
+ def _CheckPageSize(self, page_size):
+ """Helper function to check if page_size is within the range of:
+ 0 < page_size <= 100.
+
+ Args:
+ page_size: An integer representing page size
+
+ Raises:
+ ValueError: if page_size is less than or equal to 0
+ or greater than 100
+ """
+ if page_size <= 0:
+ raise ValueError("page_size must be greater than 0.")
+ elif page_size > 100:
+ raise ValueError("page_size is limited to a maximum of 100 records.")