mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 05:04:27 +08:00
NET-1154:fix stale node issue on multinet when deleting host (#2940)
* fix stale node issue on multinet when deleting host * fix stale node when deleting host or uninstall
This commit is contained in:
parent
5ea2c9f9ed
commit
35a8528030
2 changed files with 10 additions and 17 deletions
|
@ -304,17 +304,17 @@ func deleteHost(w http.ResponseWriter, r *http.Request) {
|
|||
slog.Error("failed to remove host credentials from EMQX", "id", currHost.ID, "error", err)
|
||||
}
|
||||
}
|
||||
if err = logic.RemoveHost(currHost, forceDelete); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to delete a host:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
if err = mq.HostUpdate(&models.HostUpdate{
|
||||
Action: models.DeleteHost,
|
||||
Host: *currHost,
|
||||
}); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to send delete host update: ", currHost.ID.String(), err.Error())
|
||||
}
|
||||
if err = logic.RemoveHost(currHost, forceDelete); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to delete a host:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
|
||||
apiHostData := currHost.ConvertNMHostToAPI()
|
||||
logger.Log(2, r.Header.Get("user"), "removed host", currHost.Name)
|
||||
|
|
|
@ -396,20 +396,13 @@ func DissasociateNodeFromHost(n *models.Node, h *models.Host) error {
|
|||
if len(h.Nodes) == 0 {
|
||||
return fmt.Errorf("no nodes present in given host")
|
||||
}
|
||||
index := -1
|
||||
nList := []string{}
|
||||
for i := range h.Nodes {
|
||||
if h.Nodes[i] == n.ID.String() {
|
||||
index = i
|
||||
break
|
||||
if h.Nodes[i] != n.ID.String() {
|
||||
nList = append(nList, h.Nodes[i])
|
||||
}
|
||||
}
|
||||
if index < 0 {
|
||||
if len(h.Nodes) == 0 {
|
||||
return fmt.Errorf("node %s, not found in host, %s", n.ID.String(), h.ID.String())
|
||||
}
|
||||
} else {
|
||||
h.Nodes = RemoveStringSlice(h.Nodes, index)
|
||||
}
|
||||
h.Nodes = nList
|
||||
go func() {
|
||||
if servercfg.IsPro {
|
||||
if clients, err := GetNetworkExtClients(n.Network); err != nil {
|
||||
|
@ -434,7 +427,7 @@ func DisassociateAllNodesFromHost(hostID string) error {
|
|||
for _, nodeID := range host.Nodes {
|
||||
node, err := GetNodeByID(nodeID)
|
||||
if err != nil {
|
||||
logger.Log(0, "failed to get host node", err.Error())
|
||||
logger.Log(0, "failed to get host node, node id:", nodeID, err.Error())
|
||||
continue
|
||||
}
|
||||
if err := DeleteNode(&node, true); err != nil {
|
||||
|
|
Loading…
Add table
Reference in a new issue