OLD | NEW |
1 // Copyright 2017 The LUCI Authors. | 1 // Copyright 2017 The LUCI Authors. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with 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 | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
13 // limitations under the License. | 13 // limitations under the License. |
14 | 14 |
15 package main | 15 package main |
16 | 16 |
17 import ( | 17 import ( |
18 "fmt" | 18 "fmt" |
19 "log" | 19 "log" |
20 "net/http" | 20 "net/http" |
21 "strings" | 21 "strings" |
22 | 22 |
23 » "github.com/luci/luci-go/milo/common" | 23 » "github.com/luci/gae/impl/cloud" |
24 "github.com/luci/luci-go/server/auth" | 24 "github.com/luci/luci-go/server/auth" |
25 "github.com/luci/luci-go/server/router" | 25 "github.com/luci/luci-go/server/router" |
26 ) | 26 ) |
27 | 27 |
| 28 // flexBase returns the basic middleware for use on appengine flex. Flex does n
ot |
| 29 // allow the use of appengine APIs. |
| 30 func flexBase() router.MiddlewareChain { |
| 31 // Installs the Info and Datastore services. |
| 32 return router.NewMiddlewareChain(func(c *router.Context, next router.Han
dler) { |
| 33 c.Context = cloud.UseFlex(c.Context) |
| 34 next(c) |
| 35 }) |
| 36 } |
| 37 |
28 // Where it all begins!!! | 38 // Where it all begins!!! |
29 func main() { | 39 func main() { |
30 r := router.New() | 40 r := router.New() |
31 | 41 |
32 » base := common.FlexBase() | 42 » base := flexBase() |
33 r.GET("/log/raw/*path", base, rawLog) | 43 r.GET("/log/raw/*path", base, rawLog) |
34 | 44 |
35 // Health check, for the appengine flex environment. | 45 // Health check, for the appengine flex environment. |
36 http.HandleFunc("/_ah/health", healthCheckHandler) | 46 http.HandleFunc("/_ah/health", healthCheckHandler) |
37 // And everything else. | 47 // And everything else. |
38 http.Handle("/", r) | 48 http.Handle("/", r) |
39 | 49 |
40 log.Print("Listening on port 8080") | 50 log.Print("Listening on port 8080") |
41 log.Fatal(http.ListenAndServe(":8080", nil)) | 51 log.Fatal(http.ListenAndServe(":8080", nil)) |
42 } | 52 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 http.Redirect(c.Writer, c.Request, loginURL, http.StatusTemporar
yRedirect) | 85 http.Redirect(c.Writer, c.Request, loginURL, http.StatusTemporar
yRedirect) |
76 return | 86 return |
77 default: | 87 default: |
78 fmt.Fprintf(c.Writer, "Encountered error: %s", err.Error()) | 88 fmt.Fprintf(c.Writer, "Encountered error: %s", err.Error()) |
79 } | 89 } |
80 } | 90 } |
81 | 91 |
82 func healthCheckHandler(w http.ResponseWriter, r *http.Request) { | 92 func healthCheckHandler(w http.ResponseWriter, r *http.Request) { |
83 fmt.Fprint(w, "ok") | 93 fmt.Fprint(w, "ok") |
84 } | 94 } |
OLD | NEW |