| OLD | NEW |
| (Empty) |
| 1 // Copyright 2017 The LUCI Authors. All rights reserved. | |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | |
| 3 // that can be found in the LICENSE file. | |
| 4 | |
| 5 package buildbucket | |
| 6 | |
| 7 import ( | |
| 8 "errors" | |
| 9 "fmt" | |
| 10 | |
| 11 "golang.org/x/net/context" | |
| 12 | |
| 13 "github.com/luci/luci-go/milo/api/resp" | |
| 14 "github.com/luci/luci-go/milo/common" | |
| 15 ) | |
| 16 | |
| 17 func GetAllBuilders(c context.Context) (*resp.CIService, error) { | |
| 18 settings := common.GetSettings(c) | |
| 19 bucketSettings := settings.Buildbucket | |
| 20 if bucketSettings == nil { | |
| 21 return nil, errors.New("buildbucket settings missing in config") | |
| 22 } | |
| 23 result := &resp.CIService{ | |
| 24 Name: "Swarmbucket", | |
| 25 Host: resp.NewLink(bucketSettings.Name, "https://"+bucketSetting
s.Host), | |
| 26 } | |
| 27 client, err := newSwarmbucketClient(c, bucketSettings.Host) | |
| 28 if err != nil { | |
| 29 return nil, err | |
| 30 } | |
| 31 // TODO(hinoka): Retries for transient errors | |
| 32 r, err := client.GetBuilders().Do() | |
| 33 if err != nil { | |
| 34 return nil, err | |
| 35 } | |
| 36 | |
| 37 result.BuilderGroups = make([]resp.BuilderGroup, len(r.Buckets)) | |
| 38 for i, bucket := range r.Buckets { | |
| 39 group := resp.BuilderGroup{Name: bucket.Name} | |
| 40 group.Builders = make([]resp.Link, len(bucket.Builders)) | |
| 41 for j, builder := range bucket.Builders { | |
| 42 group.Builders[j] = *resp.NewLink( | |
| 43 builder.Name, fmt.Sprintf("/buildbucket/%s/%s",
bucket.Name, builder.Name)) | |
| 44 } | |
| 45 result.BuilderGroups[i] = group | |
| 46 } | |
| 47 | |
| 48 return result, nil | |
| 49 } | |
| OLD | NEW |