| OLD | NEW |
| 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 import copy | 5 import copy |
| 6 import json | 6 import json |
| 7 import logging | 7 import logging |
| 8 | 8 |
| 9 from google.appengine.api import app_identity | 9 from google.appengine.api import app_identity |
| 10 from google.appengine.ext import ndb | 10 from google.appengine.ext import ndb |
| 11 | 11 |
| 12 from common import time_util | 12 from common import time_util |
| 13 from crash import findit_for_fracas | 13 from crash import findit_for_fracas |
| 14 from crash.type_enums import CrashClient | 14 from crash.type_enums import CrashClient |
| 15 from model import analysis_status | 15 from model import analysis_status |
| 16 from model.crash.crash_config import CrashConfig | 16 from model.crash.crash_config import CrashConfig |
| 17 from model.crash.fracas_crash_analysis import FracasCrashAnalysis | 17 from model.crash.fracas_crash_analysis import FracasCrashAnalysis |
| 18 from model.crash.cracas_crash_analysis import CracasCrashAnalysis |
| 18 | 19 |
| 19 _FINDIT_FRACAS_FEEDBACK_URL_TEMPLATE = '%s/crash/fracas-result-feedback?key=%s' | 20 _FINDIT_FRACAS_FEEDBACK_URL_TEMPLATE = '%s/crash/fracas-result-feedback?key=%s' |
| 20 | 21 |
| 21 | 22 |
| 22 def CheckPolicyForClient(crash_identifiers, chrome_version, signature, | 23 def CheckPolicyForClient(crash_identifiers, chrome_version, signature, |
| 23 client_id, platform, stack_trace, customized_data): | 24 client_id, platform, stack_trace, customized_data): |
| 24 """Checks if the args pass the client policy or not, update the parameters | 25 """Checks if the args pass the client policy or not, update the parameters |
| 25 if needed.""" | 26 if needed.""" |
| 26 crash_config = CrashConfig.Get() | 27 crash_config = CrashConfig.Get() |
| 27 | 28 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 58 | 59 |
| 59 return True, (crash_identifiers, chrome_version, signature, client_id, | 60 return True, (crash_identifiers, chrome_version, signature, client_id, |
| 60 platform, stack_trace, customized_data) | 61 platform, stack_trace, customized_data) |
| 61 | 62 |
| 62 | 63 |
| 63 def GetAnalysisForClient(crash_identifiers, client_id): | 64 def GetAnalysisForClient(crash_identifiers, client_id): |
| 64 analysis = None | 65 analysis = None |
| 65 if client_id == CrashClient.FRACAS: | 66 if client_id == CrashClient.FRACAS: |
| 66 analysis = FracasCrashAnalysis.Get(crash_identifiers) | 67 analysis = FracasCrashAnalysis.Get(crash_identifiers) |
| 67 elif client_id == CrashClient.CRACAS: # pragma: no cover. | 68 elif client_id == CrashClient.CRACAS: # pragma: no cover. |
| 68 # TODO(katesonia): Add CracasCrashAnalysis model. | 69 analysis = CracasCrashAnalysis.Get(crash_identifiers) |
| 69 pass | |
| 70 elif client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. | 70 elif client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. |
| 71 # TODO(katesonia): Add ClusterfuzzCrashAnalysis model. | 71 # TODO(katesonia): Add ClusterfuzzCrashAnalysis model. |
| 72 pass | 72 pass |
| 73 | 73 |
| 74 return analysis | 74 return analysis |
| 75 | 75 |
| 76 | 76 |
| 77 @ndb.transactional | 77 @ndb.transactional |
| 78 def ResetAnalysis(analysis, crash_identifiers, chrome_version, signature, | 78 def ResetAnalysis(analysis, crash_identifiers, chrome_version, signature, |
| 79 client_id, platform, stack_trace, customized_data): | 79 client_id, platform, stack_trace, customized_data): |
| 80 """Resets analysis to be analyzed.""" | 80 """Resets analysis to be analyzed.""" |
| 81 if not analysis: | 81 if not analysis: |
| 82 # A new analysis is needed if there is no analysis. | 82 # A new analysis is needed if there is no analysis. |
| 83 if client_id == CrashClient.FRACAS: | 83 if client_id == CrashClient.FRACAS: |
| 84 analysis = FracasCrashAnalysis.Create(crash_identifiers) | 84 analysis = FracasCrashAnalysis.Create(crash_identifiers) |
| 85 elif client_id == CrashClient.CRACAS: # pragma: no cover. | 85 elif client_id == CrashClient.CRACAS: # pragma: no cover. |
| 86 # TODO(katesonia): define CracasCrashAnalysis. | 86 analysis = CracasCrashAnalysis.Create(crash_identifiers) |
| 87 pass | |
| 88 elif client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. | 87 elif client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. |
| 89 # TODO(katesonia): define ClusterfuzzCrashAnalysis. | 88 # TODO(katesonia): define ClusterfuzzCrashAnalysis. |
| 90 pass | 89 pass |
| 91 | 90 |
| 92 analysis.Reset() | 91 analysis.Reset() |
| 93 | 92 |
| 94 # Set common properties. | 93 # Set common properties. |
| 95 analysis.crashed_version = chrome_version | 94 analysis.crashed_version = chrome_version |
| 96 analysis.stack_trace = stack_trace | 95 analysis.stack_trace = stack_trace |
| 97 analysis.signature = signature | 96 analysis.signature = signature |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 if (analysis.client_id == CrashClient.FRACAS or | 143 if (analysis.client_id == CrashClient.FRACAS or |
| 145 analysis.client_id == CrashClient.CRACAS): | 144 analysis.client_id == CrashClient.CRACAS): |
| 146 result, tags = findit_for_fracas.FindCulpritForChromeCrash( | 145 result, tags = findit_for_fracas.FindCulpritForChromeCrash( |
| 147 analysis.signature, analysis.platform, analysis.stack_trace, | 146 analysis.signature, analysis.platform, analysis.stack_trace, |
| 148 analysis.crashed_version, analysis.historical_metadata) | 147 analysis.crashed_version, analysis.historical_metadata) |
| 149 elif analysis.client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. | 148 elif analysis.client_id == CrashClient.CLUSTERFUZZ: # pragma: no cover. |
| 150 # TODO(katesonia): Implement findit_for_clusterfuzz. | 149 # TODO(katesonia): Implement findit_for_clusterfuzz. |
| 151 pass | 150 pass |
| 152 | 151 |
| 153 return result, tags | 152 return result, tags |
| OLD | NEW |