Documentation ¶
Index ¶
- Constants
- Variables
- func New(endpoints []string, options *store.Config) (store.Store, error)
- func Register()
- type Consul
- func (s *Consul) AtomicDelete(key string, previous *store.KVPair) (bool, error)
- func (s *Consul) AtomicPut(key string, value []byte, previous *store.KVPair, options *store.WriteOptions) (bool, *store.KVPair, error)
- func (s *Consul) Close()
- func (s *Consul) Delete(key string) error
- func (s *Consul) DeleteTree(directory string) error
- func (s *Consul) Exists(key string) (bool, error)
- func (s *Consul) Get(key string) (*store.KVPair, error)
- func (s *Consul) List(directory string) ([]*store.KVPair, error)
- func (s *Consul) NewLock(key string, options *store.LockOptions) (store.Locker, error)
- func (s *Consul) Put(key string, value []byte, opts *store.WriteOptions) error
- func (s *Consul) Watch(key string, stopCh <-chan struct{}) (<-chan *store.KVPair, error)
- func (s *Consul) WatchTree(directory string, stopCh <-chan struct{}) (<-chan []*store.KVPair, error)
Constants ¶
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 )
Variables ¶
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") )
Functions ¶
Types ¶
type Consul ¶
Consul is the receiver type for the Store interface
func (*Consul) AtomicDelete ¶
AtomicDelete deletes a value at "key" if the key has not been modified in the meantime, throws an error if this is the case
func (*Consul) AtomicPut ¶
func (s *Consul) AtomicPut(key string, value []byte, previous *store.KVPair, options *store.WriteOptions) (bool, *store.KVPair, error)
AtomicPut put a value at "key" if the key has not been modified in the meantime, throws an error if this is the case
func (*Consul) DeleteTree ¶
DeleteTree deletes a range of keys under a given directory
func (*Consul) Get ¶
Get the value at "key", returns the last modified index to use in conjunction to CAS calls
func (*Consul) NewLock ¶
NewLock returns a handle to a lock struct which can be used to provide mutual exclusion on a key
func (*Consul) Watch ¶
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.
func (*Consul) WatchTree ¶
func (s *Consul) WatchTree(directory string, stopCh <-chan struct{}) (<-chan []*store.KVPair, error)
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.