Chromium Code Reviews| Index: appengine/findit/model/crash/crash_analysis.py |
| diff --git a/appengine/findit/model/crash/crash_analysis.py b/appengine/findit/model/crash/crash_analysis.py |
| index 236208d4354e8e691ba6a10ace4b78566a8e4121..4ea66ec800cf4b0f7df87c0066962284611c1f6f 100644 |
| --- a/appengine/findit/model/crash/crash_analysis.py |
| +++ b/appengine/findit/model/crash/crash_analysis.py |
| @@ -5,6 +5,7 @@ |
| from google.appengine.ext import ndb |
| from model import analysis_status |
| +from model import triage_status |
| class CrashAnalysis(ndb.Model): |
| @@ -12,6 +13,8 @@ class CrashAnalysis(ndb.Model): |
| ################### Properties for the crash itself. ################### |
| # In which version or revision of Chrome the crash occurred. Either a version |
| # number for Chrome build or a git commit hash/position for chromium build. |
| + crash_identifiers = ndb.JsonProperty(indexed=False, compressed=True) |
| + |
| crashed_version = ndb.StringProperty(indexed=False) |
| # The stack_trace_string. |
| @@ -55,8 +58,53 @@ class CrashAnalysis(ndb.Model): |
| # Tags for query and monitoring. |
| has_regression_range = ndb.BooleanProperty(indexed=True) |
| found_suspects = ndb.BooleanProperty(indexed=True) |
| + found_project = ndb.BooleanProperty(indexed=True) |
| + found_components = ndb.BooleanProperty(indexed=True) |
| + |
| solution = ndb.StringProperty(indexed=True) # 'core', 'blame', etc. |
| + # Triage results. |
| + regression_range_triage_status = ndb.StringProperty( |
| + indexed=True, default=triage_status.UNTRIAGED) |
| + regression_range_triage_history = ndb.JsonProperty(indexed=False) |
| + culprit_regression_range = ndb.JsonProperty(indexed=False) |
| + |
| + suspected_cls_triage_status = ndb.StringProperty( |
| + indexed=True, default=triage_status.UNTRIAGED) |
| + suspected_cls_triage_history = ndb.JsonProperty(indexed=False) |
| + culprit_cls = ndb.JsonProperty(indexed=False, default=[]) |
| + |
| + suspected_project_triage_status = ndb.StringProperty( |
| + indexed=True, default=triage_status.UNTRIAGED) |
| + suspected_project_triage_history = ndb.JsonProperty(indexed=False) |
| + culprit_project = ndb.JsonProperty(indexed=False, default=[]) |
| + |
| + suspected_components_triage_status = ndb.StringProperty( |
| + indexed=True, default=triage_status.UNTRIAGED) |
| + suspected_components_triage_history = ndb.JsonProperty(indexed=False) |
|
stgao
2016/06/08 17:53:45
Why we save the triage history separately? Can we
Sharu Jiang
2016/06/09 06:13:28
Done.
|
| + culprit_components = ndb.JsonProperty(indexed=False, default=[]) |
| + |
| + # Triage note. |
| + note = ndb.StringProperty(indexed=False, default='') |
| + |
| + def ResultCorrect(self, result_property): |
| + """Returns triage result of a result property. |
| + |
| + True if the result is triaged-correct, False if triaged-incorrect, else |
| + return None. |
| + """ |
| + if not self.completed or self.failed: |
| + return None |
| + |
| + result_triage_status = getattr(self, '%s_triage_status' % result_property) |
| + if result_triage_status == triage_status.TRIAGED_CORRECT: |
| + return True |
| + |
| + if result_triage_status == triage_status.TRIAGED_INCORRECT: |
| + return False |
| + |
| + return None |
| + |
| def Reset(self): |
| self.pipeline_status_path = None |
| self.status = analysis_status.PENDING |