Go: fix list services (#17664)

### Summary

1. Fix admin list services;
2. Fix admin show service 'service_name';

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2026-08-01 14:52:37 +08:00
committed by GitHub
parent 776b9371f7
commit 26a5af8b83
19 changed files with 262 additions and 329 deletions

View File

@@ -490,7 +490,8 @@ func (h *Handler) DeleteUserAPIToken(c *gin.Context) {
// GetServices handle get all services
func (h *Handler) GetServices(c *gin.Context) {
services, err := h.service.ListServices()
ctx := c.Request.Context()
services, err := h.service.ListServices(ctx)
if err != nil {
common.ResponseWithHttpCodeData(c, http.StatusInternalServerError, common.CodeBadRequest, nil, err.Error())
return
@@ -518,48 +519,38 @@ func (h *Handler) GetServicesByType(c *gin.Context) {
// GetService handle get service details
func (h *Handler) GetService(c *gin.Context) {
serviceID := c.Param("service_id")
if serviceID == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service ID is required")
serviceName := c.Param("service_name")
if serviceName == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service name is required")
return
}
// Get all services and find the one with matching ID
allConfigs := server.GetAllConfigs()
var targetService map[string]interface{}
for _, config := range allConfigs {
if id, ok := config["id"]; ok {
if strconv.Itoa(id.(int)) == serviceID {
targetService = config
break
}
}
}
if targetService == nil {
common.ErrorWithCode(c, common.CodeNotFound, "Service not found")
return
}
serviceStatus, err := h.service.GetServiceDetails(targetService)
ctx := c.Request.Context()
services, err := h.service.ListServices(ctx)
if err != nil {
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return
}
common.SuccessWithData(c, serviceStatus, "")
for _, serviceInstance := range services {
if serviceInstance.Name == serviceName {
common.SuccessWithData(c, serviceInstance, "")
return
}
}
common.ErrorWithCode(c, common.CodeNotFound, "Service not found")
}
// ShutdownService handle shutdown service
func (h *Handler) ShutdownService(c *gin.Context) {
serviceID := c.Param("service_id")
if serviceID == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service ID is required")
serviceName := c.Param("service_name")
if serviceName == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service name is required")
return
}
result, err := h.service.ShutdownService(serviceID)
result, err := h.service.ShutdownService(serviceName)
if err != nil {
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return
@@ -570,13 +561,13 @@ func (h *Handler) ShutdownService(c *gin.Context) {
// StartService handle start service
func (h *Handler) StartService(c *gin.Context) {
serviceID := c.Param("service_id")
if serviceID == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service ID is required")
serviceName := c.Param("service_name")
if serviceName == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service name is required")
return
}
result, err := h.service.StartService(serviceID)
result, err := h.service.StartService(serviceName)
if err != nil {
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return
@@ -587,13 +578,13 @@ func (h *Handler) StartService(c *gin.Context) {
// RestartService handle restart service
func (h *Handler) RestartService(c *gin.Context) {
serviceID := c.Param("service_id")
if serviceID == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service ID is required")
serviceName := c.Param("service_name")
if serviceName == "" {
common.ErrorWithCode(c, common.CodeBadRequest, "Service name is required")
return
}
result, err := h.service.RestartService(serviceID)
result, err := h.service.RestartService(serviceName)
if err != nil {
common.ErrorWithCode(c, common.CodeServerError, err.Error())
return