state

package
v0.0.0-...-5d0e1a3 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2017 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EtcdName is a string constant for etcd state-store
	EtcdName = "etcd"
	// ConsulName is a string constant for consul state-store
	ConsulName = "consul"
)

Variables

This section is empty.

Functions

func GetStateDriver

func GetStateDriver() (types.StateDriver, error)

GetStateDriver returns the singleton instance of state-driver return values:

types.StateDriver: if its already instantiated
error: auth_errors.ErrStateDriverNotCreated

func InitializeStateDriver

func InitializeStateDriver(dataStoreDriver, dataStoreAddress string) error

InitializeStateDriver initializes the state driver based on the given data store address params:

dataStoreAddress: address of the data store

return values:

returns any error as NewStateDriver() + validation errors

func NewStateDriver

func NewStateDriver(name string, config *types.KVStoreConfig) (types.StateDriver, error)

NewStateDriver instantiates a 'named' state-driver with specified configuration params:

name: Name of the state driver. e.g. `etcd` or `consul`
config: configuration required to instantiate state driver

return values:

returns types.StateDriver on successful instantiation or any relevant error

Types

type ConsulStateDriver

type ConsulStateDriver struct {

	// client used to access consul
	Client *api.Client
}

ConsulStateDriver implements the StateDriver interface for a consul-based distributed key-value store used to store any state information needed by auth_proxy

func (*ConsulStateDriver) Clear

func (d *ConsulStateDriver) Clear(key string) error

Clear clears the value for a key in consul

Parameters:

key: key for which value is to be cleared

Return value:

error: Error returned by consul client when deleting a key

func (*ConsulStateDriver) ClearState

func (d *ConsulStateDriver) ClearState(key string) error

ClearState clears the state for a key in consul

Parameters:

key: key for which state is to be cleared

Return value:

error: Error returned by consul client when deleting a key

func (*ConsulStateDriver) Deinit

func (d *ConsulStateDriver) Deinit()

Deinit is currently a no-op.

func (*ConsulStateDriver) Init

func (d *ConsulStateDriver) Init(config *types.KVStoreConfig) error

Init initializes the state driver with needed configuration

Parameters:

config: configuration parameters to create consul client

Return values:

error:  error when creating a consul client

func (*ConsulStateDriver) Mkdir

func (d *ConsulStateDriver) Mkdir(key string) error

Mkdir creates a directory. If it already exists, this is a no-op.

Parameters:

key: target directory path (must have trailing slash and not begin with a slash)

Return values:

error: Error encountered when creating the directory
nil:   successfully created directory

func (*ConsulStateDriver) Read

func (d *ConsulStateDriver) Read(key string) ([]byte, error)

Read returns the value for a key

Parameters:

key:    key for which value is to be retrieved

Return values:

[]byte: value associated with the given key
error: Error when reading from consul
       nil if successful

func (*ConsulStateDriver) ReadAll

func (d *ConsulStateDriver) ReadAll(baseKey string) ([][]byte, error)

ReadAll returns all state for a key

Parameters:

key:    key for which all values are to be retrieved

Return values:

[][]byte: list of values associated with the given key
error: Error when writing to the KeysAPI of consul client
       nil if successful

func (*ConsulStateDriver) ReadAllState

func (d *ConsulStateDriver) ReadAllState(baseKey string, sType types.State,
	unmarshal func([]byte, interface{}) error) ([]types.State, error)

ReadAllState reads all the state for a baseKey and returns a list of types.State

Parameters:

baseKey:    key whose values are to be read
sType:      types.State
unmarshal:  function that is used to convert key's values
            from a byte slice to values of type types.State

Return values:

[]types.State: Retrieved values for a key as type types.State
error:         Any error returned by readAllStateCommon

func (*ConsulStateDriver) ReadState

func (d *ConsulStateDriver) ReadState(key string, value types.State,
	unmarshal func([]byte, interface{}) error) error

ReadState reads key into a types.State using the provided unmarshaling function

Parameters:

key:        key whose value is to be retrieved
value:      retrieved value for the key
unmarshal: function to be used for unmarshaling retrieved
            value from a byte slice in to type types.State

Return value:

error: Error returned by consul client when reading key's value
       or error in unmarshaling key's value

func (*ConsulStateDriver) WatchAll

func (d *ConsulStateDriver) WatchAll(baseKey string, chValueChanges chan [2][]byte) error

WatchAll watches value changes for a key in consul

Parameters:

baseKey:         key for which changes are to be watched
chValueChanges:  channel that will be used to communicate
                 any changes to values of a key

Return values:

error: Any error when watching for a value change for a key,
       nil if successful

func (*ConsulStateDriver) WatchAllState

func (d *ConsulStateDriver) WatchAllState(baseKey string, sType types.State,
	unmarshal func([]byte, interface{}) error, chStateChanges chan types.WatchState) error

WatchAllState watches all state changes for a key

Parameters:

baseKey:   key to be watched
sType:     types.State to convert values to/from
unmarshal: function used to convert values to types.State
chStateChanges:      channel of types.WatchState

Return values:

error: Any error when watching all state

func (*ConsulStateDriver) Write

func (d *ConsulStateDriver) Write(key string, value []byte) error

Write a key-value pair to the consul KV store

Parameters:

key:    key to be stored
value:  value to be stored

Return values:

error: Error when writing a KV pair via the consul client
       nil if successful

func (*ConsulStateDriver) WriteState

func (d *ConsulStateDriver) WriteState(key string, value types.State,
	marshal func(interface{}) ([]byte, error)) error

WriteState writes state for a key into the consul KV store

Parameters:

key:     key to be stored in the KV store
value:   value to be stored for the key
marshal: function to be used to convert types.State to
         a byte slice

Return values:

error: Error while marshaling values for key or
       when writing the key-value pair to consul,
       nil if successful

type EtcdStateDriver

type EtcdStateDriver struct {

	// Client to access etcd
	Client client.Client

	// KeysAPI is used to interact with etcd's key-value
	// API over HTTP
	KeysAPI client.KeysAPI
}

EtcdStateDriver implements the StateDriver interface for an etcd-based distributed key-value store that is used to store any state information needed by auth proxy

func (*EtcdStateDriver) Clear

func (d *EtcdStateDriver) Clear(key string) error

Clear removes a key from etcd

Parameters:

key: key to be removed

Return value:

error: Error returned by etcd client when deleting a key

func (*EtcdStateDriver) ClearState

func (d *EtcdStateDriver) ClearState(key string) error

ClearState removes a key from etcd

Parameters:

key: key to be removed

Return value:

error: Error returned by etcd client when deleting a key

func (*EtcdStateDriver) Deinit

func (d *EtcdStateDriver) Deinit()

Deinit is currently a no-op

func (*EtcdStateDriver) Init

func (d *EtcdStateDriver) Init(config *types.KVStoreConfig) error

Init initializes the state driver with needed config

Parameters:

config: configuration parameters to create etcd client

Return values:

error:  error when creating an etcd client

func (*EtcdStateDriver) Mkdir

func (d *EtcdStateDriver) Mkdir(key string) error

Mkdir creates a directory. If it already exists, this is a no-op.

Parameters:

key: target directory path (must begin with a slash)

Return values:

error: Error encountered when creating the directory
nil:   successfully created directory

func (*EtcdStateDriver) Read

func (d *EtcdStateDriver) Read(key string) ([]byte, error)

Read returns state for a key

Parameters:

key:    key for which value is to be retrieved

Return values:

[]byte: value associated with the given key
error: Error when writing to the KeysAPI of etcd client
       nil if successful

func (*EtcdStateDriver) ReadAll

func (d *EtcdStateDriver) ReadAll(baseKey string) ([][]byte, error)

ReadAll returns all values for a key

Parameters:

key:    key for which all values are to be retrieved

Return values:

[][]byte: slice of values associated with the given key
error:    Error when writing to the KeysAPI of etcd client
          nil if successful

func (*EtcdStateDriver) ReadAllState

func (d *EtcdStateDriver) ReadAllState(baseKey string, sType types.State,
	unmarshal func([]byte, interface{}) error) ([]types.State, error)

ReadAllState returns all state for a key

Parameters:

baseKey:    key whose values are to be read
sType:      types.State struct into which values are to be
            unmarshaled
unmarshal:  function that is used to convert key's values to
            values of type types.State

Return values:

[]types.State: slice of states for the given key
error:         Any error returned by readAllStateCommon
               nil if successful

func (*EtcdStateDriver) ReadState

func (d *EtcdStateDriver) ReadState(key string, value types.State,
	unmarshal func([]byte, interface{}) error) error

ReadState reads a key's value into a types.State struct using the provided unmarshaling function.

Parameters:

key:       key whose value is to be retrieved
value:     value of the key as types.State
unmarshal: function to be used for unmarshaling the (byte
           slice) value into types.State struct

Return value:

error: Error returned by etcd client when reading key's value
       or error in unmarshaling key's value

func (*EtcdStateDriver) WatchAll

func (d *EtcdStateDriver) WatchAll(baseKey string, chValueChanges chan [2][]byte) error

WatchAll watches value changes for a key in etcd

Parameters:

baseKey:        key for which changes are to be watched
chValueChanges: channel for communicating the changes in
                the values for a key from this method

Return values:

error: Any error when watching for a state transition
       for a key
       nil if successful

func (*EtcdStateDriver) WatchAllState

func (d *EtcdStateDriver) WatchAllState(baseKey string, sType types.State,
	unmarshal func([]byte, interface{}) error, chStateChanges chan types.WatchState) error

WatchAllState watches all state from the baseKey

Parameters:

baseKey:        key to be watched
sType:          types.State struct to convert values to
unmarshal:      function used to convert values to types.State
chStateChanges: channel of types.WatchState

Return values:

error: Any error when watching all state

func (*EtcdStateDriver) Write

func (d *EtcdStateDriver) Write(key string, value []byte) error

Write state (consisting of a key-value pair) to the etcd KV store

Parameters:

key:    key to be stored
value:  value to be stored

Return values:

error: Error when writing to the KeysAPI of etcd client
       nil if successful

func (*EtcdStateDriver) WriteState

func (d *EtcdStateDriver) WriteState(key string, value types.State,
	marshal func(interface{}) ([]byte, error)) error

WriteState writes a value of types.State for a key in the KV store

Parameters:

key:   key to be stored in the KV store
value: value as types.State
marshal: function to be used to convert types.State to a form
         that can be stored in the KV store

Return values:

error: Error while marshaling or writing a key-value pair
       to the KV store

Jump to

Keyboard shortcuts

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