Chromium Code Reviews| 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..1567cbbfecf01bacb182433ba7ebd88f3e9a3179 |
| --- /dev/null |
| +++ b/appengine/findit/handlers/flake/triage_flake_analysis.py |
| @@ -0,0 +1,62 @@ |
| +# 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 analysis. |
|
chanli
2016/10/14 21:25:09
flake result?
lijeffrey
2016/10/14 23:11:31
oops good catch :)
Done.
|
| + |
| +This handler will mark the suspected flake analysis 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 |
| + |
| + master_flake_analysis.UpdateTriageResult( |
| + triage_result, suspected_build_number, 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 |
|
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
|
| + 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() |