From 1b6b38c5d2e181f357cab883b63917cb5eaa778c Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Thu, 19 Sep 2019 13:45:49 -0400 Subject: [PATCH] 13647: Don't do API calls while loading controller config. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- lib/config/deprecated_keepstore.go | 4 ++++ lib/config/load.go | 1 + lib/service/cmd.go | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/lib/config/deprecated_keepstore.go b/lib/config/deprecated_keepstore.go index 1969c4c3c3..04e937cc5c 100644 --- a/lib/config/deprecated_keepstore.go +++ b/lib/config/deprecated_keepstore.go @@ -585,6 +585,10 @@ func (ldr *Loader) checkPendingKeepstoreMigrations(cluster arvados.Cluster) erro ldr.Logger.Debug("Services.Controller.ExternalURL not configured -- skipping check for pending keepstore config migrations") return nil } + if ldr.SkipAPICalls { + ldr.Logger.Debug("(Loader).SkipAPICalls == true -- skipping check for pending keepstore config migrations") + return nil + } client, err := arvados.NewClientFromConfig(&cluster) if err != nil { return err diff --git a/lib/config/load.go b/lib/config/load.go index db4bc9f597..93c36f69ed 100644 --- a/lib/config/load.go +++ b/lib/config/load.go @@ -28,6 +28,7 @@ type Loader struct { Logger logrus.FieldLogger SkipDeprecated bool // Don't load deprecated config keys SkipLegacy bool // Don't load legacy config files + SkipAPICalls bool // Don't do checks that call RailsAPI/controller Path string KeepstorePath string diff --git a/lib/service/cmd.go b/lib/service/cmd.go index c410e53684..d5619b87b3 100644 --- a/lib/service/cmd.go +++ b/lib/service/cmd.go @@ -79,6 +79,14 @@ func (c *command) RunCommand(prog string, args []string, stdin io.Reader, stdout return cmd.Version.RunCommand(prog, args, stdin, stdout, stderr) } + if strings.HasSuffix(prog, "controller") { + // Some config-loader checks try to make API calls via + // controller. Those can't be expected to work if this + // process _is_ the controller: we haven't started an + // http server yet. + loader.SkipAPICalls = true + } + cfg, err := loader.Load() if err != nil { return 1 -- 2.30.2