Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Unified Diff: dashboard/dashboard/add_histograms_queue.py

Issue 2879453002: [Dashboard] Get or create ancestors in add_histograms_queue (Closed)
Patch Set: done Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dashboard/dashboard/add_histograms_queue.py
diff --git a/dashboard/dashboard/add_histograms_queue.py b/dashboard/dashboard/add_histograms_queue.py
index 742f84f5c3ec69ba98339a665d810bd3e27c0fe1..cbae055de3ddb2cc2c942c2c9890eeffb5f0f6b6 100644
--- a/dashboard/dashboard/add_histograms_queue.py
+++ b/dashboard/dashboard/add_histograms_queue.py
@@ -7,12 +7,12 @@
import json
from dashboard import add_histograms
+from dashboard import add_point_queue
shatch 2017/05/16 15:47:44 Probably want to move these helpers to a common sp
eakuefner 2017/05/19 18:51:48 Added TODO. It's true that moving these helpers to
from dashboard.common import datastore_hooks
from dashboard.common import request_handler
-from dashboard.common import utils
+from dashboard.common import stored_object
from dashboard.models import histogram
-
class AddHistogramsQueueHandler(request_handler.RequestHandler):
"""Request handler to process a histogram and add it to the datastore.
@@ -43,10 +43,38 @@ class AddHistogramsQueueHandler(request_handler.RequestHandler):
datastore_hooks.SetPrivilegedRequest()
data = self.request.get('data')
- data_dict = json.loads(data)
revision = int(self.request.get('revision'))
- test_key = utils.TestKey(self.request.get('test_path'))
+ test_path = self.request.get('test_path')
+
+ data_dict = json.loads(data)
guid = data_dict['guid']
+ is_histogram = (
+ data_dict.get('type') in add_histograms.SPARSE_DIAGNOSTIC_TYPES)
+
+ test_path_parts = test_path.split('/')
+ master = test_path_parts[0]
+ bot = test_path_parts[1]
+
+ bot_whitelist = stored_object.Get(add_point_queue.BOT_WHITELIST_KEY)
+ internal_only = add_point_queue.BotInternalOnly(bot, bot_whitelist)
+
+ test_name = '/'.join(test_path_parts[2:])
+
+ extra_args = {}
shatch 2017/05/16 15:47:44 Maybe move this to _GetExtraArgs() or something to
eakuefner 2017/05/19 18:51:48 Done and renamed to unit_args.
+ if is_histogram:
+ unit = data_dict['unit']
+ extra_args['units'] = unit
+ # TODO(eakuefner): Port unit system to Python and use that here
+ histogram_improvement_direction = unit.split('_')[-1]
+ if histogram_improvement_direction == 'biggerIsBetter':
+ extra_args['improvement_direction'] = 'up'
+ elif histogram_improvement_direction == 'smallerIsBetter':
+ extra_args['improvement_direction'] = 'down'
+
+ # TDOO(eakuefner): Populate benchmark_description once it appears in
+ # diagnostics.
+ test_key = add_point_queue.GetOrCreateAncestors(
+ master, bot, test_name, internal_only, **extra_args).key
if data_dict.get('type') in add_histograms.SPARSE_DIAGNOSTIC_TYPES:
entity = histogram.SparseDiagnostic(
« no previous file with comments | « no previous file | dashboard/dashboard/add_histograms_queue_test.py » ('j') | dashboard/dashboard/add_histograms_queue_test.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698