41
41
if result.Error != nil {
42
42
return environs.CloudSpec{}, errors.Annotate(result.Error, "API request failed")
44
return api.MakeCloudSpec(result.Result)
47
// MakeCloudSpec creates an environs.CloudSpec from a params.CloudSpec
48
// that has been returned from the apiserver.
49
func (api *CloudSpecAPI) MakeCloudSpec(pSpec *params.CloudSpec) (environs.CloudSpec, error) {
51
return environs.CloudSpec{}, errors.NotValidf("nil value")
44
53
var credential *cloud.Credential
45
if result.Result.Credential != nil {
54
if pSpec.Credential != nil {
46
55
credentialValue := cloud.NewCredential(
47
cloud.AuthType(result.Result.Credential.AuthType),
48
result.Result.Credential.Attributes,
56
cloud.AuthType(pSpec.Credential.AuthType),
57
pSpec.Credential.Attributes,
50
59
credential = &credentialValue
52
61
spec := environs.CloudSpec{
53
Type: result.Result.Type,
54
Name: result.Result.Name,
55
Region: result.Result.Region,
56
Endpoint: result.Result.Endpoint,
57
IdentityEndpoint: result.Result.IdentityEndpoint,
58
StorageEndpoint: result.Result.StorageEndpoint,
65
Endpoint: pSpec.Endpoint,
66
IdentityEndpoint: pSpec.IdentityEndpoint,
67
StorageEndpoint: pSpec.StorageEndpoint,
59
68
Credential: credential,
61
70
if err := spec.Validate(); err != nil {