|
- package zk
-
- import (
- "errors"
- )
-
- const (
- protocolVersion = 0
-
- DefaultPort = 2181
- )
-
- const (
- opNotify = 0
- opCreate = 1
- opDelete = 2
- opExists = 3
- opGetData = 4
- opSetData = 5
- opGetAcl = 6
- opSetAcl = 7
- opGetChildren = 8
- opSync = 9
- opPing = 11
- opGetChildren2 = 12
- opCheck = 13
- opMulti = 14
- opClose = -11
- opSetAuth = 100
- opSetWatches = 101
- // Not in protocol, used internally
- opWatcherEvent = -2
- )
-
- const (
- EventNodeCreated = EventType(1)
- EventNodeDeleted = EventType(2)
- EventNodeDataChanged = EventType(3)
- EventNodeChildrenChanged = EventType(4)
-
- EventSession = EventType(-1)
- EventNotWatching = EventType(-2)
- )
-
- var (
- eventNames = map[EventType]string{
- EventNodeCreated: "EventNodeCreated",
- EventNodeDeleted: "EventNodeDeleted",
- EventNodeDataChanged: "EventNodeDataChanged",
- EventNodeChildrenChanged: "EventNodeChildrenChanged",
- EventSession: "EventSession",
- EventNotWatching: "EventNotWatching",
- }
- )
-
- const (
- StateUnknown = State(-1)
- StateDisconnected = State(0)
- StateConnecting = State(1)
- StateSyncConnected = State(3)
- StateAuthFailed = State(4)
- StateConnectedReadOnly = State(5)
- StateSaslAuthenticated = State(6)
- StateExpired = State(-112)
- // StateAuthFailed = State(-113)
-
- StateConnected = State(100)
- StateHasSession = State(101)
- )
-
- const (
- FlagEphemeral = 1
- FlagSequence = 2
- )
-
- var (
- stateNames = map[State]string{
- StateUnknown: "StateUnknown",
- StateDisconnected: "StateDisconnected",
- StateSyncConnected: "StateSyncConnected",
- StateConnectedReadOnly: "StateConnectedReadOnly",
- StateSaslAuthenticated: "StateSaslAuthenticated",
- StateExpired: "StateExpired",
- StateAuthFailed: "StateAuthFailed",
- StateConnecting: "StateConnecting",
- StateConnected: "StateConnected",
- StateHasSession: "StateHasSession",
- }
- )
-
- type State int32
-
- func (s State) String() string {
- if name := stateNames[s]; name != "" {
- return name
- }
- return "Unknown"
- }
-
- type ErrCode int32
-
- var (
- ErrConnectionClosed = errors.New("zk: connection closed")
- ErrUnknown = errors.New("zk: unknown error")
- ErrAPIError = errors.New("zk: api error")
- ErrNoNode = errors.New("zk: node does not exist")
- ErrNoAuth = errors.New("zk: not authenticated")
- ErrBadVersion = errors.New("zk: version conflict")
- ErrNoChildrenForEphemerals = errors.New("zk: ephemeral nodes may not have children")
- ErrNodeExists = errors.New("zk: node already exists")
- ErrNotEmpty = errors.New("zk: node has children")
- ErrSessionExpired = errors.New("zk: session has been expired by the server")
- ErrInvalidACL = errors.New("zk: invalid ACL specified")
- ErrAuthFailed = errors.New("zk: client authentication failed")
- ErrClosing = errors.New("zk: zookeeper is closing")
- ErrNothing = errors.New("zk: no server responsees to process")
- ErrSessionMoved = errors.New("zk: session moved to another server, so operation is ignored")
-
- // ErrInvalidCallback = errors.New("zk: invalid callback specified")
- errCodeToError = map[ErrCode]error{
- 0: nil,
- errAPIError: ErrAPIError,
- errNoNode: ErrNoNode,
- errNoAuth: ErrNoAuth,
- errBadVersion: ErrBadVersion,
- errNoChildrenForEphemerals: ErrNoChildrenForEphemerals,
- errNodeExists: ErrNodeExists,
- errNotEmpty: ErrNotEmpty,
- errSessionExpired: ErrSessionExpired,
- // errInvalidCallback: ErrInvalidCallback,
- errInvalidAcl: ErrInvalidACL,
- errAuthFailed: ErrAuthFailed,
- errClosing: ErrClosing,
- errNothing: ErrNothing,
- errSessionMoved: ErrSessionMoved,
- }
- )
-
- func (e ErrCode) toError() error {
- if err, ok := errCodeToError[e]; ok {
- return err
- }
- return ErrUnknown
- }
-
- const (
- errOk = 0
- // System and server-side errors
- errSystemError = -1
- errRuntimeInconsistency = -2
- errDataInconsistency = -3
- errConnectionLoss = -4
- errMarshallingError = -5
- errUnimplemented = -6
- errOperationTimeout = -7
- errBadArguments = -8
- errInvalidState = -9
- // API errors
- errAPIError = ErrCode(-100)
- errNoNode = ErrCode(-101) // *
- errNoAuth = ErrCode(-102)
- errBadVersion = ErrCode(-103) // *
- errNoChildrenForEphemerals = ErrCode(-108)
- errNodeExists = ErrCode(-110) // *
- errNotEmpty = ErrCode(-111)
- errSessionExpired = ErrCode(-112)
- errInvalidCallback = ErrCode(-113)
- errInvalidAcl = ErrCode(-114)
- errAuthFailed = ErrCode(-115)
- errClosing = ErrCode(-116)
- errNothing = ErrCode(-117)
- errSessionMoved = ErrCode(-118)
- )
-
- // Constants for ACL permissions
- const (
- PermRead = 1 << iota
- PermWrite
- PermCreate
- PermDelete
- PermAdmin
- PermAll = 0x1f
- )
-
- var (
- emptyPassword = []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
- opNames = map[int32]string{
- opNotify: "notify",
- opCreate: "create",
- opDelete: "delete",
- opExists: "exists",
- opGetData: "getData",
- opSetData: "setData",
- opGetAcl: "getACL",
- opSetAcl: "setACL",
- opGetChildren: "getChildren",
- opSync: "sync",
- opPing: "ping",
- opGetChildren2: "getChildren2",
- opCheck: "check",
- opMulti: "multi",
- opClose: "close",
- opSetAuth: "setAuth",
- opSetWatches: "setWatches",
-
- opWatcherEvent: "watcherEvent",
- }
- )
-
- type EventType int32
-
- func (t EventType) String() string {
- if name := eventNames[t]; name != "" {
- return name
- }
- return "Unknown"
- }
|