Merge branch 'feature/migrate-repository-size-to-gitaly' into 'master'

Migrate Gitlab::Git::Repository#size to Gitaly

Closes gitaly#437

See merge request !13259
This commit is contained in:
Robert Speicher 2017-08-07 21:29:32 +00:00
commit 6085ce1352
5 changed files with 25 additions and 5 deletions

View file

@ -1 +1 @@
0.27.0 0.29.0

View file

@ -401,7 +401,7 @@ group :ed25519 do
end end
# Gitaly GRPC client # Gitaly GRPC client
gem 'gitaly', '~> 0.24.0' gem 'gitaly', '~> 0.26.0'
gem 'toml-rb', '~> 0.3.15', require: false gem 'toml-rb', '~> 0.3.15', require: false

View file

@ -270,7 +270,7 @@ GEM
po_to_json (>= 1.0.0) po_to_json (>= 1.0.0)
rails (>= 3.2.0) rails (>= 3.2.0)
gherkin-ruby (0.3.2) gherkin-ruby (0.3.2)
gitaly (0.24.0) gitaly (0.26.0)
google-protobuf (~> 3.1) google-protobuf (~> 3.1)
grpc (~> 1.0) grpc (~> 1.0)
github-linguist (4.7.6) github-linguist (4.7.6)
@ -982,7 +982,7 @@ DEPENDENCIES
gettext (~> 3.2.2) gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.2.0) gettext_i18n_rails_js (~> 1.2.0)
gitaly (~> 0.24.0) gitaly (~> 0.26.0)
github-linguist (~> 4.7.0) github-linguist (~> 4.7.0)
gitlab-flowdock-git-hook (~> 1.0.1) gitlab-flowdock-git-hook (~> 1.0.1)
gitlab-markup (~> 1.5.1) gitlab-markup (~> 1.5.1)

View file

@ -282,7 +282,14 @@ module Gitlab
# Return repo size in megabytes # Return repo size in megabytes
def size def size
size = popen(%w(du -sk), path).first.strip.to_i size = gitaly_migrate(:repository_size) do |is_enabled|
if is_enabled
size_by_gitaly
else
size_by_shelling_out
end
end
(size.to_f / 1024).round(2) (size.to_f / 1024).round(2)
end end
@ -943,6 +950,14 @@ module Gitlab
gitaly_ref_client.tags gitaly_ref_client.tags
end end
def size_by_shelling_out
popen(%w(du -sk), path).first.strip.to_i
end
def size_by_gitaly
gitaly_repository_client.repository_size
end
def count_commits_by_gitaly(options) def count_commits_by_gitaly(options)
gitaly_commit_client.commit_count(options[:ref], options) gitaly_commit_client.commit_count(options[:ref], options)
end end

View file

@ -27,6 +27,11 @@ module Gitlab
request = Gitaly::RepackIncrementalRequest.new(repository: @gitaly_repo) request = Gitaly::RepackIncrementalRequest.new(repository: @gitaly_repo)
GitalyClient.call(@storage, :repository_service, :repack_incremental, request) GitalyClient.call(@storage, :repository_service, :repack_incremental, request)
end end
def repository_size
request = Gitaly::RepositorySizeRequest.new(repository: @gitaly_repo)
GitalyClient.call(@storage, :repository_service, :repository_size, request).size
end
end end
end end
end end