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

Unified Diff: appengine/findit/model/crash/crash_analysis.py

Issue 2043973002: [Findit] Fracas crash triage dashboard (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 6 months 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698