Home | History | Annotate | Download | only in model
      1 <!--
      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
      4 found in the LICENSE file.
      5 -->
      6 
      7 <link rel='import' href='ct-builder.html'>
      8 
      9 <script>
     10 // .builders[i] will have the CTBuilder objects
     11 function CTBuilderList(failures) {
     12   this.builders = [];
     13 
     14   if (!Array.isArray(failures))
     15     failures = [failures];
     16 
     17   var builderMap = {};
     18   failures.forEach(function(failure) {
     19     var results = failure.resultNodesByBuilder;
     20     Object.keys(results, (function(builder, result) {
     21       if (!builderMap[builder])
     22         builderMap[builder] = {};
     23       // This assumes that duplicate builder/master pairs all have the same
     24       // earliestFailingBuild.
     25       builderMap[builder][result.masterUrl] = {
     26         earliestFailingBuild: result.earliestFailingBuild,
     27         failingBuildCount: result.failingBuildCount,
     28       };
     29     }).bind(this));
     30   }, this);
     31 
     32   Object.keys(builderMap).sort().forEach(function(builder) {
     33     Object.keys(builderMap[builder]).sort().forEach(function(masterUrl) {
     34       var result = builderMap[builder][masterUrl];
     35       this.builders.push(new CTBuilder(masterUrl, builder,
     36           result.earliestFailingBuild, result.failingBuildCount));
     37     }, this);
     38   }, this);
     39 }
     40 </script>
     41