Index: dashboard/dashboard/graph_json.py |
diff --git a/dashboard/dashboard/graph_json.py b/dashboard/dashboard/graph_json.py |
index bafb8b3ba9264c969921940361f1fa3c0619bf98..7b5e10d45557f005599be6b4c6438a4045a8f9a7 100644 |
--- a/dashboard/dashboard/graph_json.py |
+++ b/dashboard/dashboard/graph_json.py |
@@ -18,6 +18,7 @@ import urllib |
from google.appengine.ext import ndb |
from dashboard import alerts |
+from dashboard import datastore_hooks |
from dashboard import list_tests |
from dashboard import request_handler |
from dashboard import utils |
@@ -134,15 +135,16 @@ def _UpdateRevisionMap(revision_map, parent_test, rev, num_points, |
end_rev: End revision number (optional). |
""" |
anomaly_annotation_map = _GetAnomalyAnnotationMap(parent_test.key) |
+ assert(not parent_test.internal_only or utils.IsInternalUser()) |
if start_rev and end_rev: |
- rows = _GetRowsForTestInRange(parent_test.key, start_rev, end_rev) |
+ rows = _GetRowsForTestInRange(parent_test.key, start_rev, end_rev, True) |
elif rev: |
assert num_points |
- rows = _GetRowsForTestAroundRev(parent_test.key, rev, num_points) |
+ rows = _GetRowsForTestAroundRev(parent_test.key, rev, num_points, True) |
else: |
assert num_points |
- rows = _GetLatestRowsForTest(parent_test.key, num_points) |
+ rows = _GetLatestRowsForTest(parent_test.key, num_points, True) |
parent_test_key = parent_test.key.urlsafe() |
for row in rows: |
@@ -250,8 +252,10 @@ def _GetBuildbotUriPrefix(test, row=None): |
return 'http://build.chromium.org/p' |
-def _GetRowsForTestInRange(test_key, start_rev, end_rev): |
+def _GetRowsForTestInRange(test_key, start_rev, end_rev, privileged=False): |
"""Gets all the Row entities for a Test between a given start and end.""" |
+ if privileged: |
+ datastore_hooks.SetSinglePrivilegedRequest() |
query = graph_data.Row.query( |
graph_data.Row.parent_test == test_key, |
graph_data.Row.revision >= start_rev, |
@@ -259,17 +263,21 @@ def _GetRowsForTestInRange(test_key, start_rev, end_rev): |
return query.fetch(batch_size=100) |
-def _GetRowsForTestAroundRev(test_key, rev, num_points): |
+def _GetRowsForTestAroundRev(test_key, rev, num_points, privileged=False): |
"""Gets up to num_points Row entities for a Test centered on a revision.""" |
num_rows_before = int(num_points / 2) + 1 |
num_rows_after = int(num_points / 2) |
+ if privileged: |
+ datastore_hooks.SetSinglePrivilegedRequest() |
query_up_to_rev = graph_data.Row.query( |
graph_data.Row.parent_test == test_key, |
graph_data.Row.revision <= rev) |
query_up_to_rev = query_up_to_rev.order(-graph_data.Row.revision) |
rows_up_to_rev = query_up_to_rev.fetch(limit=num_rows_before, batch_size=100) |
+ if privileged: |
+ datastore_hooks.SetSinglePrivilegedRequest() |
query_after_rev = graph_data.Row.query( |
graph_data.Row.parent_test == test_key, |
graph_data.Row.revision > rev) |
@@ -279,8 +287,10 @@ def _GetRowsForTestAroundRev(test_key, rev, num_points): |
return rows_up_to_rev + rows_after_rev |
-def _GetLatestRowsForTest(test_key, num_points): |
+def _GetLatestRowsForTest(test_key, num_points, privileged=False): |
"""Gets the latest num_points Row entities for a Test.""" |
+ if privileged: |
+ datastore_hooks.SetSinglePrivilegedRequest() |
query = graph_data.Row.query(graph_data.Row.parent_test == test_key) |
query = query.order(-graph_data.Row.revision) |
return query.fetch(limit=num_points, batch_size=100) |