1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
9
"github.com/juju/errors"
11
"github.com/juju/juju/state"
12
"github.com/juju/juju/worker"
15
type modelWorkerFactoryFunc func(st *state.State) func() (worker.Worker, error)
17
var registeredModelWorkers = map[string]modelWorkerFactoryFunc{}
19
// RegisterModelWorker adds a worker factory for the named worker
20
// to the registry. If the name is already registered then
21
// errors.AlreadyExists is returned.
22
func RegisterModelWorker(name string, factory modelWorkerFactoryFunc) error {
23
if _, ok := registeredModelWorkers[name]; ok {
24
return errors.NewAlreadyExists(nil, fmt.Sprintf("worker %q already registered", name))
26
registeredModelWorkers[name] = factory