-
Notifications
You must be signed in to change notification settings - Fork 44
/
CloudDriverHandler_static.go
92 lines (77 loc) · 3.4 KB
/
CloudDriverHandler_static.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//go:build !dyna
// +build !dyna
// Cloud Driver Manager of CB-Spider.
// The CB-Spider is a sub-Framework of the Cloud-Barista Multi-Cloud Project.
// The CB-Spider Mission is to connect all the clouds with a single interface.
//
// * Cloud-Barista: https://github.com/cloud-barista
//
// by CB-Spider Team, 2020.12.
package clouddriverhandler
import (
idrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces"
alibabadrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/alibaba"
awsdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/aws"
azuredrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/azure"
clouditdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit"
dockerdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/docker"
gcpdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/gcp"
ibmvpcdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ibmcloud-vpc"
mockdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/mock"
openstackdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/openstack"
tencentdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/tencent"
ktdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ktcloud"
ktvpcdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ktcloudvpc"
ncpdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncp"
ncpvpcdrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/ncpvpc"
nhndrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/nhncloud"
cblogger "github.com/cloud-barista/cb-log"
"github.com/sirupsen/logrus"
dim "github.com/cloud-barista/cb-spider/cloud-info-manager/driver-info-manager"
"fmt"
)
var cblog *logrus.Logger
func init() {
cblog = cblogger.GetLogger("CLOUD-BARISTA")
}
func getCloudDriver(cldDrvInfo dim.CloudDriverInfo) (idrv.CloudDriver, error) {
cblog.Info("CloudDriverHandler: called getStaticCloudDriver() - " + cldDrvInfo.DriverName)
var cloudDriver idrv.CloudDriver
// select driver
switch cldDrvInfo.ProviderName {
case "AWS":
cloudDriver = new(awsdrv.AwsDriver)
case "AZURE":
cloudDriver = new(azuredrv.AzureDriver)
case "GCP":
cloudDriver = new(gcpdrv.GCPDriver)
case "ALIBABA":
cloudDriver = new(alibabadrv.AlibabaDriver)
case "OPENSTACK":
cloudDriver = new(openstackdrv.OpenStackDriver)
case "CLOUDIT":
cloudDriver = new(clouditdrv.ClouditDriver)
case "DOCKER":
cloudDriver = new(dockerdrv.DockerDriver)
case "TENCENT":
cloudDriver = new(tencentdrv.TencentDriver)
case "IBM":
cloudDriver = new(ibmvpcdrv.IbmCloudDriver)
case "NCP":
cloudDriver = new(ncpdrv.NcpDriver)
case "NCPVPC":
cloudDriver = new(ncpvpcdrv.NcpVpcDriver)
case "NHNCLOUD":
cloudDriver = new(nhndrv.NhnCloudDriver)
case "KTCLOUD":
cloudDriver = new(ktdrv.KtCloudDriver)
case "KTCLOUDVPC":
cloudDriver = new(ktvpcdrv.KTCloudVpcDriver)
case "MOCK":
cloudDriver = new(mockdrv.MockDriver)
default:
errmsg := cldDrvInfo.ProviderName + " is not supported static Cloud Driver!!"
return cloudDriver, fmt.Errorf(errmsg)
}
return cloudDriver, nil
}