소스 검색

delete ext clients in a go routine

Abhishek Kondur 2 년 전
부모
커밋
1ad96c5e4f
2개의 변경된 파일16개의 추가작업 그리고 11개의 파일을 삭제
  1. 7 5
      controllers/hosts.go
  2. 9 6
      controllers/node.go

+ 7 - 5
controllers/hosts.go

@@ -330,11 +330,13 @@ func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
 	}
 	if node.IsIngressGateway {
 		// delete ext clients belonging to ingress gateway
-		if err = logic.DeleteGatewayExtClients(node.ID.String(), node.Network); err != nil {
-			slog.Error("failed to delete extclients", "gatewayid", node.ID.String(), "network", node.Network, "error", err.Error())
-			logic.ReturnErrorResponse(w, r, logic.FormatError(err, "bad request"))
-			return
-		}
+		go func(node models.Node) {
+			if err = logic.DeleteGatewayExtClients(node.ID.String(), node.Network); err != nil {
+				slog.Error("failed to delete extclients", "gatewayid", node.ID.String(), "network", node.Network, "error", err.Error())
+				logic.ReturnErrorResponse(w, r, logic.FormatError(err, "bad request"))
+				return
+			}
+		}(*node)
 	}
 	logger.Log(1, "deleting node", node.ID.String(), "from host", currHost.Name)
 	if err := logic.DeleteNode(node, forceDelete); err != nil {

+ 9 - 6
controllers/node.go

@@ -718,12 +718,15 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 		logic.SetRelayedNodes(false, node.ID.String(), node.RelayedNodes)
 	}
 	if node.IsIngressGateway {
-		// delete ext clients belonging to ingress gateway
-		if err = logic.DeleteGatewayExtClients(node.ID.String(), node.Network); err != nil {
-			slog.Error("failed to delete extclients", "gatewayid", node.ID.String(), "network", node.Network, "error", err.Error())
-			logic.ReturnErrorResponse(w, r, logic.FormatError(err, "bad request"))
-			return
-		}
+		// delete ext clients belonging to ingress gatewa
+		go func(node models.Node) {
+			if err = logic.DeleteGatewayExtClients(node.ID.String(), node.Network); err != nil {
+				slog.Error("failed to delete extclients", "gatewayid", node.ID.String(), "network", node.Network, "error", err.Error())
+				logic.ReturnErrorResponse(w, r, logic.FormatError(err, "bad request"))
+				return
+			}
+		}(node)
+
 	}
 
 	purge := forceDelete || fromNode