-
Notifications
You must be signed in to change notification settings - Fork 45
/
ClouditDriver.go
62 lines (49 loc) · 2.02 KB
/
ClouditDriver.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
package cloudit
import (
"github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/client"
cicon "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/connect"
cirs "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/resources"
idrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces"
icon "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces/connect"
)
type ClouditDriver struct{}
func (ClouditDriver) GetDriverVersion() string {
return "CLOUDIT DRIVER Version 1.0"
}
func (ClouditDriver) GetDriverCapability() idrv.DriverCapabilityInfo {
var drvCapabilityInfo idrv.DriverCapabilityInfo
drvCapabilityInfo.ImageHandler = false
drvCapabilityInfo.VPCHandler = false
drvCapabilityInfo.SecurityHandler = false
drvCapabilityInfo.KeyPairHandler = false
drvCapabilityInfo.VNicHandler = false
drvCapabilityInfo.PublicIPHandler = false
drvCapabilityInfo.VMHandler = true
return drvCapabilityInfo
}
func (driver *ClouditDriver) ConnectCloud(connectionInfo idrv.ConnectionInfo) (icon.CloudConnection, error) {
// 1. get info of credential and region for Test A Cloud from connectionInfo.
// 2. create a client object(or service object) of Test A Cloud with credential info.
// 3. create CloudConnection Instance of "connect/TDA_CloudConnection".
// 4. return CloudConnection Interface of TDA_CloudConnection.
// Initialize Logger
cirs.InitLog()
Client, err := getServiceClient(connectionInfo)
if err != nil {
return nil, err
}
iConn := cicon.ClouditCloudConnection{
CredentialInfo: connectionInfo.CredentialInfo,
Client: *Client,
}
return &iConn, nil
}
func getServiceClient(connInfo idrv.ConnectionInfo) (*client.RestClient, error) {
restClient := client.RestClient{
IdentityBase: connInfo.CredentialInfo.IdentityEndpoint,
ClouditVersion: "v4.0",
TenantID: connInfo.CredentialInfo.TenantId,
}
return &restClient, nil
}
var CloudDriver ClouditDriver