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
					
				
					 4 changed files with 12 additions and 0 deletions
				
			
		|  | @ -2172,6 +2172,7 @@ func GitFsck() { | |||
| 			func(idx int, bean interface{}) error { | ||||
| 				repo := bean.(*Repository) | ||||
| 				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 { | ||||
| 					desc := fmt.Sprintf("Failed to health check repository (%s): %v", repoPath, err) | ||||
| 					log.Warn(desc) | ||||
|  | @ -2183,6 +2184,7 @@ func GitFsck() { | |||
| 			}); err != nil { | ||||
| 		log.Error(4, "GitFsck: %v", err) | ||||
| 	} | ||||
| 	log.Trace("Finished: GitFsck") | ||||
| } | ||||
| 
 | ||||
| // 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.sync_external_users = Synchronize external user data | ||||
| 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.current_goroutine = Current Goroutines | ||||
| dashboard.current_memory_usage = Current Memory Usage | ||||
|  |  | |||
|  | @ -122,6 +122,7 @@ const ( | |||
| 	syncRepositoryUpdateHook | ||||
| 	reinitMissingRepository | ||||
| 	syncExternalUsers | ||||
| 	gitFsck | ||||
| ) | ||||
| 
 | ||||
| // Dashboard show admin panel dashboard
 | ||||
|  | @ -161,6 +162,9 @@ func Dashboard(ctx *context.Context) { | |||
| 		case syncExternalUsers: | ||||
| 			success = ctx.Tr("admin.dashboard.sync_external_users_started") | ||||
| 			go models.SyncExternalUsers() | ||||
| 		case gitFsck: | ||||
| 			success = ctx.Tr("admin.dashboard.git_fsck_started") | ||||
| 			go models.GitFsck() | ||||
| 		} | ||||
| 
 | ||||
| 		if err != nil { | ||||
|  |  | |||
|  | @ -49,6 +49,10 @@ | |||
| 						<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> | ||||
| 					</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> | ||||
| 			</table> | ||||
| 		</div> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue