Skip to content

Commit ee7342d

Browse files
authored
fix: delete svc failure (#2125)
Signed-off-by: 张启航 <[email protected]>
1 parent 73c1875 commit ee7342d

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

api/controller/apigateway/api_gateway_route.go

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -502,17 +502,45 @@ func (g Struct) DeleteTCPRoute(w http.ResponseWriter, r *http.Request) {
502502
tenant := r.Context().Value(ctxutil.ContextKey("tenant")).(*dbmodel.Tenants)
503503
name := chi.URLParam(r, "name")
504504

505+
// Split name by "-" to get alias and port
506+
parts := strings.Split(name, "-")
507+
if len(parts) != 2 {
508+
httputil.ReturnBcodeError(r, w, bcode.ErrRouteDelete)
509+
return
510+
}
511+
serviceAlias := parts[0]
512+
port := parts[1]
513+
514+
// Create label selector
515+
labelSelector := fmt.Sprintf("outer=true,port=%s,service_alias=%s", port, serviceAlias)
516+
505517
k := k8s.Default().Clientset.CoreV1()
506-
err := k.Services(tenant.Namespace).Delete(r.Context(), name, v1.DeleteOptions{})
518+
// List services with the specified labels
519+
services, err := k.Services(tenant.Namespace).List(r.Context(), v1.ListOptions{
520+
LabelSelector: labelSelector,
521+
})
507522
if err != nil {
508-
if errors.IsNotFound(err) {
509-
httputil.ReturnSuccess(r, w, name)
510-
} else {
511-
logrus.Errorf("delete route error %s", err.Error())
523+
logrus.Errorf("list services error %s", err.Error())
524+
httputil.ReturnBcodeError(r, w, bcode.ErrRouteDelete)
525+
return
526+
}
527+
528+
if len(services.Items) == 0 {
529+
// No services found with these labels
530+
httputil.ReturnSuccess(r, w, name)
531+
return
532+
}
533+
534+
// Delete all matching services
535+
for _, svc := range services.Items {
536+
err := k.Services(tenant.Namespace).Delete(r.Context(), svc.Name, v1.DeleteOptions{})
537+
if err != nil && !errors.IsNotFound(err) {
538+
logrus.Errorf("delete service %s error %s", svc.Name, err.Error())
512539
httputil.ReturnBcodeError(r, w, bcode.ErrRouteDelete)
540+
return
513541
}
514-
return
515542
}
543+
516544
httputil.ReturnSuccess(r, w, name)
517545
}
518546

0 commit comments

Comments
 (0)