1
0
Fork 0

fix: nodes no longer beg to be kept alive

This commit is contained in:
Arthur K. 2026-01-19 22:50:12 +03:00
parent 7c4154a459
commit a32b0f728e
Signed by: wzray
GPG key ID: B97F30FDC4636357
12 changed files with 146 additions and 62 deletions

View file

@ -28,6 +28,7 @@ func New(state *state.RuntimeState, config config.MasterConfig) *Role {
config.ObserverInterval,
config.BackoffSeconds,
config.BackoffCount,
config.NodeTimeout,
),
}
}
@ -57,7 +58,7 @@ func (r *Role) notify(path types.Path, v any) {
}
}
func (r *Role) onJoin(node types.Node) ([]types.Node, error) {
func (r *Role) onJoin(node types.Node) (map[string]types.Node, error) {
if err := r.state.Registry.AddNode(node); err != nil {
return nil, err
}
@ -68,7 +69,7 @@ func (r *Role) onJoin(node types.Node) ([]types.Node, error) {
}
func (r *Role) onLeave(node types.Node) (bool, error) {
if err := r.state.Registry.RemoveNode(node.Hostname); err != nil {
if err := r.state.Registry.RemoveNode(node); err != nil {
return false, err
}
@ -78,6 +79,8 @@ func (r *Role) onLeave(node types.Node) (bool, error) {
}
func (r *Role) onKeepAlive(node types.Node) (bool, error) {
r.observer.onKeepAlive(node)
if ok := r.state.Registry.Exists(node.Hostname); !ok {
_, err := r.onJoin(node)
return true, err