X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/da79c28c17eb5de3196ab49718b86c3f73db2380..08c80b2ba6a8fc090d2e998dfcf2f280c8508019:/services/keep-balance/server.go diff --git a/services/keep-balance/server.go b/services/keep-balance/server.go index 0f4bb7176a..9801a3fd45 100644 --- a/services/keep-balance/server.go +++ b/services/keep-balance/server.go @@ -5,15 +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/ctxlog" + "git.arvados.org/arvados.git/sdk/go/arvados" "github.com/sirupsen/logrus" ) @@ -40,6 +38,7 @@ type RunOptions struct { type Server struct { http.Handler + Cluster *arvados.Cluster ArvClient *arvados.Client RunOptions RunOptions @@ -54,27 +53,27 @@ func (srv *Server) CheckHealth() error { return nil } -// Start sets up and runs the balancer. -func (srv *Server) Start(ctx context.Context) { - if srv.RunOptions.Logger == nil { - srv.RunOptions.Logger = ctxlog.FromContext(ctx) - } - - srv.Logger = srv.RunOptions.Logger - srv.Dumper = srv.RunOptions.Dumper +// Done implements service.Handler. +func (srv *Server) Done() <-chan struct{} { + return nil +} +func (srv *Server) run() { var err error if srv.RunOptions.Once { - _, err = srv.run() + _, err = srv.runOnce() } else { err = srv.runForever(nil) } if err != nil { srv.Logger.Error(err) + os.Exit(1) + } else { + os.Exit(0) } } -func (srv *Server) run() (*Balancer, error) { +func (srv *Server) runOnce() (*Balancer, error) { bal := &Balancer{ Logger: srv.Logger, Dumper: srv.Dumper, @@ -106,7 +105,7 @@ func (srv *Server) runForever(stop <-chan interface{}) error { logger.Print("======= Consider using -commit-pulls and -commit-trash flags.") } - _, err := srv.run() + _, err := srv.runOnce() if err != nil { logger.Print("run failed: ", err) } else {