Documentation ¶
Index ¶
- Constants
- Variables
- func SetLogger(log Logger)
- type Client
- func (c *Client) AddChild(key string, value string, ttl uint64) (*Response, error)
- func (c *Client) AddChildDir(key string, ttl uint64) (*Response, error)
- func (c *Client) AddRootCA(caCert string) error
- func (c *Client) CloseCURL()
- func (c *Client) CompareAndDelete(key string, prevValue string, prevIndex uint64) (*Response, error)
- func (c *Client) CompareAndSwap(key string, value string, ttl uint64, prevValue string, prevIndex uint64) (*Response, error)
- func (c *Client) Create(key string, value string, ttl uint64) (*Response, error)
- func (c *Client) CreateDir(key string, ttl uint64) (*Response, error)
- func (c *Client) Delete(key string, recursive bool) (*Response, error)
- func (c *Client) DeleteDir(key string) (*Response, error)
- func (c *Client) Get(key string, sort, recursive bool) (*Response, error)
- func (c *Client) GetCluster() []string
- func (c *Client) MarshalJSON() ([]byte, error)
- func (c *Client) OpenCURL()
- func (c *Client) RawCompareAndDelete(key string, prevValue string, prevIndex uint64) (*RawResponse, error)
- func (c *Client) RawCompareAndSwap(key string, value string, ttl uint64, prevValue string, prevIndex uint64) (*RawResponse, error)
- func (c *Client) RawCreate(key string, value string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawCreateDir(key string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawDelete(key string, recursive bool, dir bool) (*RawResponse, error)
- func (c *Client) RawGet(key string, sort, recursive bool) (*RawResponse, error)
- func (c *Client) RawSet(key string, value string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawSetDir(key string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawUpdate(key string, value string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawUpdateDir(key string, ttl uint64) (*RawResponse, error)
- func (c *Client) RawWatch(prefix string, waitIndex uint64, recursive bool, receiver chan *RawResponse, ...) (*RawResponse, error)
- func (c *Client) RecvCURL() string
- func (c *Client) Set(key string, value string, ttl uint64) (*Response, error)
- func (c *Client) SetCluster(machines []string) bool
- func (c *Client) SetConsistency(consistency string) error
- func (c *Client) SetDir(key string, ttl uint64) (*Response, error)
- func (c *Client) SetPersistence(writer io.Writer)
- func (c *Client) SetTransport(tr *http.Transport)
- func (c *Client) SyncCluster() bool
- func (c *Client) UnmarshalJSON(b []byte) error
- func (c *Client) Update(key string, value string, ttl uint64) (*Response, error)
- func (c *Client) UpdateDir(key string, ttl uint64) (*Response, error)
- func (c *Client) Watch(prefix string, waitIndex uint64, recursive bool, receiver chan *Response, ...) (*Response, error)
- type Cluster
- type Config
- type EtcdError
- type Logger
- type Node
- type Nodes
- type RawResponse
- type Response
Constants ¶
const ( // Using strings rather than iota because the consistency level // could be persisted to disk, so it'd be better to use // human-readable values. STRONG_CONSISTENCY = "STRONG" WEAK_CONSISTENCY = "WEAK" )
See SetConsistency for how to use these constants.
const (
ErrCodeEtcdNotReachable = 501
)
Variables ¶
var ( VALID_GET_OPTIONS = validOptions{ "recursive": reflect.Bool, "consistent": reflect.Bool, "sorted": reflect.Bool, "wait": reflect.Bool, "waitIndex": reflect.Uint64, } VALID_PUT_OPTIONS = validOptions{ "prevValue": reflect.String, "prevIndex": reflect.Uint64, "prevExist": reflect.Bool, "dir": reflect.Bool, } VALID_POST_OPTIONS = validOptions{} VALID_DELETE_OPTIONS = validOptions{ "recursive": reflect.Bool, "dir": reflect.Bool, "prevValue": reflect.String, "prevIndex": reflect.Uint64, } )
Valid options for GET, PUT, POST, DELETE Using CAPITALIZED_UNDERSCORE to emphasize that these values are meant to be used as constants.
var (
ErrWatchStoppedByUser = errors.New("Watch stopped by the user via stop channel")
)
Errors introduced by the Watch command.
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
NewClient create a basic client that is configured to be used with the given machine list.
func NewClientFromFile ¶
NewClientFromFile creates a client from a given file path. The given file is expected to use the JSON format.
func NewClientFromReader ¶
NewClientFromReader creates a Client configured from a given reader. The configuration is expected to use the JSON format.
func NewTLSClient ¶
NewTLSClient create a basic client with TLS configuration
func (*Client) AddChildDir ¶
Add a new directory with a random etcd-generated key under the given path.
func (*Client) CompareAndDelete ¶
func (*Client) CompareAndSwap ¶
func (*Client) Create ¶
Create creates a file with the given value under the given key. It succeeds only if the given key does not yet exist.
func (*Client) CreateDir ¶
CreateDir creates a directory. It succeeds only if the given key does not yet exist.
func (*Client) Delete ¶
Delete deletes the given key.
When recursive set to false, if the key points to a directory the method will fail.
When recursive set to true, if the key points to a file, the file will be deleted; if the key points to a directory, then everything under the directory (including all child directories) will be deleted.
func (*Client) Get ¶
Get gets the file or directory associated with the given key. If the key points to a directory, files and directories under it will be returned in sorted or unsorted order, depending on the sort flag. If recursive is set to false, contents under child directories will not be returned. If recursive is set to true, all the contents will be returned.
func (*Client) GetCluster ¶
func (*Client) MarshalJSON ¶
MarshalJSON implements the Marshaller interface as defined by the standard JSON package.
func (*Client) RawCompareAndDelete ¶
func (*Client) RawCompareAndSwap ¶
func (*Client) RawCreateDir ¶
func (c *Client) RawCreateDir(key string, ttl uint64) (*RawResponse, error)
func (*Client) RawGet ¶
func (c *Client) RawGet(key string, sort, recursive bool) (*RawResponse, error)
func (*Client) RawUpdateDir ¶
func (c *Client) RawUpdateDir(key string, ttl uint64) (*RawResponse, error)
func (*Client) RawWatch ¶
func (c *Client) RawWatch(prefix string, waitIndex uint64, recursive bool, receiver chan *RawResponse, stop chan bool) (*RawResponse, error)
func (*Client) Set ¶
Set sets the given key to the given value. It will create a new key value pair or replace the old one. It will not replace a existing directory.
func (*Client) SetCluster ¶
SetCluster updates cluster information using the given machine list.
func (*Client) SetConsistency ¶
SetConsistency changes the consistency level of the client.
When consistency is set to STRONG_CONSISTENCY, all requests, including GET, are sent to the leader. This means that, assuming the absence of leader failures, GET requests are guaranteed to see the changes made by previous requests.
When consistency is set to WEAK_CONSISTENCY, other requests are still sent to the leader, but GET requests are sent to a random server from the server pool. This reduces the read load on the leader, but it's not guaranteed that the GET requests will see changes made by previous requests (they might have not yet been committed on non-leader servers).
func (*Client) SetDir ¶
Set sets the given key to a directory. It will create a new directory or replace the old key value pair by a directory. It will not replace a existing directory.
func (*Client) SetPersistence ¶
SetPersistence sets a writer to which the config will be written every time it's changed.
func (*Client) SetTransport ¶
Override the Client's HTTP Transport object
func (*Client) SyncCluster ¶
SyncCluster updates the cluster information using the internal machine list.
func (*Client) UnmarshalJSON ¶
UnmarshalJSON implements the Unmarshaller interface as defined by the standard JSON package.
func (*Client) Update ¶
Update updates the given key to the given value. It succeeds only if the given key already exists.
func (*Client) UpdateDir ¶
UpdateDir updates the given directory. It succeeds only if the given key already exists.
func (*Client) Watch ¶
func (c *Client) Watch(prefix string, waitIndex uint64, recursive bool, receiver chan *Response, stop chan bool) (*Response, error)
If recursive is set to true the watch returns the first change under the given prefix since the given index.
If recursive is set to false the watch returns the first change to the given key since the given index.
To watch for the latest change, set waitIndex = 0.
If a receiver channel is given, it will be a long-term watch. Watch will block at the channel. After someone receives the channel, it will go on to watch that prefix. If a stop channel is given, the client can close long-term watch using the stop channel.
type Cluster ¶
func NewCluster ¶
type EtcdError ¶
type Logger ¶
type Node ¶
type Node struct { Key string `json:"key, omitempty"` Value string `json:"value,omitempty"` Dir bool `json:"dir,omitempty"` Expiration *time.Time `json:"expiration,omitempty"` TTL int64 `json:"ttl,omitempty"` Nodes Nodes `json:"nodes,omitempty"` ModifiedIndex uint64 `json:"modifiedIndex,omitempty"` CreatedIndex uint64 `json:"createdIndex,omitempty"` }