consul

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrNotFound is returned by ConsulClient.Get.
	ErrNotFound = fmt.Errorf("Not found")
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a KV.Client for Consul.

func NewClient

func NewClient(cfg Config, codec codec.Codec) (*Client, error)

NewClient returns a new Client.

func NewInMemoryClient

func NewInMemoryClient(codec codec.Codec) *Client

NewInMemoryClient makes a new mock consul client.

func NewInMemoryClientWithConfig added in v0.4.0

func NewInMemoryClientWithConfig(codec codec.Codec, cfg Config) *Client

NewInMemoryClientWithConfig makes a new mock consul client with supplied Config.

func (*Client) CAS

func (c *Client) CAS(ctx context.Context, key string, f func(in interface{}) (out interface{}, retry bool, err error)) error

CAS atomically modifies a value in a callback. If value doesn't exist you'll get nil as an argument to your callback.

func (*Client) Get

func (c *Client) Get(ctx context.Context, key string) (interface{}, error)

Get implements kv.Get.

func (*Client) WatchKey

func (c *Client) WatchKey(ctx context.Context, key string, f func(interface{}) bool)

WatchKey will watch a given key in consul for changes. When the value under said key changes, the f callback is called with the deserialised value. To construct the deserialised value, a factory function should be supplied which generates an empty struct for WatchKey to deserialise into. This function blocks until the context is cancelled or f returns false.

func (*Client) WatchPrefix

func (c *Client) WatchPrefix(ctx context.Context, prefix string, f func(string, interface{}) bool)

WatchPrefix will watch a given prefix in Consul for new keys and changes to existing keys under that prefix. When the value under said key changes, the f callback is called with the deserialised value. Values in Consul are assumed to be JSON. This function blocks until the context is cancelled.

type Config

type Config struct {
	Host              string
	ACLToken          string
	HTTPClientTimeout time.Duration
	ConsistentReads   bool
	WatchKeyRateLimit float64 // Zero disables rate limit
	WatchKeyBurstSize int     // Burst when doing rate-limit, defaults to 1
}

Config to create a ConsulClient

func (*Config) RegisterFlags

func (cfg *Config) RegisterFlags(f *flag.FlagSet, prefix string)

RegisterFlags adds the flags required to config this to the given FlagSet If prefix is not an empty string it should end with a period.

Jump to

Keyboard shortcuts

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