github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/vsphere/environ_policy.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package vsphere 5 6 import ( 7 "github.com/juju/utils/arch" 8 9 "github.com/juju/juju/core/constraints" 10 "github.com/juju/juju/environs" 11 "github.com/juju/juju/environs/context" 12 ) 13 14 // PrecheckInstance is part of the environs.Environ interface. 15 func (env *environ) PrecheckInstance(ctx context.ProviderCallContext, args environs.PrecheckInstanceParams) error { 16 if args.Placement == "" { 17 return nil 18 } 19 return env.withSession(ctx, func(env *sessionEnviron) error { 20 return env.PrecheckInstance(ctx, args) 21 }) 22 } 23 24 // PrecheckInstance is part of the environs.Environ interface. 25 func (env *sessionEnviron) PrecheckInstance(ctx context.ProviderCallContext, args environs.PrecheckInstanceParams) error { 26 _, err := env.parsePlacement(ctx, args.Placement) 27 return err 28 } 29 30 var unsupportedConstraints = []string{ 31 constraints.Tags, 32 constraints.VirtType, 33 } 34 35 // ConstraintsValidator returns a Validator value which is used to 36 // validate and merge constraints. 37 func (env *environ) ConstraintsValidator(ctx context.ProviderCallContext) (constraints.Validator, error) { 38 validator := constraints.NewValidator() 39 validator.RegisterUnsupported(unsupportedConstraints) 40 validator.RegisterVocabulary(constraints.Arch, []string{ 41 arch.AMD64, arch.I386, 42 }) 43 return validator, nil 44 }