Merge branch '21666-provision-test-improvement'
[arvados.git] / lib / dispatchcloud / cmd.go
index 7231e839475639c2aa5e6c720091c15b4d4b5ed7..81982cdc1a7dad1a52c1b9bf05d34879ef7924ba 100644 (file)
@@ -6,16 +6,32 @@ package dispatchcloud
 
 import (
        "context"
+       "fmt"
 
-       "git.curoverse.com/arvados.git/lib/cmd"
-       "git.curoverse.com/arvados.git/lib/service"
-       "git.curoverse.com/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/lib/cmd"
+       "git.arvados.org/arvados.git/lib/service"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
+       "github.com/prometheus/client_golang/prometheus"
 )
 
 var Command cmd.Handler = service.Command(arvados.ServiceNameDispatchCloud, newHandler)
 
-func newHandler(ctx context.Context, cluster *arvados.Cluster, _ *arvados.NodeProfile) service.Handler {
-       d := &dispatcher{Cluster: cluster, Context: ctx}
+func newHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg *prometheus.Registry) service.Handler {
+       ac, err := arvados.NewClientFromConfig(cluster)
+       if err != nil {
+               return service.ErrorHandler(ctx, cluster, fmt.Errorf("error initializing client from cluster config: %s", err))
+       }
+       // Disable auto-retry.  We have transient failure recovery at
+       // the application level, so we would rather receive/report
+       // upstream errors right away.
+       ac.Timeout = 0
+       d := &dispatcher{
+               Cluster:   cluster,
+               Context:   ctx,
+               ArvClient: ac,
+               AuthToken: token,
+               Registry:  reg,
+       }
        go d.Start()
        return d
 }