mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-25 18:00:25 +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"))
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||||
return
|
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 {
|
if err = logic.RemoveHost(currHost); err != nil {
|
||||||
logger.Log(0, r.Header.Get("user"), "failed to delete a host:", err.Error())
|
logger.Log(0, r.Header.Get("user"), "failed to delete a host:", err.Error())
|
||||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||||
|
|||||||
Reference in New Issue
Block a user