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

Unified Diff: scheduler/appengine/task/swarming/swarming.go

Issue 2991213003: scheduler: Make 'https://' optional in 'server' config field. (Closed)
Patch Set: Created 3 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: scheduler/appengine/task/swarming/swarming.go
diff --git a/scheduler/appengine/task/swarming/swarming.go b/scheduler/appengine/task/swarming/swarming.go
index 34d33ca9d56816bd7152729895baa6e6d71ec806..8ab6f5d128c430a6c9825bb62b71747981c4c211 100644
--- a/scheduler/appengine/task/swarming/swarming.go
+++ b/scheduler/appengine/task/swarming/swarming.go
@@ -19,6 +19,7 @@ import (
"encoding/json"
"fmt"
"net/url"
+ "strings"
"time"
"github.com/golang/protobuf/proto"
@@ -61,6 +62,13 @@ func (m TaskManager) Traits() task.Traits {
}
}
+func normalizeServerURL(s string) string {
+ if strings.HasPrefix(s, "https://") || strings.HasPrefix(s, "http://") {
+ return s
+ }
+ return "https://" + s
+}
+
// ValidateProtoMessage is part of Manager interface.
func (m TaskManager) ValidateProtoMessage(msg proto.Message) error {
cfg, ok := msg.(*messages.SwarmingTask)
@@ -75,7 +83,7 @@ func (m TaskManager) ValidateProtoMessage(msg proto.Message) error {
if cfg.Server == "" {
return fmt.Errorf("field 'server' is required")
}
- u, err := url.Parse(cfg.Server)
+ u, err := url.Parse(normalizeServerURL(cfg.Server))
if err != nil {
return fmt.Errorf("invalid URL %q: %s", cfg.Server, err)
}
@@ -207,8 +215,9 @@ func (m TaskManager) LaunchTask(c context.Context, ctl task.Controller) error {
// Make sure Swarming can publish PubSub messages, grab token that would
// identify this invocation when receiving PubSub notifications.
- ctl.DebugLog("Preparing PubSub topic for %q", cfg.Server)
- topic, authToken, err := ctl.PrepareTopic(c, cfg.Server)
+ serverURL := normalizeServerURL(cfg.Server)
+ ctl.DebugLog("Preparing PubSub topic for %q", serverURL)
+ topic, authToken, err := ctl.PrepareTopic(c, serverURL)
if err != nil {
ctl.DebugLog("Failed to prepare PubSub topic - %s", err)
return err
@@ -286,7 +295,7 @@ func (m TaskManager) LaunchTask(c context.Context, ctl task.Controller) error {
// Successfully launched.
ctl.State().Status = task.StatusRunning
- ctl.State().ViewURL = fmt.Sprintf("%s/user/task/%s", cfg.Server, resp.TaskId)
+ ctl.State().ViewURL = fmt.Sprintf("%s/user/task/%s", serverURL, resp.TaskId)
ctl.DebugLog("Task URL: %s", ctl.State().ViewURL)
// Maybe the task was already finished? Can only happen when 'idempotent' is
@@ -340,7 +349,7 @@ func (m TaskManager) createSwarmingService(c context.Context, ctl task.Controlle
return nil, err
}
cfg := ctl.Task().(*messages.SwarmingTask)
- service.BasePath = cfg.Server + "/_ah/api/swarming/v1/"
+ service.BasePath = normalizeServerURL(cfg.Server) + "/_ah/api/swarming/v1/"
return service, nil
}
« no previous file with comments | « scheduler/appengine/task/buildbucket/buildbucket_test.go ('k') | scheduler/appengine/task/swarming/swarming_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698