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  }