Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrMultipleNodesFound ¶ added in v1.1.4
type ErrMultipleNodesFound struct {
// contains filtered or unexported fields
}
ErrMultipleNodesFound is returned when multiple nodes were found for a requested node id prefix
func NewErrMultipleNodesFound ¶ added in v1.1.4
func NewErrMultipleNodesFound(nodeIDPrefix string, matchingNodeIDs []string) ErrMultipleNodesFound
func (ErrMultipleNodesFound) Error ¶ added in v1.1.4
func (e ErrMultipleNodesFound) Error() string
type ErrNodeNotFound ¶ added in v1.0.4
type ErrNodeNotFound struct {
// contains filtered or unexported fields
}
ErrNodeNotFound is returned when nodeInfo was not found for a requested node id
func NewErrNodeNotFound ¶ added in v1.0.4
func NewErrNodeNotFound(nodeID string) ErrNodeNotFound
func (ErrNodeNotFound) Error ¶ added in v1.0.4
func (e ErrNodeNotFound) Error() string
type NodeInfoPublisher ¶
type NodeInfoPublisher struct {
// contains filtered or unexported fields
}
func NewNodeInfoPublisher ¶
func NewNodeInfoPublisher(params NodeInfoPublisherParams) *NodeInfoPublisher
func (*NodeInfoPublisher) Publish ¶
func (n *NodeInfoPublisher) Publish(ctx context.Context) error
Publish publishes the node info to the pubsub topic manually and won't wait for the background task to do it.
func (*NodeInfoPublisher) Stop ¶
func (n *NodeInfoPublisher) Stop(ctx context.Context)
Stop stops the background task that publishes the node info periodically
type NodeInfoPublisherIntervalConfig ¶ added in v1.0.4
type NodeInfoPublisherIntervalConfig struct { // Interval is the interval between publishing node info Interval time.Duration // During node startup, we can publish node info more frequently to speed up the discovery process. // EagerPublishInterval is the interval between publishing node info during startup. EagerPublishInterval time.Duration // EagerPublishDuration is the duration of the eager publish period. After this period, the node will publish node info // with the standard interval. EagerPublishDuration time.Duration }
func (NodeInfoPublisherIntervalConfig) IsEagerPublishEnabled ¶ added in v1.0.4
func (n NodeInfoPublisherIntervalConfig) IsEagerPublishEnabled() bool
IsEagerPublishEnabled returns true if eager publish is enabled
func (NodeInfoPublisherIntervalConfig) IsZero ¶ added in v1.0.4
func (n NodeInfoPublisherIntervalConfig) IsZero() bool
IsZero returns true if the interval config is zero
type NodeInfoPublisherParams ¶
type NodeInfoPublisherParams struct { PubSub pubsub.Publisher[models.NodeState] NodeStateProvider models.NodeStateProvider IntervalConfig NodeInfoPublisherIntervalConfig }
type NodeInfoStore ¶
type NodeInfoStore interface { // TODO: Remove this interface once we switch to nats libp2p_routing.PeerRouting // Add adds a node info to the repo. Add(ctx context.Context, nodeInfo models.NodeState) error // Get returns the node info for the given node ID. Get(ctx context.Context, nodeID string) (models.NodeState, error) // GetByPrefix returns the node info for the given node ID. // Supports both full and short node IDs. GetByPrefix(ctx context.Context, prefix string) (models.NodeState, error) // List returns a list of nodes List(ctx context.Context, filters ...NodeStateFilter) ([]models.NodeState, error) // Delete deletes a node info from the repo. Delete(ctx context.Context, nodeID string) error }
TODO rename this interface to NodeStore, it tracks more than their info
type NodeStateFilter ¶ added in v1.3.1
NodeStateFilter is a function that filters node state when listing nodes. It returns true if the node state should be returned, and false if the node state should be ignored.
type NodeStateProvider ¶ added in v1.3.1
type NodeStateProvider struct {
// contains filtered or unexported fields
}
func NewNodeStateProvider ¶ added in v1.3.1
func NewNodeStateProvider(params NodeStateProviderParams) *NodeStateProvider
func (*NodeStateProvider) GetNodeState ¶ added in v1.3.1
func (n *NodeStateProvider) GetNodeState(ctx context.Context) models.NodeState
func (*NodeStateProvider) RegisterNodeInfoDecorator ¶ added in v1.3.1
func (n *NodeStateProvider) RegisterNodeInfoDecorator(decorator models.NodeInfoDecorator)
RegisterNodeInfoDecorator registers a node info decorator with the node info provider.
type NodeStateProviderParams ¶ added in v1.3.1
type NodeStateProviderParams struct { NodeID string LabelsProvider models.LabelsProvider BacalhauVersion models.BuildVersionInfo DefaultNodeApproval models.NodeMembershipState }