delete node api fix

This commit is contained in:
Abhishek Kondur 2022-10-06 00:54:05 +05:30
parent fe5fd7fce9
commit 28ca66b32d

View file

@ -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")