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

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

Issue 2416303002: [Findit] Adding support for triaging suspected builds from flake analysis (Closed)
Patch Set: Rebase Created 4 years, 2 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
« no previous file with comments | « appengine/findit/handlers/flake/test/check_flake_test.py ('k') | appengine/findit/main.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/handlers/flake/triage_flake_analysis.py
diff --git a/appengine/findit/handlers/flake/triage_flake_analysis.py b/appengine/findit/handlers/flake/triage_flake_analysis.py
new file mode 100644
index 0000000000000000000000000000000000000000..8a86666b38379b25b03749bf9b3b9fc63b405c42
--- /dev/null
+++ b/appengine/findit/handlers/flake/triage_flake_analysis.py
@@ -0,0 +1,66 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""This module is to handle manual triage of a suspected flake result.
+
+This handler will mark the suspected flake result as correct or incorrect.
+"""
+
+from google.appengine.api import users
+
+from common.base_handler import BaseHandler
+from common.base_handler import Permission
+from model.flake.master_flake_analysis import MasterFlakeAnalysis
+
+
+def _UpdateSuspectedFlakeAnalysis(
+ master_name, builder_name, build_number, step_name, test_name,
+ version_number, suspected_build_number, triage_result, user_name):
+ master_flake_analysis = MasterFlakeAnalysis.GetVersion(
+ master_name, builder_name, build_number, step_name, test_name,
+ version_number)
+
+ if not master_flake_analysis: # pragma: no cover
+ return False
+
+ suspect_info = {
+ 'build_number': suspected_build_number
+ }
+
+ master_flake_analysis.UpdateTriageResult(
+ triage_result, suspect_info, user_name, version_number)
+ master_flake_analysis.put()
+ return True
+
+
+class TriageFlakeAnalysis(BaseHandler):
+ PERMISSION_LEVEL = Permission.CORP_USER
+
+ def HandleGet(self): # pragma: no cover
+ """Sets the manual triage result for the suspected flake analysis."""
+ flake_info = self.request.get('flake_info')
+ (master_name, builder_name, build_number, step_name, test_name,
+ version_number, suspected_build_number) = flake_info.split('/')
+ triage_result = self.request.get('triage_result')
+
+ if not (master_name and builder_name and build_number and step_name and
+ test_name and version_number and suspected_build_number and
+ str(triage_result)):
+ # All fields needed for getting master_flake_analysis must be provided in
+ # order to update triage results.
+ return {'data': {'success': False}}
+
+ # As the permission level is CORP_USER, we could assume the current user
+ # already logged in.
+ user_name = users.get_current_user().email().split('@')[0]
+
+ success = _UpdateSuspectedFlakeAnalysis(
+ master_name, builder_name, build_number, step_name, test_name,
+ int(version_number), suspected_build_number, int(triage_result),
+ user_name)
+
+ return {'data': {'success': success}}
+
+ def HandlePost(self): # pragma: no cover
+ return self.HandleGet()
« no previous file with comments | « appengine/findit/handlers/flake/test/check_flake_test.py ('k') | appengine/findit/main.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698