ae6ac70e9665f777069232d49eaf0dd76a66d1a2
[arvados.git] / lib / dispatchcloud / cmd.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package dispatchcloud
6
7 import (
8         "context"
9         "fmt"
10
11         "git.curoverse.com/arvados.git/lib/cmd"
12         "git.curoverse.com/arvados.git/lib/service"
13         "git.curoverse.com/arvados.git/sdk/go/arvados"
14 )
15
16 var Command cmd.Handler = service.Command(arvados.ServiceNameDispatchCloud, newHandler)
17
18 func newHandler(ctx context.Context, cluster *arvados.Cluster, token string) service.Handler {
19         ac, err := arvados.NewClientFromConfig(cluster)
20         if err != nil {
21                 return service.ErrorHandler(ctx, cluster, fmt.Errorf("error initializing client from cluster config: %s", err))
22         }
23         d := &dispatcher{
24                 Cluster:   cluster,
25                 Context:   ctx,
26                 ArvClient: ac,
27                 AuthToken: token,
28         }
29         go d.Start()
30         return d
31 }