mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-13 16:44:52 +08:00
NET-891: Send deleted node peer update when expired (#2763)
* send deleted node peer update when expired * set default expiration to 100 years * pruge expired nodes * send mq node delete update before deleting node * initalise to new var * revert expiration time interval
This commit is contained in:
parent
5bf30b2c10
commit
718f739b7d
3 changed files with 14 additions and 11 deletions
|
@ -475,13 +475,8 @@ func DeleteExpiredNodes(ctx context.Context, peerUpdate chan *models.Node) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, node := range allnodes {
|
for _, node := range allnodes {
|
||||||
|
node := node
|
||||||
if time.Now().After(node.ExpirationDateTime) {
|
if time.Now().After(node.ExpirationDateTime) {
|
||||||
if err := DeleteNode(&node, false); err != nil {
|
|
||||||
slog.Error("error deleting expired node", "nodeid", node.ID.String(), "error", err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
node.Action = models.NODE_DELETE
|
|
||||||
node.PendingDelete = true
|
|
||||||
peerUpdate <- &node
|
peerUpdate <- &node
|
||||||
slog.Info("deleting expired node", "nodeid", node.ID.String())
|
slog.Info("deleting expired node", "nodeid", node.ID.String())
|
||||||
}
|
}
|
||||||
|
|
14
main.go
14
main.go
|
@ -168,9 +168,19 @@ func runMessageQueue(wg *sync.WaitGroup, ctx context.Context) {
|
||||||
go logic.ManageZombies(ctx, peerUpdate)
|
go logic.ManageZombies(ctx, peerUpdate)
|
||||||
go logic.DeleteExpiredNodes(ctx, peerUpdate)
|
go logic.DeleteExpiredNodes(ctx, peerUpdate)
|
||||||
for nodeUpdate := range peerUpdate {
|
for nodeUpdate := range peerUpdate {
|
||||||
if err := mq.NodeUpdate(nodeUpdate); err != nil {
|
if nodeUpdate == nil {
|
||||||
logger.Log(0, "failed to send peer update for deleted node: ", nodeUpdate.ID.String(), err.Error())
|
continue
|
||||||
}
|
}
|
||||||
|
node := nodeUpdate
|
||||||
|
node.Action = models.NODE_DELETE
|
||||||
|
node.PendingDelete = true
|
||||||
|
if err := mq.NodeUpdate(node); err != nil {
|
||||||
|
logger.Log(0, "failed to send peer update for deleted node: ", node.ID.String(), err.Error())
|
||||||
|
}
|
||||||
|
if err := logic.DeleteNode(node, true); err != nil {
|
||||||
|
slog.Error("error deleting expired node", "nodeid", node.ID.String(), "error", err.Error())
|
||||||
|
}
|
||||||
|
go mq.PublishDeletedNodePeerUpdate(node)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
<-ctx.Done()
|
<-ctx.Done()
|
||||||
|
|
|
@ -14,8 +14,6 @@ import (
|
||||||
const (
|
const (
|
||||||
// NODE_SERVER_NAME - the default server name
|
// NODE_SERVER_NAME - the default server name
|
||||||
NODE_SERVER_NAME = "netmaker"
|
NODE_SERVER_NAME = "netmaker"
|
||||||
// TEN_YEARS_IN_SECONDS - ten years in seconds
|
|
||||||
TEN_YEARS_IN_SECONDS = 315670000000000000
|
|
||||||
// MAX_NAME_LENGTH - max name length of node
|
// MAX_NAME_LENGTH - max name length of node
|
||||||
MAX_NAME_LENGTH = 62
|
MAX_NAME_LENGTH = 62
|
||||||
// == ACTIONS == (can only be set by server)
|
// == ACTIONS == (can only be set by server)
|
||||||
|
@ -354,7 +352,7 @@ func (node *Node) SetLastPeerUpdate() {
|
||||||
// Node.SetExpirationDateTime - sets node expiry time
|
// Node.SetExpirationDateTime - sets node expiry time
|
||||||
func (node *Node) SetExpirationDateTime() {
|
func (node *Node) SetExpirationDateTime() {
|
||||||
if node.ExpirationDateTime.IsZero() {
|
if node.ExpirationDateTime.IsZero() {
|
||||||
node.ExpirationDateTime = time.Now().Add(TEN_YEARS_IN_SECONDS)
|
node.ExpirationDateTime = time.Now().AddDate(100, 1, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue