Browse Source

few more checks

0xdcarns 3 years ago
parent
commit
4607f2d8bb
2 changed files with 13 additions and 10 deletions
  1. 2 5
      controllers/node.go
  2. 11 5
      controllers/node_grpc.go

+ 2 - 5
controllers/node.go

@@ -417,6 +417,7 @@ func createNode(w http.ResponseWriter, r *http.Request) {
 	logger.Log(1, r.Header.Get("user"), "created new node", node.Name, "on network", node.Network)
 	w.WriteHeader(http.StatusOK)
 	json.NewEncoder(w).Encode(node)
+	runForceServerUpdate(&node)
 }
 
 // Takes node out of pending state
@@ -605,11 +606,6 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 	}
 	//send update to node to be deleted before deleting on server otherwise message cannot be sent
 	node.Action = models.NODE_DELETE
-	if err := mq.NodeUpdate(&node); err != nil {
-		logger.Log(1, "error publishing node update", err.Error())
-		returnErrorResponse(w, r, formatError(err, "internal"))
-		return
-	}
 
 	err = logic.DeleteNodeByID(&node, false)
 	if err != nil {
@@ -620,6 +616,7 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 
 	logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
 	runUpdates(&node, false)
+	runForceServerUpdate(&node)
 }
 
 func runUpdates(node *models.Node, ifaceDelta bool) {

+ 11 - 5
controllers/node_grpc.go

@@ -310,10 +310,16 @@ func isServer(node *models.Node) bool {
 }
 
 func runForceServerUpdate(node *models.Node) {
-	var currentServerNode, getErr = logic.GetNetworkServerLeader(node.Network)
-	if getErr == nil {
-		if err := logic.ServerUpdate(&currentServerNode, false); err != nil {
-			logger.Log(1, "server node:", currentServerNode.ID, "failed update")
+	go func() {
+		if err := mq.PublishPeerUpdate(node); err != nil {
+			logger.Log(1, "failed a peer update after creation of node", node.Name)
 		}
-	}
+
+		var currentServerNode, getErr = logic.GetNetworkServerLeader(node.Network)
+		if getErr == nil {
+			if err := logic.ServerUpdate(&currentServerNode, false); err != nil {
+				logger.Log(1, "server node:", currentServerNode.ID, "failed update")
+			}
+		}
+	}()
 }