Browse Source

get host info from db before updating

Abhishek Kondur 2 years ago
parent
commit
5f2d73dd52
2 changed files with 11 additions and 6 deletions
  1. 7 2
      controllers/node.go
  2. 4 4
      logic/hosts.go

+ 7 - 2
controllers/node.go

@@ -104,7 +104,6 @@ func authenticate(response http.ResponseWriter, request *http.Request) {
 		logic.ReturnErrorResponse(response, request, errorResponse)
 		return
 	}
-
 	err = bcrypt.CompareHashAndPassword([]byte(host.HostPass), []byte(authRequest.Password))
 	if err != nil {
 		errorResponse.Code = http.StatusBadRequest
@@ -626,7 +625,13 @@ func createNode(w http.ResponseWriter, r *http.Request) {
 			return
 		}
 	}
-	err = logic.AssociateNodeToHost(&data.Node, &data.Host)
+	host, err := logic.GetHost(data.Host.ID.String())
+	if err != nil {
+		logger.Log(0, r.Header.Get("user"), "failed to find host:", err.Error())
+		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
+		return
+	}
+	err = logic.AssociateNodeToHost(&data.Node, host)
 	if err != nil {
 		logger.Log(0, r.Header.Get("user"),
 			fmt.Sprintf("failed to create node on network [%s]: %s",

+ 4 - 4
logic/hosts.go

@@ -235,11 +235,11 @@ func DissasociateNodeFromHost(n *models.Node, h *models.Host) error {
 			break
 		}
 	}
-	if index < 0 {
-		if len(h.Nodes) == 0 {
-			return fmt.Errorf("node %s, not found in host, %s", n.ID.String(), h.ID.String())
-		}
+
+	if index == -1 {
+		return fmt.Errorf("node %s, not found in host, %s", n.ID.String(), h.ID.String())
 	}
+
 	if err := deleteNodeByID(n); err != nil {
 		return err
 	}