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

Side by Side Diff: appengine/cmd/milo/buildbucket/html.go

Issue 2134673003: milo: buildbucket builer view (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-go@master
Patch Set: rebased and regenerated expectations Created 4 years, 5 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
OLDNEW
(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 buildbucket
6
7 import (
8 "fmt"
9 "net/http"
10 "strconv"
11
12 "github.com/julienschmidt/httprouter"
13 "golang.org/x/net/context"
14
15 "github.com/luci/luci-go/appengine/cmd/milo/miloerror"
16 "github.com/luci/luci-go/appengine/cmd/milo/settings"
17 "github.com/luci/luci-go/server/templates"
18 )
19
20 // TODO(nodir): move this value to luci-config.
21 const defaultServer = "cr-buildbucket.appspot.com"
22
23 // Builder displays builder view by fetching builds from buildbucket.
24 type Builder struct{}
25
26 // GetTemplateName for Builder returns the template name for builder pages.
27 func (b Builder) GetTemplateName(t settings.Theme) string {
28 return "builder.html"
29 }
30
31 // Render renders builder view page.
32 func (b Builder) Render(c context.Context, r *http.Request, p httprouter.Params) (*templates.Args, error) {
33 // Parse URL parameters.
34 server := r.FormValue("server")
35 if server == "" {
36 server = defaultServer
37 }
38
39 bucket := p.ByName("bucket")
40 if bucket == "" {
41 return nil, &miloerror.Error{
42 Message: "No bucket",
43 Code: http.StatusBadRequest,
44 }
45 }
46
47 builder := p.ByName("builder")
48 if builder == "" {
49 return nil, &miloerror.Error{
50 Message: "No builder",
51 Code: http.StatusBadRequest,
52 }
53 }
54
55 // numbuilds is a name of buildbot's query string parameter for specifyi ng
56 // maximum number of builds to show.
57 // We are retaining the parameter name for user convenience.
58 numBuildsStr := r.FormValue("numbuilds")
59 numBuilds := -1
60 if numBuildsStr != "" {
61 var err error
62 numBuilds, err = strconv.Atoi(numBuildsStr)
63 if err != nil {
64 return nil, &miloerror.Error{
65 Message: fmt.Sprintf("numbuilds parameter value %q is not a number: %s", numBuildsStr, err),
66 Code: http.StatusBadRequest,
67 }
68 }
69 }
70
71 result, err := builderImpl(c, server, bucket, builder, numBuilds)
72 if err != nil {
73 return nil, err
74 }
75
76 // Render into the template
77 args := &templates.Args{
78 "Builder": result,
79 }
80 return args, nil
81 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698