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

Unified Diff: appengine/findit/handlers/flake/check_flake.py

Issue 2438673004: [Findit] Post analysis results of flakes to bug filed by chromium-try-flakes. (Closed)
Patch Set: Add a config flag to enable/disable updating monorail bug. Created 4 years, 1 month 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
« no previous file with comments | « appengine/findit/handlers/config.py ('k') | appengine/findit/handlers/flake/test/check_flake_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/handlers/flake/check_flake.py
diff --git a/appengine/findit/handlers/flake/check_flake.py b/appengine/findit/handlers/flake/check_flake.py
index 58923a2cb18d4f8f831273cc79bb7825f36b0391..8323a24523e133d69f85a304619d31e4baea5c93 100644
--- a/appengine/findit/handlers/flake/check_flake.py
+++ b/appengine/findit/handlers/flake/check_flake.py
@@ -3,6 +3,7 @@
# found in the LICENSE file.
from google.appengine.api import users
+from google.appengine.ext import ndb
from common import auth_util
from common import time_util
@@ -68,77 +69,83 @@ class CheckFlake(BaseHandler):
return None
def HandleGet(self):
- master_name = self.request.get('master_name', '').strip()
- builder_name = self.request.get('builder_name', '').strip()
- build_number = self.request.get('build_number', '').strip()
- step_name = self.request.get('step_name', '').strip()
- test_name = self.request.get('test_name', '').strip()
- bug_id = self.request.get('bug_id', '').strip()
- # TODO(lijeffrey): Add support for force flag to trigger a rerun.
-
- error = self._ValidateInput(
- master_name, builder_name, build_number, step_name, test_name, bug_id)
-
- if error: # pragma: no cover
- return error
-
- build_number = int(build_number)
- bug_id = int(bug_id) if bug_id else None
- user_email = auth_util.GetUserEmail()
- is_admin = auth_util.IsCurrentUserAdmin()
-
- request = FlakeAnalysisRequest.Create(test_name, False, bug_id)
- request.AddBuildStep(master_name, builder_name, build_number, step_name,
- time_util.GetUTCNow())
- scheduled = flake_analysis_service.ScheduleAnalysisForFlake(
- request, user_email, is_admin, triggering_sources.FINDIT_UI)
-
- analysis = MasterFlakeAnalysis.GetVersion(
+ key = self.request.get('key')
+ if key:
+ analysis = ndb.Key(urlsafe=key).get()
+ if not analysis: # pragma: no cover
+ return self.CreateError('Analysis of flake is not found', 404)
+ else:
+ master_name = self.request.get('master_name', '').strip()
+ builder_name = self.request.get('builder_name', '').strip()
+ build_number = self.request.get('build_number', '').strip()
+ step_name = self.request.get('step_name', '').strip()
+ test_name = self.request.get('test_name', '').strip()
+ bug_id = self.request.get('bug_id', '').strip()
+ # TODO(lijeffrey): Add support for force flag to trigger a rerun.
+
+ error = self._ValidateInput(
+ master_name, builder_name, build_number, step_name, test_name, bug_id)
+
+ if error: # pragma: no cover
+ return error
+
+ build_number = int(build_number)
+ bug_id = int(bug_id) if bug_id else None
+ user_email = auth_util.GetUserEmail()
+ is_admin = auth_util.IsCurrentUserAdmin()
+
+ request = FlakeAnalysisRequest.Create(test_name, False, bug_id)
+ request.AddBuildStep(master_name, builder_name, build_number, step_name,
+ time_util.GetUTCNow())
+ scheduled = flake_analysis_service.ScheduleAnalysisForFlake(
+ request, user_email, is_admin, triggering_sources.FINDIT_UI)
+
+ analysis = MasterFlakeAnalysis.GetVersion(
master_name, builder_name, build_number, step_name, test_name)
- if not analysis:
- if scheduled is None:
- # User does not have permission to trigger, nor was any previous
- # analysis triggered to view.
- return {
- 'template': 'error.html',
- 'data': {
- 'error_message':
- ('You could schedule an analysis for flaky test only after '
- 'you login with google.com account.'),
- 'login_url': self.GetLoginUrl(),
- },
- 'return_code': 401,
- }
-
- # Check if a previous request has already covered this analysis so use the
- # results from that analysis.
- request = FlakeAnalysisRequest.GetVersion(key=test_name)
-
- if request and request.analyses:
- analysis = request.analyses[-1].get()
- else:
- return {
- 'template': 'error.html',
- 'data': {
- 'error_message': (
- 'Flake analysis is not supported for this request. Either '
- 'the build step may not be supported or the test is not '
- 'swarmed.'),
- },
- 'return_code': 401,
- }
+ if not analysis:
+ if scheduled is None:
+ # User does not have permission to trigger, nor was any previous
+ # analysis triggered to view.
+ return {
+ 'template': 'error.html',
+ 'data': {
+ 'error_message':
+ ('You could schedule an analysis for flaky test only '
+ 'after you login with google.com account.'),
+ 'login_url': self.GetLoginUrl(),
+ },
+ 'return_code': 401,
+ }
+
+ # Check if a previous request has already covered this analysis so use
+ # the results from that analysis.
+ request = FlakeAnalysisRequest.GetVersion(key=test_name)
+
+ if request and request.analyses:
+ analysis = request.analyses[-1].get()
+ else:
+ return {
+ 'template': 'error.html',
+ 'data': {
+ 'error_message': (
+ 'Flake analysis is not supported for this request. Either'
+ ' the build step may not be supported or the test is not '
+ 'swarmed.'),
+ },
+ 'return_code': 400,
+ }
suspected_flake = _GetSuspectedFlakeAnalysisAndTriageResult(analysis)
data = {
+ 'master_name': analysis.master_name,
+ 'builder_name': analysis.builder_name,
+ 'build_number': analysis.build_number,
+ 'step_name': analysis.step_name,
+ 'test_name': analysis.test_name,
'pass_rates': [],
'analysis_status': analysis.status_description,
- 'master_name': master_name,
- 'builder_name': builder_name,
- 'build_number': build_number,
- 'step_name': step_name,
- 'test_name': test_name,
'version_number': analysis.version_number,
'suspected_flake': suspected_flake,
'request_time': time_util.FormatDatetime(
« no previous file with comments | « appengine/findit/handlers/config.py ('k') | appengine/findit/handlers/flake/test/check_flake_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698