* Dropped unused codekit config * Integrated dynamic and static bindata for public * Ignore public bindata * Add a general generate make task * Integrated flexible public assets into web command * Updated vendoring, added all missiong govendor deps * Made the linter happy with the bindata and dynamic code * Moved public bindata definition to modules directory * Ignoring the new bindata path now * Updated to the new public modules import path * Updated public bindata command and drop the new prefix
		
			
				
	
	
		
			218 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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"
 | |
| }
 |