Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(288)

Side by Side Diff: state/apiserver/error.go

Issue 7499043: state/apiserver: new package
Patch Set: state/apiserver: new package Created 11 years ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « state/apiserver/apiserver.go ('k') | state/apiserver/export_test.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 package apiserver
2
3 import (
4 "errors"
5 "launchpad.net/juju-core/state"
6 "launchpad.net/juju-core/state/api"
7 )
8
9 var (
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")
16 )
17
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,
29 }
30
31 func serverError(err error) error {
32 code := singletonErrorCodes[err]
33 switch {
34 case code != "":
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
41 }
42 if code != "" {
43 return &api.Error{
44 Message: err.Error(),
45 Code: code,
46 }
47 }
48 return err
49 }
OLDNEW
« no previous file with comments | « state/apiserver/apiserver.go ('k') | state/apiserver/export_test.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b