Add admin dashboard option to run health checks (#3606)
There's one for git gc, why not git fsck too? Also add a couple more trace logs to GitFsck to see progress
This commit is contained in:
parent
2cd3622ddc
commit
8606d9f5bc
|
@ -2172,6 +2172,7 @@ func GitFsck() {
|
||||||
func(idx int, bean interface{}) error {
|
func(idx int, bean interface{}) error {
|
||||||
repo := bean.(*Repository)
|
repo := bean.(*Repository)
|
||||||
repoPath := repo.RepoPath()
|
repoPath := repo.RepoPath()
|
||||||
|
log.Trace(fmt.Sprintf("Running health check for repository %s", repoPath))
|
||||||
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
|
if err := git.Fsck(repoPath, setting.Cron.RepoHealthCheck.Timeout, setting.Cron.RepoHealthCheck.Args...); err != nil {
|
||||||
desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err)
|
desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err)
|
||||||
log.Warn(desc)
|
log.Warn(desc)
|
||||||
|
@ -2183,6 +2184,7 @@ func GitFsck() {
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Error(4, "GitFsck: %v", err)
|
log.Error(4, "GitFsck: %v", err)
|
||||||
}
|
}
|
||||||
|
log.Trace("Finished: GitFsck")
|
||||||
}
|
}
|
||||||
|
|
||||||
// GitGcRepos calls 'git gc' to remove unnecessary files and optimize the local repository
|
// GitGcRepos calls 'git gc' to remove unnecessary files and optimize the local repository
|
||||||
|
|
|
@ -1220,6 +1220,8 @@ dashboard.reinit_missing_repos = Reinitialize all missing Git repositories for w
|
||||||
dashboard.reinit_missing_repos_success = All missing Git repositories for which records existed have been reinitialized.
|
dashboard.reinit_missing_repos_success = All missing Git repositories for which records existed have been reinitialized.
|
||||||
dashboard.sync_external_users = Synchronize external user data
|
dashboard.sync_external_users = Synchronize external user data
|
||||||
dashboard.sync_external_users_started = External user synchronization started
|
dashboard.sync_external_users_started = External user synchronization started
|
||||||
|
dashboard.git_fsck = Execute health checks on all repositories
|
||||||
|
dashboard.git_fsck_started = Repository health checks started
|
||||||
dashboard.server_uptime = Server Uptime
|
dashboard.server_uptime = Server Uptime
|
||||||
dashboard.current_goroutine = Current Goroutines
|
dashboard.current_goroutine = Current Goroutines
|
||||||
dashboard.current_memory_usage = Current Memory Usage
|
dashboard.current_memory_usage = Current Memory Usage
|
||||||
|
|
|
@ -122,6 +122,7 @@ const (
|
||||||
syncRepositoryUpdateHook
|
syncRepositoryUpdateHook
|
||||||
reinitMissingRepository
|
reinitMissingRepository
|
||||||
syncExternalUsers
|
syncExternalUsers
|
||||||
|
gitFsck
|
||||||
)
|
)
|
||||||
|
|
||||||
// Dashboard show admin panel dashboard
|
// Dashboard show admin panel dashboard
|
||||||
|
@ -161,6 +162,9 @@ func Dashboard(ctx *context.Context) {
|
||||||
case syncExternalUsers:
|
case syncExternalUsers:
|
||||||
success = ctx.Tr("admin.dashboard.sync_external_users_started")
|
success = ctx.Tr("admin.dashboard.sync_external_users_started")
|
||||||
go models.SyncExternalUsers()
|
go models.SyncExternalUsers()
|
||||||
|
case gitFsck:
|
||||||
|
success = ctx.Tr("admin.dashboard.git_fsck_started")
|
||||||
|
go models.GitFsck()
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -49,6 +49,10 @@
|
||||||
<td>{{.i18n.Tr "admin.dashboard.sync_external_users"}}</td>
|
<td>{{.i18n.Tr "admin.dashboard.sync_external_users"}}</td>
|
||||||
<td><i class="fa fa-caret-square-o-right"></i> <a href="{{AppSubUrl}}/admin?op=8">{{.i18n.Tr "admin.dashboard.operation_run"}}</a></td>
|
<td><i class="fa fa-caret-square-o-right"></i> <a href="{{AppSubUrl}}/admin?op=8">{{.i18n.Tr "admin.dashboard.operation_run"}}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>{{.i18n.Tr "admin.dashboard.git_fsck"}}</td>
|
||||||
|
<td><i class="fa fa-caret-square-o-right"></i> <a href="{{AppSubUrl}}/admin?op=9">{{.i18n.Tr "admin.dashboard.operation_run"}}</a></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue