github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/container/lxd/export_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package lxd 5 6 import ( 7 "errors" 8 9 lxdclient "github.com/lxc/lxd/client" 10 11 "github.com/juju/juju/container" 12 "github.com/juju/juju/network" 13 ) 14 15 var ( 16 NewNICDevice = newNICDevice 17 CheckBridgeConfigFile = checkBridgeConfigFile 18 SeriesRemoteAliases = seriesRemoteAliases 19 ErrIPV6NotSupported = errIPV6NotSupported 20 ) 21 22 type patcher interface { 23 PatchValue(interface{}, interface{}) 24 } 25 26 // PatchConnectRemote ensures that the ConnectImageRemote function always returns 27 // the supplied (mock) image server. 28 func PatchConnectRemote(patcher patcher, remotes map[string]lxdclient.ImageServer) { 29 patcher.PatchValue(&ConnectImageRemote, func(spec ServerSpec) (lxdclient.ImageServer, error) { 30 if svr, ok := remotes[spec.Name]; ok { 31 return svr, nil 32 } 33 return nil, errors.New("unrecognized remote server") 34 }) 35 } 36 37 func PatchGenerateVirtualMACAddress(patcher patcher) { 38 patcher.PatchValue(&network.GenerateVirtualMACAddress, func() string { 39 return "00:16:3e:00:00:00" 40 }) 41 } 42 43 func PatchLXDViaSnap(patcher patcher, isSnap bool) { 44 patcher.PatchValue(&lxdViaSnap, func() bool { return isSnap }) 45 } 46 47 func PatchHostSeries(patcher patcher, series string) { 48 patcher.PatchValue(&hostSeries, func() (string, error) { return series, nil }) 49 } 50 51 func GetImageSources(mgr container.Manager) ([]ServerSpec, error) { 52 return mgr.(*containerManager).getImageSources() 53 } 54 55 func VerifyNICsWithConfigFile(svr *Server, nics map[string]device, reader func(string) ([]byte, error)) error { 56 return svr.verifyNICsWithConfigFile(nics, reader) 57 } 58 59 func NetworkDevicesFromConfig(mgr container.Manager, netConfig *container.NetworkConfig) ( 60 map[string]device, []string, error, 61 ) { 62 cMgr := mgr.(*containerManager) 63 return cMgr.networkDevicesFromConfig(netConfig) 64 }