Return proper HTTP status on leave

This commit is contained in:
Ingo Oppermann
2024-06-12 15:08:07 +02:00
parent 1a64fddbb1
commit f5d9725a48
2 changed files with 18 additions and 1 deletions

View File

@@ -186,6 +186,7 @@ type cluster struct {
}
var ErrDegraded = errors.New("cluster is currently degraded")
var ErrUnknownNode = errors.New("unknown node id")
func New(config Config) (Cluster, error) {
c := &cluster{
@@ -717,6 +718,14 @@ func (c *cluster) Leave(origin, id string) error {
id = c.nodeID
}
c.nodesLock.RLock()
_, hasNode := c.nodes[id]
c.nodesLock.RUnlock()
if !hasNode {
return ErrUnknownNode
}
c.logger.Debug().WithFields(log.Fields{
"nodeid": id,
}).Log("Received leave request for server")