github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/provisioner/export_test.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provisioner 5 6 import ( 7 "sort" 8 9 "github.com/juju/version" 10 11 "github.com/juju/juju/api/common" 12 apiprovisioner "github.com/juju/juju/api/provisioner" 13 "github.com/juju/juju/apiserver/params" 14 "github.com/juju/juju/core/watcher" 15 "github.com/juju/juju/environs" 16 "github.com/juju/juju/environs/config" 17 ) 18 19 func SetObserver(p Provisioner, observer chan<- *config.Config) { 20 var configObserver *configObserver 21 if ep, ok := p.(*environProvisioner); ok { 22 configObserver = &ep.configObserver 23 configObserver.catacomb = &ep.catacomb 24 } else { 25 cp := p.(*containerProvisioner) 26 configObserver = &cp.configObserver 27 configObserver.catacomb = &cp.catacomb 28 } 29 configObserver.Lock() 30 configObserver.observer = observer 31 configObserver.Unlock() 32 } 33 34 func GetRetryWatcher(p Provisioner) (watcher.NotifyWatcher, error) { 35 return p.getRetryWatcher() 36 } 37 38 var ( 39 GetContainerInitialiser = &getContainerInitialiser 40 GetToolsFinder = &getToolsFinder 41 ResolvConfFiles = &resolvConfFiles 42 RetryStrategyDelay = &retryStrategyDelay 43 RetryStrategyCount = &retryStrategyCount 44 CombinedCloudInitData = combinedCloudInitData 45 ) 46 47 var ClassifyMachine = classifyMachine 48 49 // GetCopyAvailabilityZoneMachines returns a copy of p.(*provisionerTask).availabilityZoneMachines 50 func GetCopyAvailabilityZoneMachines(p ProvisionerTask) []AvailabilityZoneMachine { 51 task := p.(*provisionerTask) 52 task.machinesMutex.RLock() 53 defer task.machinesMutex.RUnlock() 54 // sort to make comparisons in the tests easier. 55 sort.Sort(azMachineFilterSort(task.availabilityZoneMachines)) 56 retvalues := make([]AvailabilityZoneMachine, len(task.availabilityZoneMachines)) 57 for i := range task.availabilityZoneMachines { 58 retvalues[i] = *task.availabilityZoneMachines[i] 59 } 60 return retvalues 61 } 62 63 func SetupToStartMachine(p ProvisionerTask, machine apiprovisioner.MachineProvisioner, version *version.Number) ( 64 environs.StartInstanceParams, 65 error, 66 ) { 67 return p.(*provisionerTask).setupToStartMachine(machine, version) 68 } 69 70 func (cs *ContainerSetup) SetGetNetConfig(getNetConf func(common.NetworkConfigSource) ([]params.NetworkConfig, error)) { 71 cs.getNetConfig = getNetConf 72 } 73 74 func ProcessProfileChanges(p ProvisionerTask, ids []string) error { 75 return p.(*provisionerTask).processProfileChanges(ids) 76 } 77 78 func ProcessOneMachineProfileChanges(m apiprovisioner.MachineProvisioner, profileBroker environs.LXDProfiler) (bool, error) { 79 return processOneMachineProfileChange(m, profileBroker) 80 }