client

package
v0.5.0-alpha.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2014 License: Apache-2.0 Imports: 14 Imported by: 176

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTimeout          = context.DeadlineExceeded
	ErrCanceled         = context.Canceled
	ErrNoEndpoints      = errors.New("no endpoints available")
	ErrTooManyRedirects = errors.New("too many redirects")

	DefaultRequestTimeout = 5 * time.Second
	DefaultMaxRedirects   = 10
)
View Source
var (
	ErrUnavailable = errors.New("client: no available etcd endpoints")
	ErrNoLeader    = errors.New("client: no leader")
	ErrKeyNoExist  = errors.New("client: key does not exist")
	ErrKeyExists   = errors.New("client: key already exists")
)
View Source
var (
	DefaultV2KeysPrefix = "/v2/keys"
)
View Source
var (
	DefaultV2MembersPrefix = "/v2/members"
)

Functions

This section is empty.

Types

type CancelableTransport

type CancelableTransport interface {
	http.RoundTripper
	CancelRequest(req *http.Request)
}

CancelableTransport mimics http.Transport to provide an interface which can be substituted for testing (since the RoundTripper interface alone does not require the CancelRequest method)

type HTTPAction

type HTTPAction interface {
	HTTPRequest(url.URL) *http.Request
}

type HTTPClient

type HTTPClient interface {
	Do(context.Context, HTTPAction) (*http.Response, []byte, error)
}

type KeysAPI

type KeysAPI interface {
	Create(ctx context.Context, key, value string, ttl time.Duration) (*Response, error)
	Get(ctx context.Context, key string) (*Response, error)

	Watch(key string, idx uint64) Watcher
	RecursiveWatch(key string, idx uint64) Watcher
}

func NewDiscoveryKeysAPI

func NewDiscoveryKeysAPI(c HTTPClient) KeysAPI

func NewKeysAPI

func NewKeysAPI(c HTTPClient) KeysAPI

type MembersAPI

type MembersAPI interface {
	List(ctx context.Context) ([]httptypes.Member, error)
	Add(ctx context.Context, peerURL string) (*httptypes.Member, error)
	Remove(ctx context.Context, mID string) error
}

func NewMembersAPI

func NewMembersAPI(c HTTPClient) MembersAPI

type Node

type Node struct {
	Key           string `json:"key"`
	Value         string `json:"value"`
	Nodes         Nodes  `json:"nodes"`
	ModifiedIndex uint64 `json:"modifiedIndex"`
	CreatedIndex  uint64 `json:"createdIndex"`
}

func (*Node) String

func (n *Node) String() string

type Nodes

type Nodes []*Node

type Response

type Response struct {
	Action   string `json:"action"`
	Node     *Node  `json:"node"`
	PrevNode *Node  `json:"prevNode"`
	Index    uint64
}

type SyncableHTTPClient

type SyncableHTTPClient interface {
	HTTPClient
	Sync(context.Context) error
	Endpoints() []string
}

func NewHTTPClient

func NewHTTPClient(tr CancelableTransport, eps []string) (SyncableHTTPClient, error)

type Watcher

type Watcher interface {
	Next(context.Context) (*Response, error)
}

Directories

Path Synopsis
module
pkg module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL