14325: Shutdown unknown-state worker after boot timeout.
[arvados.git] / lib / dispatchcloud / driver.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         "fmt"
9
10         "git.curoverse.com/arvados.git/lib/cloud"
11         "git.curoverse.com/arvados.git/sdk/go/arvados"
12         "github.com/sirupsen/logrus"
13 )
14
15 var drivers = map[string]cloud.Driver{
16         "azure": cloud.DriverFunc(cloud.NewAzureInstanceSet),
17 }
18
19 func newInstanceSet(cluster *arvados.Cluster, setID cloud.InstanceSetID, logger logrus.FieldLogger) (cloud.InstanceSet, error) {
20         driver, ok := drivers[cluster.CloudVMs.Driver]
21         if !ok {
22                 return nil, fmt.Errorf("unsupported cloud driver %q", cluster.CloudVMs.Driver)
23         }
24         return driver.InstanceSet(cluster.CloudVMs.DriverParameters, setID, logger)
25 }