summaryrefslogtreecommitdiffstats
path: root/routers/web/admin/admin.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/web/admin/admin.go')
-rw-r--r--routers/web/admin/admin.go178
1 files changed, 4 insertions, 174 deletions
diff --git a/routers/web/admin/admin.go b/routers/web/admin/admin.go
index 35c387c28b..cbe1482a24 100644
--- a/routers/web/admin/admin.go
+++ b/routers/web/admin/admin.go
@@ -8,13 +8,11 @@ import (
"fmt"
"net/http"
"runtime"
- "strconv"
"time"
activities_model "code.gitea.io/gitea/models/activities"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
- "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/process"
"code.gitea.io/gitea/modules/queue"
"code.gitea.io/gitea/modules/setting"
@@ -25,10 +23,10 @@ import (
)
const (
- tplDashboard base.TplName = "admin/dashboard"
- tplMonitor base.TplName = "admin/monitor"
- tplStacktrace base.TplName = "admin/stacktrace"
- tplQueue base.TplName = "admin/queue"
+ tplDashboard base.TplName = "admin/dashboard"
+ tplMonitor base.TplName = "admin/monitor"
+ tplStacktrace base.TplName = "admin/stacktrace"
+ tplQueueManage base.TplName = "admin/queue_manage"
)
var sysStatus struct {
@@ -188,171 +186,3 @@ func MonitorCancel(ctx *context.Context) {
"redirect": setting.AppSubURL + "/admin/monitor",
})
}
-
-// Queue shows details for a specific queue
-func Queue(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(http.StatusNotFound)
- return
- }
- ctx.Data["Title"] = ctx.Tr("admin.monitor.queue", mq.Name)
- ctx.Data["PageIsAdminMonitor"] = true
- ctx.Data["Queue"] = mq
- ctx.HTML(http.StatusOK, tplQueue)
-}
-
-// WorkerCancel cancels a worker group
-func WorkerCancel(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(http.StatusNotFound)
- return
- }
- pid := ctx.ParamsInt64("pid")
- mq.CancelWorkers(pid)
- ctx.Flash.Info(ctx.Tr("admin.monitor.queue.pool.cancelling"))
- ctx.JSON(http.StatusOK, map[string]interface{}{
- "redirect": setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10),
- })
-}
-
-// Flush flushes a queue
-func Flush(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(http.StatusNotFound)
- return
- }
- timeout, err := time.ParseDuration(ctx.FormString("timeout"))
- if err != nil {
- timeout = -1
- }
- ctx.Flash.Info(ctx.Tr("admin.monitor.queue.pool.flush.added", mq.Name))
- go func() {
- err := mq.Flush(timeout)
- if err != nil {
- log.Error("Flushing failure for %s: Error %v", mq.Name, err)
- }
- }()
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
-}
-
-// Pause pauses a queue
-func Pause(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(404)
- return
- }
- mq.Pause()
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
-}
-
-// Resume resumes a queue
-func Resume(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(404)
- return
- }
- mq.Resume()
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
-}
-
-// AddWorkers adds workers to a worker group
-func AddWorkers(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(http.StatusNotFound)
- return
- }
- number := ctx.FormInt("number")
- if number < 1 {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.pool.addworkers.mustnumbergreaterzero"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- timeout, err := time.ParseDuration(ctx.FormString("timeout"))
- if err != nil {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.pool.addworkers.musttimeoutduration"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- if _, ok := mq.Managed.(queue.ManagedPool); !ok {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.pool.none"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- mq.AddWorkers(number, timeout)
- ctx.Flash.Success(ctx.Tr("admin.monitor.queue.pool.added"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
-}
-
-// SetQueueSettings sets the maximum number of workers and other settings for this queue
-func SetQueueSettings(ctx *context.Context) {
- qid := ctx.ParamsInt64("qid")
- mq := queue.GetManager().GetManagedQueue(qid)
- if mq == nil {
- ctx.Status(http.StatusNotFound)
- return
- }
- if _, ok := mq.Managed.(queue.ManagedPool); !ok {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.pool.none"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
-
- maxNumberStr := ctx.FormString("max-number")
- numberStr := ctx.FormString("number")
- timeoutStr := ctx.FormString("timeout")
-
- var err error
- var maxNumber, number int
- var timeout time.Duration
- if len(maxNumberStr) > 0 {
- maxNumber, err = strconv.Atoi(maxNumberStr)
- if err != nil {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.settings.maxnumberworkers.error"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- if maxNumber < -1 {
- maxNumber = -1
- }
- } else {
- maxNumber = mq.MaxNumberOfWorkers()
- }
-
- if len(numberStr) > 0 {
- number, err = strconv.Atoi(numberStr)
- if err != nil || number < 0 {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.settings.numberworkers.error"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- } else {
- number = mq.BoostWorkers()
- }
-
- if len(timeoutStr) > 0 {
- timeout, err = time.ParseDuration(timeoutStr)
- if err != nil {
- ctx.Flash.Error(ctx.Tr("admin.monitor.queue.settings.timeout.error"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
- return
- }
- } else {
- timeout = mq.BoostTimeout()
- }
-
- mq.SetPoolSettings(maxNumber, number, timeout)
- ctx.Flash.Success(ctx.Tr("admin.monitor.queue.settings.changed"))
- ctx.Redirect(setting.AppSubURL + "/admin/monitor/queue/" + strconv.FormatInt(qid, 10))
-}