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

Side by Side 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """This module is to handle manual triage of a suspected flake result.
6
7 This handler will mark the suspected flake result as correct or incorrect.
8 """
9
10 from google.appengine.api import users
11
12 from common.base_handler import BaseHandler
13 from common.base_handler import Permission
14 from model.flake.master_flake_analysis import MasterFlakeAnalysis
15
16
17 def _UpdateSuspectedFlakeAnalysis(
18 master_name, builder_name, build_number, step_name, test_name,
19 version_number, suspected_build_number, triage_result, user_name):
20 master_flake_analysis = MasterFlakeAnalysis.GetVersion(
21 master_name, builder_name, build_number, step_name, test_name,
22 version_number)
23
24 if not master_flake_analysis: # pragma: no cover
25 return False
26
27 suspect_info = {
28 'build_number': suspected_build_number
29 }
30
31 master_flake_analysis.UpdateTriageResult(
32 triage_result, suspect_info, user_name, version_number)
33 master_flake_analysis.put()
34 return True
35
36
37 class TriageFlakeAnalysis(BaseHandler):
38 PERMISSION_LEVEL = Permission.CORP_USER
39
40 def HandleGet(self): # pragma: no cover
41 """Sets the manual triage result for the suspected flake analysis."""
42 flake_info = self.request.get('flake_info')
43 (master_name, builder_name, build_number, step_name, test_name,
44 version_number, suspected_build_number) = flake_info.split('/')
45 triage_result = self.request.get('triage_result')
46
47 if not (master_name and builder_name and build_number and step_name and
48 test_name and version_number and suspected_build_number and
49 str(triage_result)):
50 # All fields needed for getting master_flake_analysis must be provided in
51 # order to update triage results.
52 return {'data': {'success': False}}
53
54 # As the permission level is CORP_USER, we could assume the current user
55 # already logged in.
56 user_name = users.get_current_user().email().split('@')[0]
57
58 success = _UpdateSuspectedFlakeAnalysis(
59 master_name, builder_name, build_number, step_name, test_name,
60 int(version_number), suspected_build_number, int(triage_result),
61 user_name)
62
63 return {'data': {'success': success}}
64
65 def HandlePost(self): # pragma: no cover
66 return self.HandleGet()
OLDNEW
« 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