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

Side by Side Diff: Tools/GardeningServer/ui/ct-failure-analyzer.html

Issue 448503003: Adds a snooze button to the sheriff-o-matic ui (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove unused import. Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!-- 1 <!--
2 Copyright 2014 The Chromium Authors. All rights reserved. 2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be 3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file. 4 found in the LICENSE file.
5 --> 5 -->
6 6
7 <link rel="import" href="../model/ct-failure.html"> 7 <link rel="import" href="../model/ct-failure.html">
8 <link rel="import" href="../model/ct-failure-group.html">
8 9
9 <polymer-element name="ct-failure-analyzer" attributes="failures builderLatestRe visions"> 10 <polymer-element name="ct-failure-analyzer" attributes="failures builderLatestRe visions">
10 <script> 11 <script>
11 // FIXME: Don't use a polymer component for this. Instead use a Failures mod el 12 // FIXME: Don't use a polymer component for this. Instead use a Failures mod el
12 // object that knows how to do the XHR and process the data appropriately. 13 // object that knows how to do the XHR and process the data appropriately.
13 Polymer({ 14 Polymer({
14 builderLatestRevisions: null, 15 builderLatestRevisions: null,
15 failures: null, 16 failures: null,
16 17
17 // FIXME: Get this from https://chromium.googlesource.com/chromium/tools/b uild/+/master/scripts/slave/gatekeeper_trees.json?format=text. 18 // FIXME: Get this from https://chromium.googlesource.com/chromium/tools/b uild/+/master/scripts/slave/gatekeeper_trees.json?format=text.
18 _trees: { 19 _trees: {
19 blink: [ 20 blink: [
20 "https://build.chromium.org/p/chromium.webkit", 21 "https://build.chromium.org/p/chromium.webkit",
21 ], 22 ],
22 chromium: [ 23 chromium: [
23 "https://build.chromium.org/p/chromium", 24 "https://build.chromium.org/p/chromium",
24 "https://build.chromium.org/p/chromium.chrome", 25 "https://build.chromium.org/p/chromium.chrome",
25 "https://build.chromium.org/p/chromium.chromiumos", 26 "https://build.chromium.org/p/chromium.chromiumos",
26 "https://build.chromium.org/p/chromium.gpu", 27 "https://build.chromium.org/p/chromium.gpu",
27 "https://build.chromium.org/p/chromium.linux", 28 "https://build.chromium.org/p/chromium.linux",
28 "https://build.chromium.org/p/chromium.mac", 29 "https://build.chromium.org/p/chromium.mac",
29 "https://build.chromium.org/p/chromium.memory", 30 "https://build.chromium.org/p/chromium.memory",
30 "https://build.chromium.org/p/chromium.win" 31 "https://build.chromium.org/p/chromium.win"
31 ], 32 ],
32 }, 33 },
33 34
34 update: function() { 35 update: function() {
36 var annotationPromise = CTFailureGroup.fetchAnnotations();
35 net.json('http://auto-sheriff.appspot.com/data').then(function(data) { 37 net.json('http://auto-sheriff.appspot.com/data').then(function(data) {
ojan 2014/08/07 00:09:58 This is good for now. FYI, I'm starting to think t
dstockwell 2014/08/11 01:20:42 Why does sheriff-o-matic need its own backend? Can
ojan 2014/08/11 01:44:43 Very shortly, in the next day or two, we'll be get
36 // FIXME: Don't special-case the blink master. 38 annotationPromise.then(function(annotations) {
37 this.builderLatestRevisions = data.latest_revisions['chromium.webkit'] ; 39 // FIXME: Don't special-case the blink master.
38 // FIXME: Make this a model class intead of a dumb object. 40 this.builderLatestRevisions = data.latest_revisions['chromium.webkit '];
39 this.failures = {}; 41 // FIXME: Make this a model class intead of a dumb object.
40 data.range_groups.forEach(function(group) { 42 this.failures = {};
41 this._processFailuresForGroup(group, data.alerts); 43 data.range_groups.forEach(function(group) {
44 this._processFailuresForGroup(group, data.alerts, annotations);
45 }.bind(this));
46 // FIXME: Sort this.failures by severity of regression, then by olde stFailingRevision.
42 }.bind(this)); 47 }.bind(this));
43 // FIXME: Sort this.failures by severity of regression, then by oldest FailingRevision.
44 }.bind(this)); 48 }.bind(this));
45 }, 49 },
46 50
47 _failureComparator: function(a, b) { 51 _failureComparator: function(a, b) {
48 if (a.step > b.step) 52 if (a.step > b.step)
49 return 1; 53 return 1;
50 if (a.step < b.step) 54 if (a.step < b.step)
51 return -1 55 return -1
52 if (a.testName > b.testName) 56 if (a.testName > b.testName)
53 return 1; 57 return 1;
54 if (a.testName < b.testName) 58 if (a.testName < b.testName)
55 return -1 59 return -1
56 return 0; 60 return 0;
57 }, 61 },
58 62
59 _processFailuresForGroup: function(group, failures) { 63 _processFailuresForGroup: function(group, failures, annotations) {
60 var failuresByReason = {}; 64 var failuresByReason = {};
61 65
62 var masterToTree = {}; 66 var masterToTree = {};
63 Object.keys(this._trees, function(tree, masters) { 67 Object.keys(this._trees, function(tree, masters) {
64 masters.forEach(function(master) { 68 masters.forEach(function(master) {
65 masterToTree[master] = tree; 69 masterToTree[master] = tree;
66 }); 70 });
67 }); 71 });
68 72
69 group.failure_keys.forEach(function(failure_key) { 73 group.failure_keys.forEach(function(failure_key) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 groupedFailures[tree] = []; 114 groupedFailures[tree] = [];
111 groupedFailures[tree].push(new CTFailure(failure.step, failure.reaso n, resultsByBuilder, group.merged_first_failing, group.merged_last_passing)); 115 groupedFailures[tree].push(new CTFailure(failure.step, failure.reaso n, resultsByBuilder, group.merged_first_failing, group.merged_last_passing));
112 }) 116 })
113 }); 117 });
114 118
115 Object.keys(groupedFailures, function(tree, failures) { 119 Object.keys(groupedFailures, function(tree, failures) {
116 failures.sort(this._failureComparator); 120 failures.sort(this._failureComparator);
117 121
118 if (!this.failures[tree]) 122 if (!this.failures[tree])
119 this.failures[tree] = []; 123 this.failures[tree] = [];
120 this.failures[tree].push(failures); 124 // FIXME: Need a better identifier for a failure group;
125 var key = group.sort_key;
126 this.failures[tree].push(new CTFailureGroup(key, failures, annotations [key]));
121 }.bind(this)); 127 }.bind(this));
122 }, 128 },
123 }); 129 });
124 </script> 130 </script>
125 </polymer-element> 131 </polymer-element>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698