github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/lxd/export_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package lxd 5 6 import ( 7 "errors" 8 9 "github.com/juju/clock" 10 11 "github.com/juju/juju/container/lxd" 12 "github.com/juju/juju/environs" 13 ) 14 15 var ( 16 NewInstance = newInstance 17 GetCertificates = getCertificates 18 IsSupportedAPIVersion = isSupportedAPIVersion 19 ) 20 21 func NewProviderWithMocks( 22 creds environs.ProviderCredentials, 23 credsRegister environs.ProviderCredentialsRegister, 24 serverFactory ServerFactory, 25 configReader LXCConfigReader, 26 ) environs.EnvironProvider { 27 return &environProvider{ 28 ProviderCredentials: creds, 29 ProviderCredentialsRegister: credsRegister, 30 serverFactory: serverFactory, 31 lxcConfigReader: configReader, 32 } 33 } 34 35 func NewProviderCredentials( 36 certReadWriter CertificateReadWriter, 37 certGenerator CertificateGenerator, 38 lookup NetLookup, 39 serverFactory ServerFactory, 40 configReader LXCConfigReader, 41 ) environs.ProviderCredentials { 42 return environProviderCredentials{ 43 certReadWriter: certReadWriter, 44 certGenerator: certGenerator, 45 lookup: lookup, 46 serverFactory: serverFactory, 47 lxcConfigReader: configReader, 48 } 49 } 50 51 func NewServerFactoryWithMocks(localServerFunc func() (Server, error), 52 remoteServerFunc func(lxd.ServerSpec) (Server, error), 53 interfaceAddress InterfaceAddress, 54 clock clock.Clock, 55 ) ServerFactory { 56 return &serverFactory{ 57 newLocalServerFunc: localServerFunc, 58 newRemoteServerFunc: remoteServerFunc, 59 interfaceAddress: interfaceAddress, 60 clock: clock, 61 } 62 } 63 64 func ExposeInstContainer(inst *environInstance) *lxd.Container { 65 return inst.container 66 } 67 68 func ExposeInstEnv(inst *environInstance) *environ { 69 return inst.env 70 } 71 72 func ExposeEnvConfig(env *environ) *environConfig { 73 return env.ecfg 74 } 75 76 func ExposeEnvServer(env *environ) Server { 77 return env.server 78 } 79 80 func GetImageSources(env environs.Environ) ([]lxd.ServerSpec, error) { 81 lxdEnv, ok := env.(*environ) 82 if !ok { 83 return nil, errors.New("not a LXD environ") 84 } 85 return lxdEnv.getImageSources() 86 }