Browse Source

implemented correct node delete flow

0xdcarns 2 years ago
parent
commit
7d17892344
2 changed files with 6 additions and 10 deletions
  1. 5 9
      controllers/node.go
  2. 1 1
      logic/peers.go

+ 5 - 9
controllers/node.go

@@ -1029,8 +1029,9 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(fmt.Errorf("failed to delete node"), "internal"))
 		return
 	}
-	if fromNode {
-		// update networks for host mq client
+	logic.ReturnSuccessResponse(w, r, nodeid+" deleted.")
+	logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
+	if fromNode { // update networks for host mq client
 		currNets := logic.GetHostNetworks(host.ID.String())
 		if len(currNets) > 0 {
 			mq.ModifyClient(&mq.MqClient{
@@ -1039,19 +1040,14 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 				Networks: currNets,
 			})
 		}
-	}
-	logic.ReturnSuccessResponse(w, r, nodeid+" deleted.")
-	logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
-	if !fromNode {
+	} else { // notify node change
 		runUpdates(&node, false)
-		return
 	}
-	go func() {
+	go func() { // notify of peer change
 		if err := mq.PublishPeerUpdate(); err != nil {
 			logger.Log(1, "error publishing peer update ", err.Error())
 		}
 	}()
-
 }
 
 func runUpdates(node *models.Node, ifaceDelta bool) {

+ 1 - 1
logic/peers.go

@@ -348,7 +348,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
 		if err != nil {
 			continue
 		}
-		if !node.Connected {
+		if !node.Connected || node.Action == models.NODE_DELETE {
 			continue
 		}
 		hostPeerUpdate.Network[node.Network] = models.NetworkInfo{