mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-19 07:05:57 +08:00
Merge pull request #1963 from gravitl/bugfix_relay_host
Remove hosts from relays before deletion
This commit is contained in:
@@ -140,7 +140,33 @@ func deleteHost(w http.ResponseWriter, r *http.Request) {
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
|
||||
if currHost.IsRelay {
|
||||
if _, _, err := logic.DeleteHostRelay(hostid); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to dissociate host from relays:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
}
|
||||
if currHost.IsRelayed {
|
||||
relayHost, err := logic.GetHost(currHost.RelayedBy)
|
||||
if err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to fetch relay host:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
newRelayedHosts := make([]string, 0)
|
||||
for _, relayedHostID := range relayHost.RelayedHosts {
|
||||
if relayedHostID != hostid {
|
||||
newRelayedHosts = append(newRelayedHosts, relayedHostID)
|
||||
}
|
||||
}
|
||||
relayHost.RelayedHosts = newRelayedHosts
|
||||
if err := logic.UpsertHost(relayHost); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to update host relays:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
}
|
||||
if err = logic.RemoveHost(currHost); err != nil {
|
||||
logger.Log(0, r.Header.Get("user"), "failed to delete a host:", err.Error())
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
|
Reference in New Issue
Block a user