| 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 base64 | 5 import base64 |
| 6 | 6 |
| 7 from google.appengine.ext import ndb | 7 from google.appengine.ext import ndb |
| 8 | 8 |
| 9 from model import result_status | 9 from model import result_status |
| 10 from model import triage_status | 10 from model import triage_status |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 super(MasterFlakeAnalysis, self).UpdateTriageResult( | 73 super(MasterFlakeAnalysis, self).UpdateTriageResult( |
| 74 triage_result, suspect_info, user_name, version_number=version_number) | 74 triage_result, suspect_info, user_name, version_number=version_number) |
| 75 | 75 |
| 76 if triage_result == triage_status.TRIAGED_CORRECT: | 76 if triage_result == triage_status.TRIAGED_CORRECT: |
| 77 self.result_status = result_status.FOUND_CORRECT | 77 self.result_status = result_status.FOUND_CORRECT |
| 78 else: | 78 else: |
| 79 self.result_status = result_status.FOUND_INCORRECT | 79 self.result_status = result_status.FOUND_INCORRECT |
| 80 | 80 |
| 81 def Reset(self): | 81 def Reset(self): |
| 82 super(MasterFlakeAnalysis, self).Reset() | 82 super(MasterFlakeAnalysis, self).Reset() |
| 83 self.original_master_name = None |
| 84 self.original_builder_name = None |
| 85 self.original_build_number = None |
| 86 self.original_step_name = None |
| 87 self.original_test_name = None |
| 88 self.bug_id = None |
| 83 self.swarming_rerun_results = [] | 89 self.swarming_rerun_results = [] |
| 84 self.error = None | 90 self.error = None |
| 85 self.correct_regression_range = None | 91 self.correct_regression_range = None |
| 86 self.correct_culprit = None | 92 self.correct_culprit = None |
| 87 self.algorithm_parameters = None | 93 self.algorithm_parameters = None |
| 88 self.suspected_flake_build_number = None | 94 self.suspected_flake_build_number = None |
| 89 self.data_points = [] | 95 self.data_points = [] |
| 90 self.result_status = None | 96 self.result_status = None |
| 91 | 97 |
| 98 # The original build/step/test in which a flake actually occurred. |
| 99 # A CQ trybot step has to be mapped to a Waterfall buildbot step. |
| 100 # A gtest suite.PRE_PRE_test has to be normalized to suite.test. |
| 101 original_master_name = ndb.StringProperty(indexed=True) |
| 102 original_builder_name = ndb.StringProperty(indexed=True) |
| 103 original_build_number = ndb.IntegerProperty(indexed=True) |
| 104 original_step_name = ndb.StringProperty(indexed=True) |
| 105 original_test_name = ndb.StringProperty(indexed=True) |
| 106 |
| 107 # The bug id in which this flake is reported. |
| 108 bug_id = ndb.IntegerProperty(indexed=True) |
| 109 |
| 92 # A list of dicts containing information about each swarming rerun's results | 110 # A list of dicts containing information about each swarming rerun's results |
| 93 # that were involved in this analysis. The contents of this list will be used | 111 # that were involved in this analysis. The contents of this list will be used |
| 94 # for metrics, such as the number of cache hits this analysis benefited from, | 112 # for metrics, such as the number of cache hits this analysis benefited from, |
| 95 # the number of swarming tasks that were needed end-to-end to find the | 113 # the number of swarming tasks that were needed end-to-end to find the |
| 96 # regressed build number (if any), etc. See FlakeSwarmingTaskData for exact | 114 # regressed build number (if any), etc. See FlakeSwarmingTaskData for exact |
| 97 # fields. | 115 # fields. |
| 98 swarming_rerun_results = ndb.LocalStructuredProperty( | 116 swarming_rerun_results = ndb.LocalStructuredProperty( |
| 99 FlakeSwarmingTaskData, repeated=True, compressed=True) | 117 FlakeSwarmingTaskData, repeated=True, compressed=True) |
| 100 | 118 |
| 101 # Error code and message, if any. | 119 # Error code and message, if any. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 131 # Findit's automatic analysis upon detection, or Findit API. | 149 # Findit's automatic analysis upon detection, or Findit API. |
| 132 triggering_source = ndb.IntegerProperty(default=None, indexed=True) | 150 triggering_source = ndb.IntegerProperty(default=None, indexed=True) |
| 133 | 151 |
| 134 # Who triggered the analysis. Used for differentiating between manual and | 152 # Who triggered the analysis. Used for differentiating between manual and |
| 135 # automatic runs, and determining the most active users to gather feedback. | 153 # automatic runs, and determining the most active users to gather feedback. |
| 136 triggering_user_email = ndb.StringProperty(default=None, indexed=False) | 154 triggering_user_email = ndb.StringProperty(default=None, indexed=False) |
| 137 | 155 |
| 138 # Overall conclusion of analysis result for the flake. Found untriaged, Found | 156 # Overall conclusion of analysis result for the flake. Found untriaged, Found |
| 139 # Correct, etc. used to filter what is displayed on the check flake dashboard. | 157 # Correct, etc. used to filter what is displayed on the check flake dashboard. |
| 140 result_status = ndb.IntegerProperty(indexed=True) | 158 result_status = ndb.IntegerProperty(indexed=True) |
| OLD | NEW |