Add support for limiting the number of samples returned

Blueprint: api-limit

Change-Id: Id053eb60674fea58b3d83b460fd0344dbc050cbf
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou
2013-05-31 14:00:47 +02:00
parent 0e10d2ddb7
commit 426cd49d86
6 changed files with 57 additions and 11 deletions

View File

@@ -440,12 +440,16 @@ class Connection(base.Connection):
user_id=r['user_id'],
)
def get_samples(self, sample_filter):
"""Return an iterable of samples as created by
:func:`ceilometer.meter.meter_message_from_counter`.
def get_samples(self, sample_filter, limit=None):
"""Return an iterable of model.Sample instances.
:param sample_filter: Filter.
:param limit: Maximum number of results to return.
"""
if limit == 0:
return
q = make_query_from_filter(sample_filter, require_meter=False)
samples = self.db.meter.find(q)
samples = self.db.meter.find(q).limit(limit or 0)
for s in samples:
# Remove the ObjectId generated by the database when
# the sample was inserted. It is an implementation