| OLD | NEW |
| 1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 package swarming | 5 package swarming |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "errors" | 8 "errors" |
| 9 "fmt" | 9 "fmt" |
| 10 "net/http" | 10 "net/http" |
| 11 "os" | 11 "os" |
| 12 | 12 |
| 13 "golang.org/x/net/context" | 13 "golang.org/x/net/context" |
| 14 "google.golang.org/api/googleapi" | 14 "google.golang.org/api/googleapi" |
| 15 | 15 |
| 16 "github.com/luci/luci-go/common/logging" | 16 "github.com/luci/luci-go/common/logging" |
| 17 "github.com/luci/luci-go/milo/appengine/common" | 17 "github.com/luci/luci-go/milo/appengine/common" |
| 18 "github.com/luci/luci-go/server/router" | 18 "github.com/luci/luci-go/server/router" |
| 19 "github.com/luci/luci-go/server/templates" | 19 "github.com/luci/luci-go/server/templates" |
| 20 ) | 20 ) |
| 21 | 21 |
| 22 const ( | |
| 23 defaultSwarmingServer = "chromium-swarm.appspot.com" | |
| 24 defaultSwarmingDevServer = "chromium-swarm-dev.appspot.com" | |
| 25 ) | |
| 26 | |
| 27 var errUnrecognizedHost = errors.New("Unregistered Swarming Host") | 22 var errUnrecognizedHost = errors.New("Unregistered Swarming Host") |
| 28 | 23 |
| 29 // getSwarmingHost parses the swarming hostname out of the context. If | 24 // getSwarmingHost parses the swarming hostname out of the context. If |
| 30 // none is specified, get the default swarming host out of the global | 25 // none is specified, get the default swarming host out of the global |
| 31 // configs. | 26 // configs. |
| 32 func getSwarmingHost(c context.Context, r *http.Request) (string, error) { | 27 func getSwarmingHost(c context.Context, r *http.Request) (string, error) { |
| 33 » settings, err := common.GetSettings(c) | 28 » settings := common.GetSettings(c) |
| 34 » if err != nil { | |
| 35 » » logging.WithError(err).Errorf(c, "could not get settings") | |
| 36 » » return "", err | |
| 37 » } | |
| 38 if settings.Swarming == nil { | 29 if settings.Swarming == nil { |
| 39 » » err = errors.New("swarming not in settings") | 30 » » err := errors.New("swarming not in settings") |
| 40 logging.Errorf(c, err.Error()) | 31 logging.Errorf(c, err.Error()) |
| 41 return "", err | 32 return "", err |
| 42 } | 33 } |
| 43 server := r.FormValue("server") | 34 server := r.FormValue("server") |
| 44 // If server isn't specified, return the default host. | 35 // If server isn't specified, return the default host. |
| 45 » if server == "" { | 36 » if server == "" || server == settings.Swarming.DefaultHost { |
| 46 return settings.Swarming.DefaultHost, nil | 37 return settings.Swarming.DefaultHost, nil |
| 47 } | 38 } |
| 48 // If it is specified, validate the hostname. | 39 // If it is specified, validate the hostname. |
| 49 for _, hostname := range settings.Swarming.AllowedHosts { | 40 for _, hostname := range settings.Swarming.AllowedHosts { |
| 50 if server == hostname { | 41 if server == hostname { |
| 51 return server, nil | 42 return server, nil |
| 52 } | 43 } |
| 53 } | 44 } |
| 54 return "", errUnrecognizedHost | 45 return "", errUnrecognizedHost |
| 55 } | 46 } |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 return http.StatusInternalServerError | 136 return http.StatusInternalServerError |
| 146 } | 137 } |
| 147 | 138 |
| 148 // isAPINotFound returns true if err is a HTTP 404 API response. | 139 // isAPINotFound returns true if err is a HTTP 404 API response. |
| 149 func isAPINotFound(err error) bool { | 140 func isAPINotFound(err error) bool { |
| 150 if apiErr, ok := err.(*googleapi.Error); ok && apiErr.Code == http.Statu
sNotFound { | 141 if apiErr, ok := err.(*googleapi.Error); ok && apiErr.Code == http.Statu
sNotFound { |
| 151 return true | 142 return true |
| 152 } | 143 } |
| 153 return false | 144 return false |
| 154 } | 145 } |
| OLD | NEW |