| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 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 frontend | |
| 6 | |
| 7 import ( | |
| 8 "github.com/luci/luci-go/server/router" | |
| 9 "github.com/luci/luci-go/server/templates" | |
| 10 | |
| 11 "github.com/luci/luci-go/common/sync/parallel" | |
| 12 "github.com/luci/luci-go/milo/api/resp" | |
| 13 "github.com/luci/luci-go/milo/appengine/common" | |
| 14 "github.com/luci/luci-go/milo/appengine/job_source/buildbot" | |
| 15 "github.com/luci/luci-go/milo/appengine/job_source/buildbucket" | |
| 16 ) | |
| 17 | |
| 18 func frontpageHandler(c *router.Context) { | |
| 19 fp := resp.FrontPage{} | |
| 20 var mBuildbot, mBuildbucket *resp.CIService | |
| 21 | |
| 22 err := parallel.FanOutIn(func(ch chan<- func() error) { | |
| 23 ch <- func() (err error) { | |
| 24 mBuildbot, err = buildbot.GetAllBuilders(c.Context) | |
| 25 return err | |
| 26 } | |
| 27 ch <- func() (err error) { | |
| 28 mBuildbucket, err = buildbucket.GetAllBuilders(c.Context
) | |
| 29 return err | |
| 30 } | |
| 31 }) | |
| 32 | |
| 33 fp.CIServices = append(fp.CIServices, *mBuildbucket) | |
| 34 fp.CIServices = append(fp.CIServices, *mBuildbot) | |
| 35 errMsg := "" | |
| 36 if err != nil { | |
| 37 errMsg = err.Error() | |
| 38 } | |
| 39 templates.MustRender(c.Context, c.Writer, "pages/frontpage.html", templa
tes.Args{ | |
| 40 "frontpage": fp, | |
| 41 "error": errMsg, | |
| 42 }) | |
| 43 } | |
| 44 | |
| 45 func frontpageTestData() []common.TestBundle { | |
| 46 data := &templates.Args{ | |
| 47 "frontpage": resp.FrontPage{ | |
| 48 CIServices: []resp.CIService{ | |
| 49 { | |
| 50 Name: "Module 1", | |
| 51 BuilderGroups: []resp.BuilderGroup{ | |
| 52 { | |
| 53 Name: "Example master A"
, | |
| 54 Builders: []resp.Link{ | |
| 55 *resp.NewLink("E
xample builder", "/master1/buildera"), | |
| 56 *resp.NewLink("E
xample builder 2", "/master1/builderb"), | |
| 57 }, | |
| 58 }, | |
| 59 }, | |
| 60 }, | |
| 61 }, | |
| 62 }, | |
| 63 "error": "couldn't find ice cream", | |
| 64 } | |
| 65 return []common.TestBundle{ | |
| 66 { | |
| 67 Description: "Basic frontpage", | |
| 68 Data: *data, | |
| 69 }, | |
| 70 } | |
| 71 } | |
| OLD | NEW |