Merge branch '15781-multi-value-property-search'
[arvados.git] / services / keep-balance / server.go
index 0f4bb7176ae58044027a947cb821ba8db5ff9cdc..05658b5e5d7f17a4dcd9bd099d81d68950f97a8f 100644 (file)
@@ -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,22 @@ 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
-
+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 +100,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 {