diff --git a/app/http/controllers/plugins/frp_controller.go b/app/http/controllers/plugins/frp_controller.go index 89040b07..11f71512 100644 --- a/app/http/controllers/plugins/frp_controller.go +++ b/app/http/controllers/plugins/frp_controller.go @@ -17,186 +17,6 @@ func NewFrpController() *FrpController { return &FrpController{} } -// Status -// -// @Summary 服务状态 -// @Description 获取 Frp 服务状态 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/status [get] -func (r *FrpController) Status(ctx http.Context) http.Response { - frps, err := tools.ServiceStatus("frps") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 frps 服务运行状态失败") - } - frpc, err := tools.ServiceStatus("frpc") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 frpc 服务运行状态失败") - } - - return controllers.Success(ctx, http.Json{ - "frps": frps, - "frpc": frpc, - }) -} - -// IsEnabled -// -// @Summary 是否启用服务 -// @Description 获取是否启用 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/isEnabled [get] -func (r *FrpController) IsEnabled(ctx http.Context) http.Response { - frps, err := tools.ServiceIsEnabled("frps") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 frps 服务启用状态失败") - } - frpc, err := tools.ServiceIsEnabled("frpc") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 frpc 服务启用状态失败") - } - - return controllers.Success(ctx, http.Json{ - "frps": frps, - "frpc": frpc, - }) -} - -// Enable -// -// @Summary 启用服务 -// @Description 启用 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Param data body requests.Service true "request" -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/enable [post] -func (r *FrpController) Enable(ctx http.Context) http.Response { - var serviceRequest requests.Service - sanitize := controllers.Sanitize(ctx, &serviceRequest) - if sanitize != nil { - return sanitize - } - - if err := tools.ServiceEnable(serviceRequest.Service); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("启用 %s 服务失败", serviceRequest.Service)) - } - - return controllers.Success(ctx, nil) -} - -// Disable -// -// @Summary 禁用服务 -// @Description 禁用 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Param data body requests.Service true "request" -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/disable [post] -func (r *FrpController) Disable(ctx http.Context) http.Response { - var serviceRequest requests.Service - sanitize := controllers.Sanitize(ctx, &serviceRequest) - if sanitize != nil { - return sanitize - } - - if err := tools.ServiceDisable(serviceRequest.Service); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("禁用 %s 服务失败", serviceRequest.Service)) - } - - return controllers.Success(ctx, nil) -} - -// Restart -// -// @Summary 重启服务 -// @Description 重启 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @param data body requests.Service true "request" -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/restart [post] -func (r *FrpController) Restart(ctx http.Context) http.Response { - var serviceRequest requests.Service - sanitize := controllers.Sanitize(ctx, &serviceRequest) - if sanitize != nil { - return sanitize - } - - if err := tools.ServiceRestart(serviceRequest.Service); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("重启 %s 服务失败", serviceRequest.Service)) - } - - return controllers.Success(ctx, nil) -} - -// Start -// -// @Summary 启动服务 -// @Description 启动 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Param data body requests.Service true "request" -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/start [post] -func (r *FrpController) Start(ctx http.Context) http.Response { - var serviceRequest requests.Service - sanitize := controllers.Sanitize(ctx, &serviceRequest) - if sanitize != nil { - return sanitize - } - - if err := tools.ServiceStart(serviceRequest.Service); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("启动 %s 服务失败", serviceRequest.Service)) - } - - status, err := tools.ServiceStatus(serviceRequest.Service) - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("获取 %s 服务运行状态失败", serviceRequest.Service)) - } - - return controllers.Success(ctx, status) -} - -// Stop -// -// @Summary 停止服务 -// @Description 停止 Frp 服务 -// @Tags 插件-Frp -// @Produce json -// @Security BearerToken -// @Param data body requests.Service true "request" -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/frp/stop [post] -func (r *FrpController) Stop(ctx http.Context) http.Response { - var serviceRequest requests.Service - sanitize := controllers.Sanitize(ctx, &serviceRequest) - if sanitize != nil { - return sanitize - } - - if err := tools.ServiceStop(serviceRequest.Service); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("停止 %s 服务失败", serviceRequest.Service)) - } - - status, err := tools.ServiceStatus(serviceRequest.Service) - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, fmt.Sprintf("获取 %s 服务运行状态失败", serviceRequest.Service)) - } - - return controllers.Success(ctx, !status) -} - // GetConfig // // @Summary 获取配置 diff --git a/app/http/controllers/plugins/gitea_controller.go b/app/http/controllers/plugins/gitea_controller.go index e5ccd62c..2437a663 100644 --- a/app/http/controllers/plugins/gitea_controller.go +++ b/app/http/controllers/plugins/gitea_controller.go @@ -15,137 +15,6 @@ func NewGiteaController() *GiteaController { return &GiteaController{} } -// Status -// -// @Summary 服务状态 -// @Description 获取 Gitea 服务状态 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/status [get] -func (r *GiteaController) Status(ctx http.Context) http.Response { - status, err := tools.ServiceStatus("gitea") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") - } - - return controllers.Success(ctx, status) -} - -// IsEnabled -// -// @Summary 是否启用服务 -// @Description 获取是否启用 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/isEnabled [get] -func (r *GiteaController) IsEnabled(ctx http.Context) http.Response { - enabled, err := tools.ServiceIsEnabled("gitea") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务启用状态失败") - } - - return controllers.Success(ctx, enabled) -} - -// Enable -// -// @Summary 启用服务 -// @Description 启用 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/enable [post] -func (r *GiteaController) Enable(ctx http.Context) http.Response { - if err := tools.ServiceEnable("gitea"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "启用 Gitea 服务失败") - } - - return controllers.Success(ctx, nil) -} - -// Disable -// -// @Summary 禁用服务 -// @Description 禁用 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/disable [post] -func (r *GiteaController) Disable(ctx http.Context) http.Response { - if err := tools.ServiceDisable("gitea"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "禁用 Gitea 服务失败") - } - - return controllers.Success(ctx, nil) -} - -// Restart -// -// @Summary 重启服务 -// @Description 重启 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/restart [post] -func (r *GiteaController) Restart(ctx http.Context) http.Response { - if err := tools.ServiceRestart("gitea"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "重启 Gitea 服务失败") - } - - return controllers.Success(ctx, nil) -} - -// Start -// -// @Summary 启动服务 -// @Description 启动 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/start [post] -func (r *GiteaController) Start(ctx http.Context) http.Response { - if err := tools.ServiceStart("gitea"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "启动 Gitea 服务失败") - } - - status, err := tools.ServiceStatus("gitea") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") - } - - return controllers.Success(ctx, status) -} - -// Stop -// -// @Summary 停止服务 -// @Description 停止 Gitea 服务 -// @Tags 插件-Gitea -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/gitea/stop [post] -func (r *GiteaController) Stop(ctx http.Context) http.Response { - if err := tools.ServiceStop("gitea"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "停止 Gitea 服务失败") - } - - status, err := tools.ServiceStatus("gitea") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取 Gitea 服务运行状态失败") - } - - return controllers.Success(ctx, !status) -} - // GetConfig // // @Summary 获取配置 diff --git a/app/http/controllers/plugins/openresty_controller.go b/app/http/controllers/plugins/openresty_controller.go index cc755d8e..7d05a9d3 100644 --- a/app/http/controllers/plugins/openresty_controller.go +++ b/app/http/controllers/plugins/openresty_controller.go @@ -17,62 +17,14 @@ type OpenRestyController struct { } func NewOpenrestyController() *OpenRestyController { - return &OpenRestyController{ - // Inject services - } -} - -// Status 获取运行状态 -func (r *OpenRestyController) Status(ctx http.Context) http.Response { - status, err := tools.ServiceStatus("openresty") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取OpenResty状态失败") - } - - return controllers.Success(ctx, status) -} - -// Reload 重载配置 -func (r *OpenRestyController) Reload(ctx http.Context) http.Response { - if err := tools.ServiceReload("openresty"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "重载OpenResty失败") - } - - return controllers.Success(ctx, nil) -} - -// Start 启动OpenResty -func (r *OpenRestyController) Start(ctx http.Context) http.Response { - if err := tools.ServiceStart("openresty"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "启动OpenResty失败") - } - - return controllers.Success(ctx, nil) -} - -// Stop 停止OpenResty -func (r *OpenRestyController) Stop(ctx http.Context) http.Response { - if err := tools.ServiceStop("openresty"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "停止OpenResty失败") - } - - return controllers.Success(ctx, nil) -} - -// Restart 重启OpenResty -func (r *OpenRestyController) Restart(ctx http.Context) http.Response { - if err := tools.ServiceRestart("openresty"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "重启OpenResty失败") - } - - return controllers.Success(ctx, nil) + return &OpenRestyController{} } // GetConfig 获取配置 func (r *OpenRestyController) GetConfig(ctx http.Context) http.Response { config, err := tools.Read("/www/server/openresty/conf/nginx.conf") if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取OpenResty配置失败") + return controllers.Error(ctx, http.StatusInternalServerError, "获取配置失败") } return controllers.Success(ctx, config) @@ -86,10 +38,14 @@ func (r *OpenRestyController) SaveConfig(ctx http.Context) http.Response { } if err := tools.Write("/www/server/openresty/conf/nginx.conf", config, 0644); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "保存OpenResty配置失败") + return controllers.Error(ctx, http.StatusInternalServerError, "保存配置失败") } - return r.Reload(ctx) + if err := tools.ServiceReload("openresty"); err != nil { + return controllers.Error(ctx, http.StatusInternalServerError, "重载服务失败") + } + + return controllers.Success(ctx, nil) } // ErrorLog 获取错误日志 @@ -120,7 +76,7 @@ func (r *OpenRestyController) Load(ctx http.Context) http.Response { client := resty.New().SetTimeout(10 * time.Second) resp, err := client.R().Get("http://127.0.0.1/nginx_status") if err != nil || !resp.IsSuccess() { - return controllers.Error(ctx, http.StatusInternalServerError, "获取OpenResty负载失败") + return controllers.Error(ctx, http.StatusInternalServerError, "获取负载失败") } raw := resp.String() @@ -132,7 +88,7 @@ func (r *OpenRestyController) Load(ctx http.Context) http.Response { workers, err := tools.Exec("ps aux | grep nginx | grep 'worker process' | wc -l") if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取OpenResty负载失败") + return controllers.Error(ctx, http.StatusInternalServerError, "获取负载失败") } data = append(data, nginxStatus{ Name: "工作进程", @@ -141,7 +97,7 @@ func (r *OpenRestyController) Load(ctx http.Context) http.Response { out, err := tools.Exec("ps aux | grep nginx | grep 'worker process' | awk '{memsum+=$6};END {print memsum}'") if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取OpenResty负载失败") + return controllers.Error(ctx, http.StatusInternalServerError, "获取负载失败") } mem := tools.FormatBytes(cast.ToFloat64(out)) data = append(data, nginxStatus{ diff --git a/app/http/controllers/plugins/rsync_controller.go b/app/http/controllers/plugins/rsync_controller.go index b11bc02c..e21f9d52 100644 --- a/app/http/controllers/plugins/rsync_controller.go +++ b/app/http/controllers/plugins/rsync_controller.go @@ -20,79 +20,6 @@ func NewRsyncController() *RsyncController { return &RsyncController{} } -// Status -// -// @Summary 服务状态 -// @Description 获取 Rsync 服务状态 -// @Tags 插件-Rsync -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/rsync/status [get] -func (r *RsyncController) Status(ctx http.Context) http.Response { - status, err := tools.ServiceStatus("rsyncd") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取服务运行状态失败") - } - - return controllers.Success(ctx, status) -} - -// Restart -// -// @Summary 重启服务 -// @Description 重启 Rsync 服务 -// @Tags 插件-Rsync -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/rsync/restart [post] -func (r *RsyncController) Restart(ctx http.Context) http.Response { - if err := tools.ServiceRestart("rsyncd"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "重启服务失败") - } - - return controllers.Success(ctx, nil) -} - -// Start -// -// @Summary 启动服务 -// @Description 启动 Rsync 服务 -// @Tags 插件-Rsync -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/rsync/start [post] -func (r *RsyncController) Start(ctx http.Context) http.Response { - if err := tools.ServiceStart("rsyncd"); err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "启动服务失败") - } - - return controllers.Success(ctx, nil) -} - -// Stop -// -// @Summary 停止服务 -// @Description 停止 Rsync 服务 -// @Tags 插件-Rsync -// @Produce json -// @Security BearerToken -// @Success 200 {object} controllers.SuccessResponse -// @Router /plugins/rsync/stop [post] -func (r *RsyncController) Stop(ctx http.Context) http.Response { - if err := tools.ServiceStop("rsyncd"); err != nil { - return nil - } - status, err := tools.ServiceStatus("rsyncd") - if err != nil { - return controllers.Error(ctx, http.StatusInternalServerError, "获取服务运行状态失败") - } - - return controllers.Success(ctx, !status) -} - // List // // @Summary 列出模块 diff --git a/routes/plugin.go b/routes/plugin.go index 213c1508..878c6f79 100644 --- a/routes/plugin.go +++ b/routes/plugin.go @@ -13,11 +13,6 @@ func Plugin() { facades.Route().Prefix("api/plugins").Middleware(middleware.Jwt(), middleware.MustInstall()).Group(func(r route.Router) { r.Prefix("openresty").Group(func(route route.Router) { openRestyController := plugins.NewOpenrestyController() - route.Get("status", openRestyController.Status) - route.Post("reload", openRestyController.Reload) - route.Post("start", openRestyController.Start) - route.Post("stop", openRestyController.Stop) - route.Post("restart", openRestyController.Restart) route.Get("load", openRestyController.Load) route.Get("config", openRestyController.GetConfig) route.Post("config", openRestyController.SaveConfig) @@ -332,10 +327,6 @@ func Plugin() { }) r.Prefix("rsync").Group(func(route route.Router) { rsyncController := plugins.NewRsyncController() - route.Get("status", rsyncController.Status) - route.Post("start", rsyncController.Start) - route.Post("stop", rsyncController.Stop) - route.Post("restart", rsyncController.Restart) route.Get("modules", rsyncController.List) route.Post("modules", rsyncController.Create) route.Post("modules/{name}", rsyncController.Update) @@ -345,25 +336,11 @@ func Plugin() { }) r.Prefix("frp").Group(func(route route.Router) { frpController := plugins.NewFrpController() - route.Get("status", frpController.Status) - route.Get("isEnabled", frpController.IsEnabled) - route.Post("enable", frpController.Enable) - route.Post("disable", frpController.Disable) - route.Post("start", frpController.Start) - route.Post("stop", frpController.Stop) - route.Post("restart", frpController.Restart) route.Get("config", frpController.GetConfig) route.Post("config", frpController.UpdateConfig) }) r.Prefix("gitea").Group(func(route route.Router) { giteaController := plugins.NewGiteaController() - route.Get("status", giteaController.Status) - route.Get("isEnabled", giteaController.IsEnabled) - route.Post("enable", giteaController.Enable) - route.Post("disable", giteaController.Disable) - route.Post("start", giteaController.Start) - route.Post("stop", giteaController.Stop) - route.Post("restart", giteaController.Restart) route.Get("config", giteaController.GetConfig) route.Post("config", giteaController.UpdateConfig) })