func (s *ProvisionerSuite) newProvisionerTask(c *gc.C, safeMode bool, broker environs.InstanceBroker) provisioner.ProvisionerTask { machineWatcher, err := s.provisioner.WatchEnvironMachines() c.Assert(err, gc.IsNil) retryWatcher, err := s.provisioner.WatchMachineErrorRetry() c.Assert(err, gc.IsNil) auth, err := environs.NewAPIAuthenticator(s.provisioner) c.Assert(err, gc.IsNil) return provisioner.NewProvisionerTask( "machine-0", safeMode, s.provisioner, machineWatcher, retryWatcher, broker, auth) }
// getStartTask creates a new worker for the provisioner, func (p *provisioner) getStartTask(safeMode bool) (ProvisionerTask, error) { auth, err := environs.NewAPIAuthenticator(p.st) if err != nil { return nil, err } // Start responding to changes in machines, and to any further updates // to the environment config. machineWatcher, err := p.getMachineWatcher() if err != nil { return nil, err } retryWatcher, err := p.getRetryWatcher() if err != nil && !errors.IsNotImplemented(err) { return nil, err } task := NewProvisionerTask( p.agentConfig.Tag(), safeMode, p.st, machineWatcher, retryWatcher, p.broker, auth) return task, nil }