| 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 |