Browse Source

iface delta

0xdcarns 3 years ago
parent
commit
4740551473
6 changed files with 15 additions and 11 deletions
  1. 1 1
      controllers/node.go
  2. 1 1
      controllers/node_grpc.go
  3. 2 2
      controllers/server_util.go
  4. 6 2
      logic/nodes.go
  5. 4 4
      logic/server.go
  6. 1 1
      mq/mq.go

+ 1 - 1
controllers/node.go

@@ -586,7 +586,7 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
 		newNode.PostUp = node.PostUp
 		newNode.PostUp = node.PostUp
 	}
 	}
 
 
-	var shouldPeersUpdate = logic.ShouldPeersUpdate(&node, &newNode)
+	var shouldPeersUpdate = logic.IfaceDelta(&node, &newNode)
 
 
 	err = logic.UpdateNode(&node, &newNode)
 	err = logic.UpdateNode(&node, &newNode)
 	if err != nil {
 	if err != nil {

+ 1 - 1
controllers/node_grpc.go

@@ -135,7 +135,7 @@ func (s *NodeServiceServer) UpdateNode(ctx context.Context, req *nodepb.Object)
 		newnode.PostDown = node.PostDown
 		newnode.PostDown = node.PostDown
 		newnode.PostUp = node.PostUp
 		newnode.PostUp = node.PostUp
 	}
 	}
-	var shouldPeersUpdate = logic.ShouldPeersUpdate(&node, &newnode)
+	var shouldPeersUpdate = logic.IfaceDelta(&node, &newnode)
 	getServerAddrs(&node)
 	getServerAddrs(&node)
 	err = logic.UpdateNode(&node, &newnode)
 	err = logic.UpdateNode(&node, &newnode)
 	if err != nil {
 	if err != nil {

+ 2 - 2
controllers/server_util.go

@@ -6,7 +6,7 @@ import (
 	"github.com/gravitl/netmaker/servercfg"
 	"github.com/gravitl/netmaker/servercfg"
 )
 )
 
 
-func runServerPeerUpdate(network string, shouldPeerUpdate bool) error {
+func runServerPeerUpdate(network string, ifaceDelta bool) error {
 	err := logic.TimerCheckpoint()
 	err := logic.TimerCheckpoint()
 	if err != nil {
 	if err != nil {
 		logger.Log(3, "error occurred on timer,", err.Error())
 		logger.Log(3, "error occurred on timer,", err.Error())
@@ -22,7 +22,7 @@ func runServerPeerUpdate(network string, shouldPeerUpdate bool) error {
 	if currErr != nil {
 	if currErr != nil {
 		return currErr
 		return currErr
 	}
 	}
-	if err = logic.ServerUpdate(&currentServerNode, shouldPeerUpdate); err != nil {
+	if err = logic.ServerUpdate(&currentServerNode, ifaceDelta); err != nil {
 		logger.Log(1, "server node:", currentServerNode.ID, "failed update")
 		logger.Log(1, "server node:", currentServerNode.ID, "failed update")
 		return err
 		return err
 	}
 	}

+ 6 - 2
logic/nodes.go

@@ -254,10 +254,14 @@ func CreateNode(node *models.Node) error {
 	return err
 	return err
 }
 }
 
 
-// ShouldPeersUpdate - takes old node and sees if certain fields changing would trigger a peer update
-func ShouldPeersUpdate(currentNode *models.Node, newNode *models.Node) bool {
+// IfaceDelta - is there interface changes
+func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
 	SetNodeDefaults(newNode)
 	SetNodeDefaults(newNode)
 	// single comparison statements
 	// single comparison statements
+	if currentNode.IsServer != "yes" {
+		return false
+	}
+
 	if newNode.Endpoint != currentNode.Endpoint ||
 	if newNode.Endpoint != currentNode.Endpoint ||
 		newNode.LocalAddress != currentNode.LocalAddress ||
 		newNode.LocalAddress != currentNode.LocalAddress ||
 		newNode.PublicKey != currentNode.PublicKey ||
 		newNode.PublicKey != currentNode.PublicKey ||

+ 4 - 4
logic/server.go

@@ -139,8 +139,8 @@ func ServerJoin(networkSettings *models.Network) error {
 
 
 // ServerUpdate - updates the server
 // ServerUpdate - updates the server
 // replaces legacy Checkin code
 // replaces legacy Checkin code
-func ServerUpdate(serverNode *models.Node, shouldPeerUpdate bool) error {
-	var err = serverPull(serverNode, shouldPeerUpdate)
+func ServerUpdate(serverNode *models.Node, ifaceDelta bool) error {
+	var err = serverPull(serverNode, ifaceDelta)
 	if isDeleteError(err) {
 	if isDeleteError(err) {
 		return DeleteNodeByID(serverNode, true)
 		return DeleteNodeByID(serverNode, true)
 	} else if err != nil {
 	} else if err != nil {
@@ -365,7 +365,7 @@ func checkNodeActions(node *models.Node) string {
 
 
 // == Private ==
 // == Private ==
 
 
-func serverPull(serverNode *models.Node, onErr bool) error {
+func serverPull(serverNode *models.Node, ifaceDelta bool) error {
 
 
 	var err error
 	var err error
 	if serverNode.IPForwarding == "yes" {
 	if serverNode.IPForwarding == "yes" {
@@ -375,7 +375,7 @@ func serverPull(serverNode *models.Node, onErr bool) error {
 	}
 	}
 	serverNode.OS = runtime.GOOS
 	serverNode.OS = runtime.GOOS
 
 
-	if serverNode.PullChanges == "yes" || onErr {
+	if serverNode.PullChanges == "yes" || ifaceDelta {
 		// check for interface change
 		// check for interface change
 		// checks if address is in use by another interface
 		// checks if address is in use by another interface
 		var oldIfaceName, isIfacePresent = isInterfacePresent(serverNode.Interface, serverNode.Address)
 		var oldIfaceName, isIfacePresent = isInterfacePresent(serverNode.Interface, serverNode.Address)

+ 1 - 1
mq/mq.go

@@ -85,7 +85,7 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
 			logger.Log(1, "error unmarshaling payload ", err.Error())
 			logger.Log(1, "error unmarshaling payload ", err.Error())
 			return
 			return
 		}
 		}
-		var shouldUpdatePeers = logic.ShouldPeersUpdate(&currentNode, &newNode)
+		var shouldUpdatePeers = logic.IfaceDelta(&currentNode, &newNode)
 		if err := logic.UpdateNode(&currentNode, &newNode); err != nil {
 		if err := logic.UpdateNode(&currentNode, &newNode); err != nil {
 			logger.Log(1, "error saving node", err.Error())
 			logger.Log(1, "error saving node", err.Error())
 		}
 		}