Add Mark/Limit paging for paging streams.

Add mark & limit  params for paging.
Default page size is set to 200 for reasonableness.

Change-Id: Ib7ad2d71e173cf3b961e7f10d2a9c3167f7b14ce
This commit is contained in:
Monsyne Dragon 2015-02-12 17:06:27 +00:00
parent 63c4c0f9b9
commit 7e9ce15e9c
2 changed files with 17 additions and 2 deletions

View File

@ -19,6 +19,9 @@ from dateutil import parser
import common
#set this to something reasonable.
DEFAULT_LIMIT = 200
def _convert_traits(dtraits):
if dtraits is None:
@ -37,6 +40,16 @@ def _get_streams(impl, req, resp, count=False):
trigger = req.get_param('trigger_name')
dtraits = req.get_param('distinguishing_traits')
traits = _convert_traits(dtraits)
mark = req.get_params('mark')
limit = req.get_params('limit')
if limit:
try:
limit = int(limit)
except (ValueError, TypeError):
limit = DEFAULT_LIMIT
else:
limit = DEFAULT_LIMIT
if older_than:
older_than = parser.parse(older_than)
@ -49,7 +62,8 @@ def _get_streams(impl, req, resp, count=False):
younger_than=younger_than,
state=state,
trigger_name=trigger,
distinguishing_traits=traits)
distinguishing_traits=traits,
mark=mark, limit=limit)
def _get_stream(impl, req, resp, stream_id):

View File

@ -72,7 +72,8 @@ class Stream(object):
"datetime": str(self.last)
},
"name": self.trigger_name,
"state": self.state
"state": self.state,
"_mark": "%x" % self.stream_id,
}