diff options
author | zeripath <art27@cantab.net> | 2020-05-17 00:31:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 19:31:38 -0400 |
commit | 9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75 (patch) | |
tree | b1852472e1ecf6bdb1822b41655bdaf8afd87c1b /routers/admin/admin.go | |
parent | c18144086f9d4a06adbd4a7c08cfa6dab91224ec (diff) | |
download | gitea-9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75.tar.gz gitea-9a2e47b23a6d460acfce9b1b77e6f9fb06ca1b75.zip |
Refactor Cron and merge dashboard tasks (#10745)
* Refactor Cron and merge dashboard tasks
* Merge Cron and Dashboard tasks
* Make every cron task report a system notice on completion
* Refactor the creation of these tasks
* Ensure that execution counts of tasks is correct
* Allow cron tasks to be started from the cron page
* golangci-lint fixes
* Enforce that only one task with the same name can be registered
Signed-off-by: Andrew Thornton <art27@cantab.net>
* fix name check
Signed-off-by: Andrew Thornton <art27@cantab.net>
* as per @guillep2k
* as per @lafriks
Signed-off-by: Andrew Thornton <art27@cantab.net>
* Add git.CommandContext variants
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'routers/admin/admin.go')
-rw-r--r-- | routers/admin/admin.go | 65 |
1 files changed, 6 insertions, 59 deletions
diff --git a/routers/admin/admin.go b/routers/admin/admin.go index 1b4a8631cd..7595f4929d 100644 --- a/routers/admin/admin.go +++ b/routers/admin/admin.go @@ -21,11 +21,9 @@ import ( "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/cron" "code.gitea.io/gitea/modules/git" - "code.gitea.io/gitea/modules/graceful" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/process" "code.gitea.io/gitea/modules/queue" - repo_module "code.gitea.io/gitea/modules/repository" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/services/mailer" @@ -124,22 +122,6 @@ func updateSystemStatus() { sysStatus.NumGC = m.NumGC } -// Operation Operation types. -type Operation int - -const ( - cleanInactivateUser Operation = iota + 1 - cleanRepoArchives - cleanMissingRepos - gitGCRepos - syncSSHAuthorizedKey - syncRepositoryUpdateHook - reinitMissingRepository - syncExternalUsers - gitFsck - deleteGeneratedRepositoryAvatars -) - // Dashboard show admin panel dashboard func Dashboard(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("admin.dashboard") @@ -162,48 +144,13 @@ func DashboardPost(ctx *context.Context, form auth.AdminDashboardForm) { ctx.Data["SysStatus"] = sysStatus // Run operation. - if form.Op > 0 { - var err error - var success string - shutdownCtx := graceful.GetManager().ShutdownContext() - - switch Operation(form.Op) { - case cleanInactivateUser: - success = ctx.Tr("admin.dashboard.delete_inactivate_accounts_success") - err = models.DeleteInactivateUsers() - case cleanRepoArchives: - success = ctx.Tr("admin.dashboard.delete_repo_archives_success") - err = models.DeleteRepositoryArchives() - case cleanMissingRepos: - success = ctx.Tr("admin.dashboard.delete_missing_repos_success") - err = repo_module.DeleteMissingRepositories(ctx.User) - case gitGCRepos: - success = ctx.Tr("admin.dashboard.git_gc_repos_success") - err = repo_module.GitGcRepos(shutdownCtx) - case syncSSHAuthorizedKey: - success = ctx.Tr("admin.dashboard.resync_all_sshkeys_success") - err = models.RewriteAllPublicKeys() - case syncRepositoryUpdateHook: - success = ctx.Tr("admin.dashboard.resync_all_hooks_success") - err = repo_module.SyncRepositoryHooks(shutdownCtx) - case reinitMissingRepository: - success = ctx.Tr("admin.dashboard.reinit_missing_repos_success") - err = repo_module.ReinitMissingRepositories() - case syncExternalUsers: - success = ctx.Tr("admin.dashboard.sync_external_users_started") - go graceful.GetManager().RunWithShutdownContext(models.SyncExternalUsers) - case gitFsck: - success = ctx.Tr("admin.dashboard.git_fsck_started") - err = repo_module.GitFsck(shutdownCtx) - case deleteGeneratedRepositoryAvatars: - success = ctx.Tr("admin.dashboard.delete_generated_repository_avatars_success") - err = models.RemoveRandomAvatars() - } - - if err != nil { - ctx.Flash.Error(err.Error()) + if form.Op != "" { + task := cron.GetTask(form.Op) + if task != nil { + go task.RunWithUser(ctx.User, nil) + ctx.Flash.Success(ctx.Tr("admin.dashboard.task.started", ctx.Tr("admin.dashboard."+form.Op))) } else { - ctx.Flash.Success(success) + ctx.Flash.Error(ctx.Tr("admin.dashboard.task.unknown", form.Op)) } } |