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

Side by Side Diff: appengine/findit/handlers/flake/triage_flake_analysis.py

Issue 2554143003: [Findit] Using master flake analysis key for updating triage results (Closed)
Patch Set: Addressing comments Created 4 years 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
1 # Copyright 2016 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """This module is to handle manual triage of a suspected flake result. 5 """This module is to handle manual triage of a suspected flake result.
6 6
7 This handler will mark the suspected flake result as correct or incorrect. 7 This handler will mark the suspected flake result as correct or incorrect.
8 """ 8 """
9 9
10 from google.appengine.ext import ndb
10 from google.appengine.api import users 11 from google.appengine.api import users
11 12
12 from common.base_handler import BaseHandler 13 from common.base_handler import BaseHandler
13 from common.base_handler import Permission 14 from common.base_handler import Permission
15 from model import analysis_status
14 from model.flake.master_flake_analysis import MasterFlakeAnalysis 16 from model.flake.master_flake_analysis import MasterFlakeAnalysis
15 17
16 18
17 def _UpdateSuspectedFlakeAnalysis( 19 def _UpdateSuspectedFlakeAnalysis(key_urlsafe, triage_result, user_name):
18 master_name, builder_name, build_number, step_name, test_name, 20 master_flake_analysis = ndb.Key(urlsafe=key_urlsafe).get()
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 21
24 if not master_flake_analysis: # pragma: no cover 22 assert master_flake_analysis
25 return False 23 assert master_flake_analysis.status == analysis_status.COMPLETED
24 assert master_flake_analysis.suspected_flake_build_number is not None
26 25
27 suspect_info = { 26 suspect_info = {
28 'build_number': suspected_build_number 27 'build_number': master_flake_analysis.suspected_flake_build_number
29 } 28 }
30 29
31 master_flake_analysis.UpdateTriageResult( 30 master_flake_analysis.UpdateTriageResult(
32 triage_result, suspect_info, user_name, version_number) 31 triage_result, suspect_info, user_name,
32 master_flake_analysis.version_number)
33 master_flake_analysis.put() 33 master_flake_analysis.put()
34 return True 34 return True
35 35
36 36
37 class TriageFlakeAnalysis(BaseHandler): 37 class TriageFlakeAnalysis(BaseHandler):
38 PERMISSION_LEVEL = Permission.CORP_USER 38 PERMISSION_LEVEL = Permission.CORP_USER
39 LOGIN_REDIRECT_TO_DISTINATION_PAGE_FOR_GET = False 39 LOGIN_REDIRECT_TO_DISTINATION_PAGE_FOR_GET = False
40 40
41 def HandleGet(self): # pragma: no cover 41 def HandleGet(self): # pragma: no cover
42 """Sets the manual triage result for the suspected flake analysis.""" 42 """Sets the manual triage result for the suspected flake analysis."""
43 flake_info = self.request.get('flake_info') 43 key_urlsafe = self.request.get('key').strip()
44 (master_name, builder_name, build_number, step_name, test_name,
45 version_number, suspected_build_number) = flake_info.split('/')
46 triage_result = self.request.get('triage_result') 44 triage_result = self.request.get('triage_result')
47 45
48 if not (master_name and builder_name and build_number and step_name and 46 if not key_urlsafe or triage_result is None:
49 test_name and version_number and suspected_build_number and
50 str(triage_result)):
51 # All fields needed for getting master_flake_analysis must be provided in
52 # order to update triage results.
53 return {'data': {'success': False}} 47 return {'data': {'success': False}}
54 48
55 # As the permission level is CORP_USER, we could assume the current user 49 # As the permission level is CORP_USER, we could assume the current user
56 # already logged in. 50 # already logged in.
57 user_name = users.get_current_user().email().split('@')[0] 51 user_name = users.get_current_user().email().split('@')[0]
58 52
59 success = _UpdateSuspectedFlakeAnalysis( 53 success = _UpdateSuspectedFlakeAnalysis(
60 master_name, builder_name, build_number, step_name, test_name, 54 key_urlsafe, int(triage_result), user_name)
61 int(version_number), suspected_build_number, int(triage_result),
62 user_name)
63 55
64 return {'data': {'success': success}} 56 return {'data': {'success': success}}
65 57
66 def HandlePost(self): # pragma: no cover 58 def HandlePost(self): # pragma: no cover
67 return self.HandleGet() 59 return self.HandleGet()
OLDNEW
« no previous file with comments | « appengine/findit/handlers/flake/test/check_flake_test.py ('k') | appengine/findit/templates/flake/result.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698