forked from juju/juju
/
cloud.go
61 lines (57 loc) · 1.79 KB
/
cloud.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
// Copyright 2017 Canonical Ltd.
// Licensed under the AGPLv3, see LICENCE file for details.
package common
import (
"github.com/juju/juju/apiserver/params"
jujucloud "github.com/juju/juju/cloud"
)
func CloudToParams(cloud jujucloud.Cloud) params.Cloud {
authTypes := make([]string, len(cloud.AuthTypes))
for i, authType := range cloud.AuthTypes {
authTypes[i] = string(authType)
}
regions := make([]params.CloudRegion, len(cloud.Regions))
for i, region := range cloud.Regions {
regions[i] = params.CloudRegion{
Name: region.Name,
Endpoint: region.Endpoint,
IdentityEndpoint: region.IdentityEndpoint,
StorageEndpoint: region.StorageEndpoint,
}
}
return params.Cloud{
Type: cloud.Type,
HostCloudRegion: cloud.HostCloudRegion,
AuthTypes: authTypes,
Endpoint: cloud.Endpoint,
IdentityEndpoint: cloud.IdentityEndpoint,
StorageEndpoint: cloud.StorageEndpoint,
Regions: regions,
CACertificates: cloud.CACertificates,
}
}
func CloudFromParams(cloudName string, p params.Cloud) jujucloud.Cloud {
authTypes := make([]jujucloud.AuthType, len(p.AuthTypes))
for i, authType := range p.AuthTypes {
authTypes[i] = jujucloud.AuthType(authType)
}
regions := make([]jujucloud.Region, len(p.Regions))
for i, region := range p.Regions {
regions[i] = jujucloud.Region{
Name: region.Name,
Endpoint: region.Endpoint,
IdentityEndpoint: region.IdentityEndpoint,
StorageEndpoint: region.StorageEndpoint,
}
}
return jujucloud.Cloud{
Name: cloudName,
Type: p.Type,
AuthTypes: authTypes,
Endpoint: p.Endpoint,
IdentityEndpoint: p.IdentityEndpoint,
StorageEndpoint: p.StorageEndpoint,
Regions: regions,
CACertificates: p.CACertificates,
}
}