Skip to content
Snippets Groups Projects
Commit 4edd8ea9 authored by Patrick Bajao's avatar Patrick Bajao Committed by Stan Hu
Browse files

Add client code to call GetObjectDirectorySize RPC

This includes the changes for GITALY_SERVER_VERSION and Gemfile
parent 3c240b7a
No related branches found
No related tags found
No related merge requests found
1.34.2
1.34.3
Loading
Loading
@@ -419,7 +419,7 @@ group :ed25519 do
end
 
# Gitaly GRPC client
gem 'gitaly-proto', '~> 1.19.0', require: 'gitaly'
gem 'gitaly-proto', '~> 1.22.1', require: 'gitaly'
 
gem 'grpc', '~> 1.15.0'
 
Loading
Loading
Loading
Loading
@@ -281,7 +281,7 @@ GEM
gettext_i18n_rails (>= 0.7.1)
po_to_json (>= 1.0.0)
rails (>= 3.2.0)
gitaly-proto (1.19.0)
gitaly-proto (1.22.1)
grpc (~> 1.0)
github-markup (1.7.0)
gitlab-default_value_for (3.1.1)
Loading
Loading
@@ -1020,7 +1020,7 @@ DEPENDENCIES
gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
gitaly-proto (~> 1.19.0)
gitaly-proto (~> 1.22.1)
github-markup (~> 1.7.0)
gitlab-default_value_for (~> 3.1.1)
gitlab-markup (~> 1.7.0)
Loading
Loading
Loading
Loading
@@ -303,6 +303,11 @@ module Gitlab
(size.to_f / 1024).round(2)
end
 
# Return git object directory size in bytes
def object_directory_size
gitaly_repository_client.get_object_directory_size.to_f * 1024
end
# Build an array of commits.
#
# Usage.
Loading
Loading
Loading
Loading
@@ -47,6 +47,13 @@ module Gitlab
response.size
end
 
def get_object_directory_size
request = Gitaly::GetObjectDirectorySizeRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :get_object_directory_size, request, timeout: GitalyClient.medium_timeout)
response.size
end
def apply_gitattributes(revision)
request = Gitaly::ApplyGitattributesRequest.new(repository: @gitaly_repo, revision: encode_binary(revision))
GitalyClient.call(@storage, :repository_service, :apply_gitattributes, request, timeout: GitalyClient.fast_timeout)
Loading
Loading
Loading
Loading
@@ -215,6 +215,18 @@ describe Gitlab::Git::Repository, :seed_helper do
it { is_expected.to be < 2 }
end
 
describe '#object_directory_size' do
before do
allow(repository.gitaly_repository_client)
.to receive(:get_object_directory_size)
.and_return(2)
end
subject { repository.object_directory_size }
it { is_expected.to eq 2048 }
end
describe '#empty?' do
it { expect(repository).not_to be_empty }
end
Loading
Loading
Loading
Loading
@@ -73,6 +73,17 @@ describe Gitlab::GitalyClient::RepositoryService do
end
end
 
describe '#get_object_directory_size' do
it 'sends a get_object_directory_size message' do
expect_any_instance_of(Gitaly::RepositoryService::Stub)
.to receive(:get_object_directory_size)
.with(gitaly_request_with_path(storage_name, relative_path), kind_of(Hash))
.and_return(size: 0)
client.get_object_directory_size
end
end
describe '#apply_gitattributes' do
let(:revision) { 'master' }
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment