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

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: Clean up and adding unit tests 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
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 analysis.
chanli 2016/10/14 21:25:09 flake result?
lijeffrey 2016/10/14 23:11:31 oops good catch :) Done.
6
7 This handler will mark the suspected flake analysis 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 master_flake_analysis.UpdateTriageResult(
28 triage_result, suspected_build_number, user_name, version_number)
29 master_flake_analysis.put()
30 return True
31
32
33 class TriageFlakeAnalysis(BaseHandler):
34 PERMISSION_LEVEL = Permission.CORP_USER
35
36 def HandleGet(self): # pragma: no cover
37 """Sets the manual triage result for the suspected flake analysis."""
38 flake_info = self.request.get('flake_info')
39 (master_name, builder_name, build_number, step_name, test_name,
40 version_number, suspected_build_number) = flake_info.split('/')
41 triage_result = self.request.get('triage_result')
42
43 if not (master_name and builder_name and build_number and step_name and
44 test_name and version_number and suspected_build_number and
chanli 2016/10/14 21:25:09 version_number can be get from analysis.
lijeffrey 2016/10/14 23:11:31 Not quite, if I'm understanding your comment corre
45 str(triage_result)):
46 # All fields needed for getting master_flake_analysis must be provided in
47 # order to update triage results.
48 return {'data': {'success': False}}
49
50 # As the permission level is CORP_USER, we could assume the current user
51 # already logged in.
52 user_name = users.get_current_user().email().split('@')[0]
53
54 success = _UpdateSuspectedFlakeAnalysis(
55 master_name, builder_name, build_number, step_name, test_name,
56 int(version_number), suspected_build_number, int(triage_result),
57 user_name)
58
59 return {'data': {'success': success}}
60
61 def HandlePost(self): # pragma: no cover
62 return self.HandleGet()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698