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

Side by Side Diff: milo/frontend/main.go

Issue 2977863002: [milo] Refactor all html knowledge out of backends. (Closed)
Patch Set: now with case insensitivity Created 3 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
« no previous file with comments | « milo/frontend/frontpage.go ('k') | milo/frontend/main_test.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The LUCI Authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 package frontend
16
17 import (
18 "net/http"
19
20 "github.com/golang/protobuf/proto"
21 "golang.org/x/net/context"
22
23 "github.com/luci/luci-go/appengine/gaemiddleware"
24 "github.com/luci/luci-go/grpc/discovery"
25 "github.com/luci/luci-go/grpc/grpcmon"
26 "github.com/luci/luci-go/grpc/prpc"
27 milo "github.com/luci/luci-go/milo/api/proto"
28 "github.com/luci/luci-go/milo/buildsource/buildbot"
29 "github.com/luci/luci-go/milo/buildsource/buildbucket"
30 "github.com/luci/luci-go/milo/buildsource/rawpresentation"
31 "github.com/luci/luci-go/milo/buildsource/swarming"
32 "github.com/luci/luci-go/milo/common"
33 "github.com/luci/luci-go/milo/frontend/console"
34 "github.com/luci/luci-go/milo/rpc"
35 "github.com/luci/luci-go/server/router"
36 )
37
38 func emptyPrelude(c context.Context, methodName string, req proto.Message) (cont ext.Context, error) {
39 return c, nil
40 }
41
42 // Run sets up all the routes and runs the server.
43 func Run(templatePath string) {
44 // Register plain ol' http handlers.
45 r := router.New()
46 gaemiddleware.InstallHandlers(r)
47
48 basemw := common.Base(templatePath)
49 r.GET("/", basemw, frontpageHandler)
50
51 // Admin and cron endpoints.
52 r.GET("/admin/update", basemw.Extend(gaemiddleware.RequireCron), UpdateC onfigHandler)
53 r.GET("/admin/configs", basemw, ConfigsHandler)
54
55 // Console
56 r.GET("/console/:project/:name", basemw, console.ConsoleHandler)
57 r.GET("/console/:project", basemw, console.Main)
58
59 // Swarming
60 r.GET(swarming.URLBase+"/:id/steps/*logname", basemw, swarming.LogHandle r)
61 r.GET(swarming.URLBase+"/:id", basemw, swarming.BuildHandler)
62 // Backward-compatible URLs for Swarming:
63 r.GET("/swarming/prod/:id/steps/*logname", basemw, swarming.LogHandler)
64 r.GET("/swarming/prod/:id", basemw, swarming.BuildHandler)
65
66 // Buildbucket
67 r.GET("/buildbucket/:bucket/:builder", basemw, buildbucket.BuilderHandle r)
68
69 // Buildbot
70 r.GET("/buildbot/:master/:builder/:build", basemw, buildbot.BuildHandler )
71 r.GET("/buildbot/:master/:builder/", basemw, buildbot.BuilderHandler)
72
73 // LogDog Milo Annotation Streams.
74 // This mimicks the `logdog://logdog_host/project/*path` url scheme seen on
75 // swarming tasks.
76 r.GET("/raw/build/:logdog_host/:project/*path", basemw, rawpresentation. BuildHandler)
77
78 // PubSub subscription endpoints.
79 r.POST("/_ah/push-handlers/buildbot", basemw, buildbot.PubSubHandler)
80 r.POST("/_ah/push-handlers/buildbucket", basemw, buildbucket.PubSubHandl er)
81
82 // pRPC style endpoints.
83 api := prpc.Server{
84 UnaryServerInterceptor: grpcmon.NewUnaryServerInterceptor(nil),
85 }
86 milo.RegisterBuildbotServer(&api, &milo.DecoratedBuildbot{
87 Service: &buildbot.Service{},
88 Prelude: emptyPrelude,
89 })
90 milo.RegisterBuildInfoServer(&api, &milo.DecoratedBuildInfo{
91 Service: &rpc.BuildInfoService{},
92 Prelude: emptyPrelude,
93 })
94 discovery.Enable(&api)
95 api.InstallHandlers(r, gaemiddleware.BaseProd())
96
97 http.DefaultServeMux.Handle("/", r)
98 }
OLDNEW
« no previous file with comments | « milo/frontend/frontpage.go ('k') | milo/frontend/main_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698