| 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 analysis_status | 9 from model import analysis_status |
| 10 from model.base_analysis import BaseAnalysis | 10 from model.base_analysis import BaseAnalysis |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 @classmethod | 60 @classmethod |
| 61 def GetVersion(cls, master_name, builder_name, build_number, step_name, | 61 def GetVersion(cls, master_name, builder_name, build_number, step_name, |
| 62 test_name, version=None): # pragma: no cover. | 62 test_name, version=None): # pragma: no cover. |
| 63 return super(MasterFlakeAnalysis, cls).GetVersion( | 63 return super(MasterFlakeAnalysis, cls).GetVersion( |
| 64 key=MasterFlakeAnalysis._CreateAnalysisId( | 64 key=MasterFlakeAnalysis._CreateAnalysisId( |
| 65 master_name, builder_name, build_number, step_name, test_name), | 65 master_name, builder_name, build_number, step_name, test_name), |
| 66 version=version) | 66 version=version) |
| 67 | 67 |
| 68 def Reset(self): | 68 def Reset(self): |
| 69 super(MasterFlakeAnalysis, self).Reset() | 69 super(MasterFlakeAnalysis, self).Reset() |
| 70 self.original_master_name = None |
| 71 self.original_builder_name = None |
| 72 self.original_build_number = None |
| 73 self.original_step_name = None |
| 74 self.original_test_name = None |
| 75 self.bug_id = None |
| 70 self.swarming_rerun_results = [] | 76 self.swarming_rerun_results = [] |
| 71 self.error = None | 77 self.error = None |
| 72 self.correct_regression_range = None | 78 self.correct_regression_range = None |
| 73 self.correct_culprit = None | 79 self.correct_culprit = None |
| 74 self.algorithm_parameters = None | 80 self.algorithm_parameters = None |
| 75 self.suspected_flake_build_number = None | 81 self.suspected_flake_build_number = None |
| 76 self.data_points = [] | 82 self.data_points = [] |
| 77 | 83 |
| 84 # The original build/step/test in which a flake actually occurred. |
| 85 # A CQ trybot step has to be mapped to a Waterfall buildbot step. |
| 86 # A gtest suite.PRE_PRE_test has to be normalized to suite.test. |
| 87 original_master_name = ndb.StringProperty(indexed=True) |
| 88 original_builder_name = ndb.StringProperty(indexed=True) |
| 89 original_build_number = ndb.IntegerProperty(indexed=True) |
| 90 original_step_name = ndb.StringProperty(indexed=True) |
| 91 original_test_name = ndb.StringProperty(indexed=True) |
| 92 |
| 93 # The bug id in which this flake is reported. |
| 94 bug_id = ndb.IntegerProperty(indexed=True) |
| 95 |
| 78 # A list of dicts containing information about each swarming rerun's results | 96 # A list of dicts containing information about each swarming rerun's results |
| 79 # that were involved in this analysis. The contents of this list will be used | 97 # that were involved in this analysis. The contents of this list will be used |
| 80 # for metrics, such as the number of cache hits this analysis benefited from, | 98 # for metrics, such as the number of cache hits this analysis benefited from, |
| 81 # the number of swarming tasks that were needed end-to-end to find the | 99 # the number of swarming tasks that were needed end-to-end to find the |
| 82 # regressed build number (if any), etc. See FlakeSwarmingTaskData for exact | 100 # regressed build number (if any), etc. See FlakeSwarmingTaskData for exact |
| 83 # fields. | 101 # fields. |
| 84 swarming_rerun_results = ndb.LocalStructuredProperty( | 102 swarming_rerun_results = ndb.LocalStructuredProperty( |
| 85 FlakeSwarmingTaskData, repeated=True, compressed=True) | 103 FlakeSwarmingTaskData, repeated=True, compressed=True) |
| 86 | 104 |
| 87 # Error code and message, if any. | 105 # Error code and message, if any. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 105 # 'upper_flake_threshold': 0.98 | 123 # 'upper_flake_threshold': 0.98 |
| 106 # } | 124 # } |
| 107 algorithm_parameters = ndb.JsonProperty(indexed=False) | 125 algorithm_parameters = ndb.JsonProperty(indexed=False) |
| 108 | 126 |
| 109 # The suspected build number to have introduced the flakiness. | 127 # The suspected build number to have introduced the flakiness. |
| 110 suspected_flake_build_number = ndb.IntegerProperty() | 128 suspected_flake_build_number = ndb.IntegerProperty() |
| 111 | 129 |
| 112 # The data points used to plot the flakiness graph build over build. | 130 # The data points used to plot the flakiness graph build over build. |
| 113 data_points = ndb.LocalStructuredProperty( | 131 data_points = ndb.LocalStructuredProperty( |
| 114 DataPoint, repeated=True, compressed=True) | 132 DataPoint, repeated=True, compressed=True) |
| OLD | NEW |