~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/cmd/jujud/agent/workers.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2016 Canonical Ltd.
2
 
// Licensed under the AGPLv3, see LICENCE file for details.
3
 
 
4
 
package agent
5
 
 
6
 
import (
7
 
        "fmt"
8
 
 
9
 
        "github.com/juju/errors"
10
 
 
11
 
        "github.com/juju/juju/state"
12
 
        "github.com/juju/juju/worker"
13
 
)
14
 
 
15
 
type modelWorkerFactoryFunc func(st *state.State) func() (worker.Worker, error)
16
 
 
17
 
var registeredModelWorkers = map[string]modelWorkerFactoryFunc{}
18
 
 
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))
25
 
        }
26
 
        registeredModelWorkers[name] = factory
27
 
        return nil
28
 
}