| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 provide Findit service APIs through Cloud Endpoints: | 5 """This module is to provide Findit service APIs through Cloud Endpoints: |
| 6 | 6 |
| 7 Current APIs include: | 7 Current APIs include: |
| 8 1. Analysis of compile/test failures in Chromium waterfalls. | 8 1. Analysis of compile/test failures in Chromium waterfalls. |
| 9 Analyzes failures and detects suspected CLs. | 9 Analyzes failures and detects suspected CLs. |
| 10 2. Analysis of flakes on Commit Queue. | 10 2. Analysis of flakes on Commit Queue. |
| 11 """ | 11 """ |
| 12 | 12 |
| 13 from collections import defaultdict | 13 from collections import defaultdict |
| 14 import json | 14 import json |
| 15 import logging | 15 import logging |
| 16 import pickle | 16 import pickle |
| 17 | 17 |
| 18 import endpoints | 18 import endpoints |
| 19 from google.appengine.api import taskqueue | 19 from google.appengine.api import taskqueue |
| 20 from protorpc import messages | 20 from protorpc import messages |
| 21 from protorpc import remote | 21 from protorpc import remote |
| 22 | 22 |
| 23 import gae_ts_mon | 23 import gae_ts_mon |
| 24 | 24 |
| 25 from common import appengine_util | 25 from common import appengine_util |
| 26 from common import auth_util | 26 from common import auth_util |
| 27 from common import constants | 27 from common import constants |
| 28 from common.waterfall import failure_type | 28 from common.waterfall import failure_type |
| 29 from lib import time_util | 29 from libs import time_util |
| 30 from model import analysis_approach_type | 30 from model import analysis_approach_type |
| 31 from model import analysis_status | 31 from model import analysis_status |
| 32 from model.flake.flake_analysis_request import FlakeAnalysisRequest | 32 from model.flake.flake_analysis_request import FlakeAnalysisRequest |
| 33 from model.suspected_cl_confidence import SuspectedCLConfidence | 33 from model.suspected_cl_confidence import SuspectedCLConfidence |
| 34 from model.wf_analysis import WfAnalysis | 34 from model.wf_analysis import WfAnalysis |
| 35 from model.wf_suspected_cl import WfSuspectedCL | 35 from model.wf_suspected_cl import WfSuspectedCL |
| 36 from model.wf_swarming_task import WfSwarmingTask | 36 from model.wf_swarming_task import WfSwarmingTask |
| 37 from model.wf_try_job import WfTryJob | 37 from model.wf_try_job import WfTryJob |
| 38 from waterfall import build_util | 38 from waterfall import build_util |
| 39 from waterfall import buildbot | 39 from waterfall import buildbot |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 509 | 509 |
| 510 try: | 510 try: |
| 511 _AsyncProcessFlakeReport(flake_analysis_request, user_email, is_admin) | 511 _AsyncProcessFlakeReport(flake_analysis_request, user_email, is_admin) |
| 512 queued = True | 512 queued = True |
| 513 except Exception: | 513 except Exception: |
| 514 # Ignore the report when fail to queue it for async processing. | 514 # Ignore the report when fail to queue it for async processing. |
| 515 queued = False | 515 queued = False |
| 516 logging.exception('Failed to queue flake report for async processing') | 516 logging.exception('Failed to queue flake report for async processing') |
| 517 | 517 |
| 518 return _FlakeAnalysis(queued=queued) | 518 return _FlakeAnalysis(queued=queued) |
| OLD | NEW |