~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/api/common/cloudspec/cloudspec.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
        if result.Error != nil {
42
42
                return environs.CloudSpec{}, errors.Annotate(result.Error, "API request failed")
43
43
        }
 
44
        return api.MakeCloudSpec(result.Result)
 
45
}
 
46
 
 
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) {
 
50
        if pSpec == nil {
 
51
                return environs.CloudSpec{}, errors.NotValidf("nil value")
 
52
        }
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,
49
58
                )
50
59
                credential = &credentialValue
51
60
        }
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,
 
62
                Type:             pSpec.Type,
 
63
                Name:             pSpec.Name,
 
64
                Region:           pSpec.Region,
 
65
                Endpoint:         pSpec.Endpoint,
 
66
                IdentityEndpoint: pSpec.IdentityEndpoint,
 
67
                StorageEndpoint:  pSpec.StorageEndpoint,
59
68
                Credential:       credential,
60
69
        }
61
70
        if err := spec.Validate(); err != nil {