From 3cd0d84e31de28d989e3c1793fd9bd8e6a175553 Mon Sep 17 00:00:00 2001 From: Bobby Rullo Date: Fri, 18 Sep 2015 17:11:58 -0700 Subject: [PATCH 1/2] cmd/dex-worker: wait 'til connectors are available Otherwise, if worker starts without connectors, and then connectors are added workers have to be restarted to pick up the changes. --- cmd/dex-worker/main.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/cmd/dex-worker/main.go b/cmd/dex-worker/main.go index ea0e9527..ffa4823c 100644 --- a/cmd/dex-worker/main.go +++ b/cmd/dex-worker/main.go @@ -7,14 +7,16 @@ import ( "net/http" "net/url" "os" + "time" "github.com/gorilla/handlers" + "github.com/coreos/dex/connector" "github.com/coreos/dex/db" pflag "github.com/coreos/dex/pkg/flag" "github.com/coreos/dex/pkg/log" + ptime "github.com/coreos/dex/pkg/time" "github.com/coreos/dex/server" - "github.com/coreos/pkg/flagutil" ) @@ -150,9 +152,21 @@ func main() { log.Fatalf("Unable to build Server: %v", err) } - cfgs, err := srv.ConnectorConfigRepo.All() - if err != nil { - log.Fatalf("Unable to fetch connector configs from repo: %v", err) + var cfgs []connector.ConnectorConfig + var sleep time.Duration + for { + var err error + cfgs, err = srv.ConnectorConfigRepo.All() + if len(cfgs) > 0 && err == nil { + break + } + sleep = ptime.ExpBackoff(sleep, time.Minute) + if err != nil { + log.Errorf("Unable to load connectors, retrying in %v: %v", sleep, err) + } else { + log.Errorf("No connectors, will wait. Retrying in %v.", sleep) + } + time.Sleep(sleep) } for _, cfg := range cfgs { From 510293a98419c19c22f87c3b5b9c8135ce66342d Mon Sep 17 00:00:00 2001 From: Bobby Rullo Date: Fri, 18 Sep 2015 17:25:06 -0700 Subject: [PATCH 2/2] fixup --- cmd/dex-worker/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/dex-worker/main.go b/cmd/dex-worker/main.go index ffa4823c..bf1facfc 100644 --- a/cmd/dex-worker/main.go +++ b/cmd/dex-worker/main.go @@ -9,6 +9,7 @@ import ( "os" "time" + "github.com/coreos/pkg/flagutil" "github.com/gorilla/handlers" "github.com/coreos/dex/connector" @@ -17,7 +18,6 @@ import ( "github.com/coreos/dex/pkg/log" ptime "github.com/coreos/dex/pkg/time" "github.com/coreos/dex/server" - "github.com/coreos/pkg/flagutil" ) var version = "DEV"