Browse Source

better checks

0xdcarns 3 years ago
parent
commit
8da7d96a82
4 changed files with 14 additions and 19 deletions
  1. 5 5
      controllers/node.go
  2. 6 8
      controllers/node_grpc.go
  3. 2 2
      controllers/relay.go
  4. 1 4
      mq/mq.go

+ 5 - 5
controllers/node.go

@@ -406,7 +406,7 @@ func createNode(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 
-	if err = runServerPeerUpdate(node.Network, true); err != nil {
+	if err = runServerPeerUpdate(node.Network, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when creating node:", node.ID)
 	}
 
@@ -426,7 +426,7 @@ func uncordonNode(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
-	if err = runServerPeerUpdate(node.Network, false); err != nil {
+	if err = runServerPeerUpdate(node.Network, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when approving node:", nodeid)
 	}
 	go func() {
@@ -458,7 +458,7 @@ func createEgressGateway(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
-	if err = runServerPeerUpdate(gateway.NetID, true); err != nil {
+	if err = runServerPeerUpdate(gateway.NetID, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when setting peers after creating egress on node:", gateway.NodeID)
 	}
 	go func() {
@@ -484,7 +484,7 @@ func deleteEgressGateway(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
-	if err = runServerPeerUpdate(netid, true); err != nil {
+	if err = runServerPeerUpdate(netid, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when setting peers after removing egress on node:", nodeid)
 	}
 	go func() {
@@ -642,7 +642,7 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 
-	err = runServerPeerUpdate(node.Network, true)
+	err = runServerPeerUpdate(node.Network, isServer(&node))
 	if err != nil {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return

+ 6 - 8
controllers/node_grpc.go

@@ -5,7 +5,6 @@ import (
 	"encoding/json"
 	"errors"
 	"strings"
-	"time"
 
 	nodepb "github.com/gravitl/netmaker/grpc"
 	"github.com/gravitl/netmaker/logger"
@@ -98,12 +97,7 @@ func (s *NodeServiceServer) CreateNode(ctx context.Context, req *nodepb.Object)
 	if err != nil {
 		return nil, err
 	}
-	network.NodesLastModified = time.Now().Unix()
-	network.DefaultServerAddrs = serverAddrs
-	if err := logic.SaveNetwork(&network); err != nil {
-		return nil, err
-	}
-	err = runServerPeerUpdate(node.Network, true)
+	err = runServerPeerUpdate(node.Network, isServer(&node))
 	if err != nil {
 		logger.Log(1, "internal error when setting peers after node,", node.ID, "was created (gRPC)")
 	}
@@ -184,7 +178,7 @@ func (s *NodeServiceServer) DeleteNode(ctx context.Context, req *nodepb.Object)
 	if err != nil {
 		return nil, err
 	}
-	err = runServerPeerUpdate(node.Network, true)
+	err = runServerPeerUpdate(node.Network, false)
 	if err != nil {
 		logger.Log(1, "internal error when setting peers after deleting node:", node.ID, "over gRPC")
 	}
@@ -286,3 +280,7 @@ func getNewOrLegacyNode(data string) (models.Node, error) {
 	}
 	return node, nil
 }
+
+func isServer(node *models.Node) bool {
+	return node.IsServer == "yes"
+}

+ 2 - 2
controllers/relay.go

@@ -27,7 +27,7 @@ func createRelay(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
-	if err = runServerPeerUpdate(relay.NetID, true); err != nil {
+	if err = runServerPeerUpdate(relay.NetID, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when creating relay on node:", relay.NodeID)
 	}
 	go func() {
@@ -53,7 +53,7 @@ func deleteRelay(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
-	if err = runServerPeerUpdate(netid, true); err != nil {
+	if err = runServerPeerUpdate(netid, isServer(&node)); err != nil {
 		logger.Log(1, "internal error when deleting relay on node:", nodeid)
 	}
 	go func() {

+ 1 - 4
mq/mq.go

@@ -101,10 +101,7 @@ var UpdateNode mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
 
 // PublishPeerUpdate --- deterines and publishes a peer update to all the peers of a node
 func PublishPeerUpdate(newNode *models.Node) error {
-	// shouldn't need this becaus of runServerPeerUpdate, but test to make sure peers are getting updated
-	// if newNode.IsServer == "yes" {
-	// 	logic.SetPeersIfLeader(newNode)
-	// }
+
 	networkNodes, err := logic.GetNetworkNodes(newNode.Network)
 	if err != nil {
 		logger.Log(1, "err getting Network Nodes", err.Error())