5
"launchpad.net/juju-core/state"
6
"launchpad.net/juju-core/state/api"
10
errBadId = errors.New("id not found")
11
errBadCreds = errors.New("invalid entity name or password")
12
errPerm = errors.New("permission denied")
13
errNotLoggedIn = errors.New("not logged in")
14
errUnknownWatcher = errors.New("unknown watcher id")
15
errStoppedWatcher = errors.New("watcher has been stopped")
18
var singletonErrorCodes = map[error]string{
19
state.ErrCannotEnterScopeYet: api.CodeCannotEnterScopeYet,
20
state.ErrCannotEnterScope: api.CodeCannotEnterScope,
21
state.ErrExcessiveContention: api.CodeExcessiveContention,
22
state.ErrUnitHasSubordinates: api.CodeUnitHasSubordinates,
23
errBadId: api.CodeNotFound,
24
errBadCreds: api.CodeUnauthorized,
25
errPerm: api.CodeUnauthorized,
26
errNotLoggedIn: api.CodeUnauthorized,
27
errUnknownWatcher: api.CodeNotFound,
28
errStoppedWatcher: api.CodeStopped,
31
func serverError(err error) error {
32
code := singletonErrorCodes[err]
35
case state.IsUnauthorizedError(err):
36
code = api.CodeUnauthorized
37
case state.IsNotFound(err):
38
code = api.CodeNotFound
39
case state.IsNotAssigned(err):
40
code = api.CodeNotAssigned