github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/joyent/instance_information.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package joyent 5 6 import ( 7 "github.com/juju/errors" 8 9 "github.com/juju/juju/core/constraints" 10 "github.com/juju/juju/environs" 11 "github.com/juju/juju/environs/context" 12 "github.com/juju/juju/environs/instances" 13 ) 14 15 var _ environs.InstanceTypesFetcher = (*joyentEnviron)(nil) 16 17 // InstanceTypes implements InstanceTypesFetcher 18 func (env *joyentEnviron) InstanceTypes(ctx context.ProviderCallContext, c constraints.Value) (instances.InstanceTypesWithCostMetadata, error) { 19 iTypes, err := env.listInstanceTypes() 20 if err != nil { 21 return instances.InstanceTypesWithCostMetadata{}, errors.Trace(err) 22 } 23 iTypes, err = instances.MatchingInstanceTypes(iTypes, "", c) 24 if err != nil { 25 return instances.InstanceTypesWithCostMetadata{}, errors.Trace(err) 26 } 27 return instances.InstanceTypesWithCostMetadata{InstanceTypes: iTypes}, nil 28 }