const ( // DefaultWatchWaitTime is how long we block for at a // time to check if the watched key has changed. This // affects the minimum time it takes to cancel a watch. DefaultWatchWaitTime = 15 * time.Second // RenewSessionRetryMax is the number of time we should try // to renew the session before giving up and throwing an error RenewSessionRetryMax = 5 // MaxSessionDestroyAttempts is the maximum times we will try // to explicitely destroy the session attached to a lock after // the connectivity to the store has been lost MaxSessionDestroyAttempts = 5 )
var ( // ErrMultipleEndpointsUnsupported is thrown when there are // multiple endpoints specified for Consul ErrMultipleEndpointsUnsupported = errors.New("consul does not support multiple endpoints") // ErrSessionRenew is thrown when the session can't be // renewed because the Consul version does not support sessions ErrSessionRenew = errors.New("cannot set or renew session for ttl, unable to operate on sessions") )
New creates a new Consul client given a list of endpoints and optional tls config
Register registers consul to libkv
Consul is the receiver type for the Store interface
AtomicDelete deletes a value at "key" if the key has not been modified in the meantime, throws an error if this is the case
AtomicPut put a value at "key" if the key has not been modified in the meantime, throws an error if this is the case
Close closes the client connection
Delete a value at "key"
DeleteTree deletes a range of keys under a given directory
Exists checks that the key exists inside the store
Get the value at "key", returns the last modified index to use in conjunction to CAS calls
List child nodes of a given directory
NewLock returns a handle to a lock struct which can be used to provide mutual exclusion on a key
Put a value at "key"
Watch for changes on a "key" It returns a channel that will receive changes or pass on errors. Upon creation, the current value will first be sent to the channel. Providing a non-nil stopCh can be used to stop watching.
WatchTree watches for changes on a "directory" It returns a channel that will receive changes or pass on errors. Upon creating a watch, the current childs values will be sent to the channel .Providing a non-nil stopCh can be used to stop watching.