github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/ec2/instance_information.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package ec2 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 = (*environ)(nil) 16 17 // InstanceTypes implements InstanceTypesFetcher 18 func (e *environ) InstanceTypes(ctx context.ProviderCallContext, c constraints.Value) (instances.InstanceTypesWithCostMetadata, error) { 19 iTypes, err := e.supportedInstanceTypes(ctx) 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{ 28 InstanceTypes: iTypes, 29 CostUnit: "$USD/hour", 30 CostDivisor: 1000, 31 CostCurrency: "USD"}, nil 32 }