store

package
v1.16.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2024 License: Apache-2.0 Imports: 12 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// NodeStorePrefix is the kvstore prefix of the shared store
	//
	// WARNING - STABLE API: Changing the structure or values of this will
	// break backwards compatibility
	NodeStorePrefix = path.Join(kvstore.BaseKeyPrefix, "state", "nodes", "v1")

	// KeyCreator creates a node for a shared store
	KeyCreator = func() store.Key {
		n := nodeTypes.Node{}
		return &n
	}

	// NodeRegisterStorePrefix is the kvstore prefix of the shared
	// store for node registration
	//
	// WARNING - STABLE API: Changing the structure or values of this will
	// break backwards compatibility
	NodeRegisterStorePrefix = path.Join(kvstore.BaseKeyPrefix, "state", "noderegister", "v1")

	// RegisterKeyCreator creates a node for a shared store
	RegisterKeyCreator = func() store.Key {
		n := nodeTypes.RegisterNode{}
		return &n
	}
)

Functions

func ClusterIDValidator added in v1.16.0

func ClusterIDValidator(clusterID *uint32) nodeValidator

ClusterIDValidator returns a validator enforcing that the cluster ID of the unmarshaled node matches the provided one. The access to the provided clusterID value is not synchronized, and it shall not be mutated concurrently.

func ClusterNameValidator added in v1.16.0

func ClusterNameValidator(clusterName string) nodeValidator

ClusterNameValidator returns a validator enforcing that the cluster field of the unmarshaled node matches the provided one.

func NameValidator added in v1.16.0

func NameValidator() nodeValidator

NameValidator returns a validator enforcing that the name of the the unmarshaled node matches the kvstore key.

func ValidatingKeyCreator added in v1.16.0

func ValidatingKeyCreator(validators ...nodeValidator) store.KeyCreator

ValidatingKeyCreator returns a store.KeyCreator for Nodes, configuring the specified extra validators.

Types

type NodeExtendedManager added in v1.16.0

type NodeExtendedManager interface {
	NodeManager

	// NodeSync is called when the store completes the initial nodes listing
	NodeSync()
}

type NodeManager

type NodeManager interface {
	// NodeUpdated is called when the store detects a change in node
	// information
	NodeUpdated(n nodeTypes.Node)

	// NodeDeleted is called when the store detects a deletion of a node
	NodeDeleted(n nodeTypes.Node)
}

NodeManager is the interface that the manager of nodes has to implement

type NodeObserver

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

NodeObserver implements the store.Observer interface and delegates update and deletion events to the node object itself.

func NewNodeObserver

func NewNodeObserver(manager NodeManager, source source.Source) *NodeObserver

NewNodeObserver returns a new NodeObserver associated with the specified node manager

func (*NodeObserver) OnDelete

func (o *NodeObserver) OnDelete(k store.NamedKey)

func (*NodeObserver) OnUpdate

func (o *NodeObserver) OnUpdate(k store.Key)

type NodeRegistrar

type NodeRegistrar struct {
	*store.SharedStore
	// contains filtered or unexported fields
}

NodeRegistrar is a wrapper around store.SharedStore.

func (*NodeRegistrar) JoinCluster

func (nr *NodeRegistrar) JoinCluster(name string) (*nodeTypes.Node, error)

JoinCluster registers the local node in the cluster. Blocks until timeout occurs or an updated Node is received from the kv-store and returns it. Otherwise this does not block and returns nil.

func (*NodeRegistrar) RegisterNode

func (nr *NodeRegistrar) RegisterNode(n *nodeTypes.Node, manager NodeExtendedManager) error

RegisterNode registers the local node in the cluster.

func (*NodeRegistrar) UpdateLocalKeySync

func (nr *NodeRegistrar) UpdateLocalKeySync(n *nodeTypes.Node) error

UpdateLocalKeySync synchronizes the local key for the node using the SharedStore.

type RegisterObserver

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

RegisterObserver implements the store.Observer interface and sends named node's identity updates on a channel.

func NewRegisterObserver

func NewRegisterObserver(name string, updateChan chan *nodeTypes.RegisterNode) *RegisterObserver

NewRegisterObserver returns a new RegisterObserver

func (*RegisterObserver) OnDelete

func (o *RegisterObserver) OnDelete(k store.NamedKey)

func (*RegisterObserver) OnUpdate

func (o *RegisterObserver) OnUpdate(k store.Key)

type ValidatingNode added in v1.16.0

type ValidatingNode struct {
	nodeTypes.Node
	// contains filtered or unexported fields
}

ValidatingNode wraps a Node to perform additional validation at unmarshal time.

func (*ValidatingNode) Unmarshal added in v1.16.0

func (vn *ValidatingNode) Unmarshal(key string, data []byte) error

Jump to

Keyboard shortcuts

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