[LNT] r306900 - Don't return null sample data

Chris Matthews via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 30 15:39:21 PDT 2017


Author: cmatthews
Date: Fri Jun 30 15:39:21 2017
New Revision: 306900

URL: http://llvm.org/viewvc/llvm-project?rev=306900&view=rev
Log:
Don't return null sample data

Null sample data was never collected.  No need to waste bandwidth etc
by sending nulls around in the REST API.

Modified:
    lnt/trunk/docs/api.rst
    lnt/trunk/lnt/server/ui/api.py
    lnt/trunk/tests/server/ui/test_api.py

Modified: lnt/trunk/docs/api.rst
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/docs/api.rst?rev=306900&r1=306899&r2=306900&view=diff
==============================================================================
--- lnt/trunk/docs/api.rst (original)
+++ lnt/trunk/docs/api.rst Fri Jun 30 15:39:21 2017
@@ -32,9 +32,9 @@ once.
 +---------------------------+------------------------------------------------------------------------------------------+
 | /samples?runid=1&runid=2  | Retrieve all the sample data for a list of run ids.  Run IDs should be pass as args.     |
 |                           | Will return sample data in the samples section, as a list of dicts, with a key for       |
-|                           | each metric type.                                                                        |
+|                           | each metric type. Empty samples are not sent.                                            |
 +---------------------------+------------------------------------------------------------------------------------------+
-| /samples/`id`             | Get all sample info for Sample `id`.                                                       |
+| /samples/`id`             | Get all non-empty sample info for Sample `id`.                                           |
 +---------------------------+------------------------------------------------------------------------------------------+
 
 Examples

Modified: lnt/trunk/lnt/server/ui/api.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/api.py?rev=306900&r1=306899&r2=306900&view=diff
==============================================================================
--- lnt/trunk/lnt/server/ui/api.py (original)
+++ lnt/trunk/lnt/server/ui/api.py Fri Jun 30 15:39:21 2017
@@ -196,7 +196,7 @@ class SampleData(Resource):
         except NoResultFound:
             return abort(404, message="Invalid order.")
         sample_output = common_fields_factory()
-        sample_output['samples'] = [sample]
+        sample_output['samples'] = [{k: v for k, v in sample.__json__().items() if v is not None}]
         return jsonify(sample_output)
 
 
@@ -231,7 +231,8 @@ class SamplesData(Resource):
             .filter(ts.Sample.run_id.in_(run_ids))
         output_samples = common_fields_factory()
         # noinspection PyProtectedMember
-        output_samples['samples'] = [sample._asdict() for sample in q.all()]
+        output_samples['samples'] = [{k: v for k, v in sample.items() if v is not None}
+                                     for sample in [sample._asdict() for sample in q.all()]]
 
         return output_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=306900&r1=306899&r2=306900&view=diff
==============================================================================
--- lnt/trunk/tests/server/ui/test_api.py (original)
+++ lnt/trunk/tests/server/ui/test_api.py Fri Jun 30 15:39:21 2017
@@ -38,18 +38,10 @@ order_expected_response = {u'llvm_projec
                            u'name': u'154331'}
 
 sample_expected_response = {u'run_id': 1,
-                            u'mem_bytes': None,
-                            u'profile_id': None,
                             u'id': 1,
-                            u'compile_status': None,
-                            u'score': None,
-                            u'hash': None,
                             u'execution_time': 0.0003,
-                            u'execution_status': None,
                             u'test_id': 1,
-                            u'compile_time': 0.007,
-                            u'hash_status': None,
-                            u'code_size': None}
+                            u'compile_time': 0.007}
 
 graph_data = [[[152292], 1.0,
                {u'date': u'2012-05-01 16:28:23',
@@ -223,19 +215,12 @@ class JSONAPITester(unittest.TestCase):
         self._check_response_is_well_formed(j)
         expected = [
             {u'compile_time': 0.007, u'llvm_project_revision': u'154331',
-             u'hash': None,
              u'name': u'SingleSource/UnitTests/2006-12-01-float_varg',
-             u'run_id': 1, u'execution_time': 0.0003,
-             u'mem_bytes': None, u'compile_status': None,
-             u'execution_status': None, u'score': None,
-             u'hash_status': None, u'code_size': None, u'id': 1},
+             u'run_id': 1, u'execution_time': 0.0003, u'id': 1},
             {u'compile_time': 0.0072, u'llvm_project_revision': u'154331',
-             u'hash': None,
              u'name': u'SingleSource/UnitTests/2006-12-04-DynAllocAndRestore',
              u'run_id': 1,
-             u'execution_time': 0.0003, u'mem_bytes': None,
-             u'compile_status': None, u'execution_status': None,
-             u'score': None, u'hash_status': None, u'code_size': None,
+             u'execution_time': 0.0003,
              u'id': 2}]
 
         self.assertEqual(j['samples'], expected)




More information about the llvm-commits mailing list