Move SingleRepositoryWorker#fsck into Gitlab::Git::Repository
This commit is contained in:
parent
e0f8413056
commit
12f61e0d2c
2 changed files with 17 additions and 11 deletions
|
@ -32,16 +32,14 @@ module RepositoryCheck
|
|||
end
|
||||
|
||||
def git_fsck(repository)
|
||||
path = repository.path_to_repo
|
||||
cmd = %W(nice git --git-dir=#{path} fsck)
|
||||
output, status = Gitlab::Popen.popen(cmd)
|
||||
return false unless repository.exists?
|
||||
|
||||
if status.zero?
|
||||
true
|
||||
else
|
||||
Gitlab::RepositoryCheckLogger.error("command failed: #{cmd.join(' ')}\n#{output}")
|
||||
false
|
||||
end
|
||||
repository.raw_repository.fsck
|
||||
|
||||
true
|
||||
rescue Gitlab::Git::Repository::GitError => e
|
||||
Gitlab::RepositoryCheckLogger.error(e.message)
|
||||
false
|
||||
end
|
||||
|
||||
def has_pushes?(project)
|
||||
|
|
|
@ -1118,9 +1118,11 @@ module Gitlab
|
|||
end
|
||||
|
||||
# Refactoring aid; allows us to copy code from app/models/repository.rb
|
||||
def run_git(args, env: {})
|
||||
def run_git(args, env: {}, nice: false)
|
||||
cmd = [Gitlab.config.git.bin_path, *args]
|
||||
cmd.unshift("nice") if nice
|
||||
circuit_breaker.perform do
|
||||
popen([Gitlab.config.git.bin_path, *args], path, env)
|
||||
popen(cmd, path, env)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1187,6 +1189,12 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def fsck
|
||||
output, status = run_git(%W[--git-dir=#{path} fsck], nice: true)
|
||||
|
||||
raise GitError.new("Could not fsck repository:\n#{output}") unless status.zero?
|
||||
end
|
||||
|
||||
def gitaly_repository
|
||||
Gitlab::GitalyClient::Util.repository(@storage, @relative_path, @gl_repository)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue