Prechádzať zdrojové kódy

if ingress node is deleted, cleanup gateway clients

Abhishek Kondur 2 rokov pred
rodič
commit
7f6e92c0b0
2 zmenil súbory, kde vykonal 17 pridanie a 0 odobranie
  1. 8 0
      controllers/hosts.go
  2. 9 0
      controllers/node.go

+ 8 - 0
controllers/hosts.go

@@ -328,6 +328,14 @@ func deleteHostFromNetwork(w http.ResponseWriter, r *http.Request) {
 		// unset all the relayed nodes
 		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
+		}
+	}
 	logger.Log(1, "deleting node", node.ID.String(), "from host", currHost.Name)
 	if err := logic.DeleteNode(node, forceDelete); err != nil {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(fmt.Errorf("failed to delete node"), "internal"))

+ 9 - 0
controllers/node.go

@@ -717,6 +717,15 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
 		// unset all the relayed nodes
 		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
+		}
+	}
+
 	purge := forceDelete || fromNode
 	if err := logic.DeleteNode(&node, purge); err != nil {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(fmt.Errorf("failed to delete node"), "internal"))