diff --git a/controllers/node.go b/controllers/node.go index a53836ed..ffd48d9d 100644 --- a/controllers/node.go +++ b/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 diff --git a/controllers/node_grpc.go b/controllers/node_grpc.go index fbd63d1e..f4befde5 100644 --- a/controllers/node_grpc.go +++ b/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" +} diff --git a/controllers/relay.go b/controllers/relay.go index d5e784cf..a042f12a 100644 --- a/controllers/relay.go +++ b/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() { diff --git a/mq/mq.go b/mq/mq.go index 03224207..e93b516f 100644 --- a/mq/mq.go +++ b/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())