Skip to content

Commit

Permalink
send node update
Browse files Browse the repository at this point in the history
  • Loading branch information
abhishek9686 committed Feb 2, 2025
1 parent d2033a1 commit 638f718
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
4 changes: 2 additions & 2 deletions controllers/hosts.go
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,7 @@ func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
w,
r,
logic.FormatError(
fmt.Errorf("failed to force delete daemon node: "+err.Error()),
fmt.Errorf("failed to force delete daemon node: %s", err.Error()),
"internal",
),
)
Expand Down Expand Up @@ -634,7 +634,7 @@ func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
w,
r,
logic.FormatError(
fmt.Errorf("failed to force delete daemon node: "+err.Error()),
fmt.Errorf("failed to force delete daemon node: %s", err.Error()),
"internal",
),
)
Expand Down
21 changes: 20 additions & 1 deletion controllers/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,14 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) {
var params = mux.Vars(r)
network := params["networkname"]
doneCh := make(chan struct{}, 1)
err := logic.DeleteNetwork(network, force, doneCh)
networkNodes, err := logic.GetNetworkNodes(network)
if err != nil {
logger.Log(0, r.Header.Get("user"),
fmt.Sprintf("failed to get network nodes [%s]: %v", network, err))
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
return
}
err = logic.DeleteNetwork(network, force, doneCh)
if err != nil {
errtype := "badrequest"
if strings.Contains(err.Error(), "Node check failed") {
Expand All @@ -464,6 +471,18 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) {
go func() {
<-doneCh
mq.PublishPeerUpdate(true)
// send node update to clean up locally
for _, node := range networkNodes {
node := node
node.PendingDelete = true
node.Action = models.NODE_DELETE
if err := mq.NodeUpdate(&node); err != nil {
slog.Error("error publishing node update to node", "node", node.ID, "error", err)
}
}
if servercfg.IsDNSMode() {
logic.SetDNS()
}
}()
logger.Log(1, r.Header.Get("user"), "deleted network", network)
w.WriteHeader(http.StatusOK)
Expand Down
2 changes: 1 addition & 1 deletion logic/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ func UpdateNode(currentNode *models.Node, newNode *models.Node) error {
}
}

return fmt.Errorf("failed to update node " + currentNode.ID.String() + ", cannot change ID.")
return fmt.Errorf("failed to update node %s, cannot change ID", currentNode.ID.String())
}

// DeleteNode - marks node for deletion (and adds to zombie list) if called by UI or deletes node if called by node
Expand Down

0 comments on commit 638f718

Please sign in to comment.