mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-08 22:24:17 +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
|
||||
}
|
||||
for _, node := range allnodes {
|
||||
node := node
|
||||
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
|
||||
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.DeleteExpiredNodes(ctx, peerUpdate)
|
||||
for nodeUpdate := range peerUpdate {
|
||||
if err := mq.NodeUpdate(nodeUpdate); err != nil {
|
||||
logger.Log(0, "failed to send peer update for deleted node: ", nodeUpdate.ID.String(), err.Error())
|
||||
if nodeUpdate == nil {
|
||||
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()
|
||||
|
|
|
@ -14,8 +14,6 @@ import (
|
|||
const (
|
||||
// NODE_SERVER_NAME - the default server name
|
||||
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 = 62
|
||||
// == ACTIONS == (can only be set by server)
|
||||
|
@ -354,7 +352,7 @@ func (node *Node) SetLastPeerUpdate() {
|
|||
// Node.SetExpirationDateTime - sets node expiry time
|
||||
func (node *Node) SetExpirationDateTime() {
|
||||
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