mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-13 00:24:31 +08:00
delete node api fix
This commit is contained in:
parent
fe5fd7fce9
commit
28ca66b32d
1 changed files with 23 additions and 12 deletions
|
@ -83,12 +83,15 @@ func authenticate(response http.ResponseWriter, request *http.Request) {
|
||||||
var err error
|
var err error
|
||||||
result, err = logic.GetNodeByID(authRequest.ID)
|
result, err = logic.GetNodeByID(authRequest.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errorResponse.Code = http.StatusBadRequest
|
result, err = logic.GetDeletedNodeByID(authRequest.ID)
|
||||||
errorResponse.Message = err.Error()
|
if err != nil {
|
||||||
logger.Log(0, request.Header.Get("user"),
|
errorResponse.Code = http.StatusBadRequest
|
||||||
fmt.Sprintf("failed to get node info [%s]: %v", authRequest.ID, err))
|
errorResponse.Message = err.Error()
|
||||||
logic.ReturnErrorResponse(response, request, errorResponse)
|
logger.Log(0, request.Header.Get("user"),
|
||||||
return
|
fmt.Sprintf("failed to get node info [%s]: %v", authRequest.ID, err))
|
||||||
|
logic.ReturnErrorResponse(response, request, errorResponse)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = bcrypt.CompareHashAndPassword([]byte(result.Password), []byte(authRequest.Password))
|
err = bcrypt.CompareHashAndPassword([]byte(result.Password), []byte(authRequest.Password))
|
||||||
|
@ -256,7 +259,6 @@ func authorize(nodesAllowed, networkCheck bool, authNetwork string, next http.Ha
|
||||||
logic.ReturnErrorResponse(w, r, errorResponse)
|
logic.ReturnErrorResponse(w, r, errorResponse)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
r.Header.Set("requestfrom", "")
|
|
||||||
//check if node instead of user
|
//check if node instead of user
|
||||||
if nodesAllowed {
|
if nodesAllowed {
|
||||||
// TODO --- should ensure that node is only operating on itself
|
// TODO --- should ensure that node is only operating on itself
|
||||||
|
@ -264,7 +266,6 @@ func authorize(nodesAllowed, networkCheck bool, authNetwork string, next http.Ha
|
||||||
|
|
||||||
// this indicates request is from a node
|
// this indicates request is from a node
|
||||||
// used for failover - if a getNode comes from node, this will trigger a metrics wipe
|
// used for failover - if a getNode comes from node, this will trigger a metrics wipe
|
||||||
r.Header.Set("requestfrom", "node")
|
|
||||||
next.ServeHTTP(w, r)
|
next.ServeHTTP(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1040,10 +1041,20 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
||||||
fromNode := r.Header.Get("requestfrom") == "node"
|
fromNode := r.Header.Get("requestfrom") == "node"
|
||||||
var node, err = logic.GetNodeByID(nodeid)
|
var node, err = logic.GetNodeByID(nodeid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, r.Header.Get("user"),
|
if fromNode {
|
||||||
fmt.Sprintf("error fetching node [ %s ] info: %v", nodeid, err))
|
node, err = logic.GetDeletedNodeByID(nodeid)
|
||||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
if err != nil {
|
||||||
return
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("error fetching node from deleted nodes [ %s ] info: %v", nodeid, err))
|
||||||
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("error fetching node [ %s ] info: %v", nodeid, err))
|
||||||
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if isServer(&node) {
|
if isServer(&node) {
|
||||||
err := fmt.Errorf("cannot delete server node")
|
err := fmt.Errorf("cannot delete server node")
|
||||||
|
|
Loading…
Add table
Reference in a new issue