fix: nodes no longer beg to be kept alive
This commit is contained in:
parent
7c4154a459
commit
a32b0f728e
12 changed files with 146 additions and 62 deletions
|
|
@ -46,7 +46,7 @@ func (r *Role) Join(bootstrap string) error {
|
|||
logger := log.With().Str("host", m).Logger()
|
||||
logger.Debug().Msg("trying to join via master")
|
||||
|
||||
nodes, err := client.Post[[]types.Node](m, "/master/join", r.state.Self)
|
||||
nodes, err := client.Post[map[string]types.Node](m, types.PathMasterJoin, r.state.Self)
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
logger.Debug().Err(err).Msg("unable to join")
|
||||
|
|
@ -91,11 +91,7 @@ func (r *Role) Leave() error {
|
|||
}
|
||||
|
||||
func (r *Role) OnStartup(ctx context.Context) error {
|
||||
if r.config.KeepaliveInterval != -1 {
|
||||
r.keepaliveGroup.Go(r.keepaliveFunc(ctx))
|
||||
} else {
|
||||
log.Debug().Msg("keepalive disabled")
|
||||
}
|
||||
r.keepaliveGroup.Go(r.keepaliveFunc(ctx))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -107,28 +103,16 @@ func (r *Role) OnShutdown() error {
|
|||
|
||||
func (r *Role) keepaliveFunc(ctx context.Context) func() {
|
||||
sendKeepalive := func() {
|
||||
masters := r.state.Registry.ByRole(types.MasterRole)
|
||||
if len(masters) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
sent := false
|
||||
for _, m := range masters {
|
||||
for _, m := range r.state.Registry.ByRole(types.MasterRole) {
|
||||
logger := log.With().Str("name", m.Hostname).Logger()
|
||||
logger.Debug().Msg("sending keepalive packet")
|
||||
|
||||
if _, err := client.Post[any](m.Endpoint, types.PathMasterKeepalive, r.state.Self); err != nil {
|
||||
continue
|
||||
logger.Info().Err(err).Msg("unable to send keepalive packet")
|
||||
} else {
|
||||
logger.Debug().Msg("keepalive packet sent")
|
||||
sent = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !sent {
|
||||
log.Info().Msg("unable to send keepalive packet")
|
||||
}
|
||||
}
|
||||
|
||||
return func() {
|
||||
|
|
@ -151,7 +135,7 @@ func (r *Role) onJoin(node types.Node) (bool, 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
|
||||
}
|
||||
return true, nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue