X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0020a0bc96ee13203fbdc2af28ffa077799213d0..b49229f98012d7c08ce02b8d28dbcc165c8a6c53:/services/keep-balance/server.go diff --git a/services/keep-balance/server.go b/services/keep-balance/server.go index 23e597c89e..05658b5e5d 100644 --- a/services/keep-balance/server.go +++ b/services/keep-balance/server.go @@ -5,18 +5,13 @@ package main import ( - "context" "net/http" "os" "os/signal" "syscall" "time" - "git.curoverse.com/arvados.git/sdk/go/arvados" - "git.curoverse.com/arvados.git/sdk/go/auth" - "git.curoverse.com/arvados.git/sdk/go/ctxlog" - "github.com/julienschmidt/httprouter" - "github.com/prometheus/client_golang/prometheus/promhttp" + "git.arvados.org/arvados.git/sdk/go/arvados" "github.com/sirupsen/logrus" ) @@ -42,31 +37,23 @@ type RunOptions struct { } type Server struct { + http.Handler + Cluster *arvados.Cluster ArvClient *arvados.Client RunOptions RunOptions Metrics *metrics - httpHandler http.Handler - Logger logrus.FieldLogger Dumper logrus.FieldLogger } -// ServeHTTP implements service.Handler. -func (srv *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { - srv.httpHandler.ServeHTTP(w, r) -} - // CheckHealth implements service.Handler. func (srv *Server) CheckHealth() error { return nil } -// Start sets up and runs the balancer. -func (srv *Server) Start(ctx context.Context) { - srv.init(ctx) - +func (srv *Server) run() { var err error if srv.RunOptions.Once { _, err = srv.runOnce() @@ -75,29 +62,9 @@ func (srv *Server) Start(ctx context.Context) { } if err != nil { srv.Logger.Error(err) - } -} - -func (srv *Server) init(ctx context.Context) { - if srv.RunOptions.Logger == nil { - srv.RunOptions.Logger = ctxlog.FromContext(ctx) - } - - srv.Logger = srv.RunOptions.Logger - srv.Dumper = srv.RunOptions.Dumper - - if srv.Cluster.ManagementToken == "" { - srv.httpHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - http.Error(w, "Management API authentication is not configured", http.StatusForbidden) - }) + os.Exit(1) } else { - mux := httprouter.New() - metricsH := promhttp.HandlerFor(srv.Metrics.reg, promhttp.HandlerOpts{ - ErrorLog: srv.Logger, - }) - mux.Handler("GET", "/metrics", metricsH) - mux.Handler("GET", "/metrics.json", metricsH) - srv.httpHandler = auth.RequireLiteralToken(srv.Cluster.ManagementToken, mux) + os.Exit(0) } }