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  }