[LNT] r275096 - Optionally limit the number of samples returned in the graph API
Chris Matthews via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 11 13:01:03 PDT 2016
Author: cmatthews
Date: Mon Jul 11 15:01:02 2016
New Revision: 275096
URL: http://llvm.org/viewvc/llvm-project?rev=275096&view=rev
Log:
Optionally limit the number of samples returned in the graph API
Modified:
lnt/trunk/lnt/server/ui/api.py
lnt/trunk/tests/server/ui/test_api.py
Modified: lnt/trunk/lnt/server/ui/api.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/api.py?rev=275096&r1=275095&r2=275096&view=diff
==============================================================================
--- lnt/trunk/lnt/server/ui/api.py (original)
+++ lnt/trunk/lnt/server/ui/api.py Mon Jul 11 15:01:02 2016
@@ -180,12 +180,18 @@ class Graph(Resource):
.filter(ts.Run.machine_id == machine.id) \
.filter(ts.Sample.test == test) \
.filter(field.column != None) \
- .order_by(ts.Order.llvm_project_revision)
+ .order_by(ts.Order.llvm_project_revision.desc())
if field.status_field:
q = q.filter((field.status_field.column == PASS) |
(field.status_field.column == None))
- samples = [[rev, val, {'label': rev, 'date': str(time), 'runID': str(rid)}] for val, rev, time, rid in q.all()]
+
+ limit = request.args.get('limit', None)
+ if limit:
+ limit = int(limit)
+ q = q.limit(limit)
+
+ samples = [[rev, val, {'label': rev, 'date': str(time), 'runID': str(rid)}] for val, rev, time, rid in q.all()[::-1]]
return samples
Modified: lnt/trunk/tests/server/ui/test_api.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/server/ui/test_api.py?rev=275096&r1=275095&r2=275096&view=diff
==============================================================================
--- lnt/trunk/tests/server/ui/test_api.py (original)
+++ lnt/trunk/tests/server/ui/test_api.py Mon Jul 11 15:01:02 2016
@@ -62,9 +62,18 @@ order_expected_response = {u'id': 1,
u'previous_order_id': 2}
graph_data = [[u'152292', 1.0,
- {u'date': u'2012-05-01 16:28:23', u'label': u'152292', u'runID': u'5'}],
+ {u'date': u'2012-05-01 16:28:23',
+ u'label': u'152292',
+ u'runID': u'5'}],
[u'152293', 10.0,
- {u'date': u'2012-05-03 16:28:24', u'label': u'152293', u'runID': u'6'}]]
+ {u'date': u'2012-05-03 16:28:24',
+ u'label': u'152293',
+ u'runID': u'6'}]]
+
+graph_data2 = [[u'152293', 10.0,
+ {u'date': u'2012-05-03 16:28:24',
+ u'label': u'152293',
+ u'runID': u'6'}]]
class JSONAPITester(unittest.TestCase):
@@ -108,8 +117,13 @@ class JSONAPITester(unittest.TestCase):
def test_graph_api(self):
"""Check that /graph/x/y/z returns what we expect."""
client = self.client
+
j = check_json(client, 'api/db_default/v4/nts/graph/2/4/3')
self.assertEqual(graph_data, j)
+
+ # Now check that limit works.
+ j2 = check_json(client, 'api/db_default/v4/nts/graph/2/4/3?limit=1')
+ self.assertEqual(graph_data2, j2)
if __name__ == '__main__':
unittest.main(argv=[sys.argv[0], ])
More information about the llvm-commits
mailing list