diff options
author | Nick Thomas <nick@gitlab.com> | 2018-12-12 13:44:40 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-12-12 13:44:40 +0000 |
commit | 460eb38ce53acff9e4db003eaffa889e6ff40987 (patch) | |
tree | 63b00d4b9b4baeac61985cc2f73b1541845548bb | |
parent | b9ccf013bab3f7ec25b70d83f37b1b0923302379 (diff) | |
parent | 9abb980030d60f197c3e6ce467304c74b6e8c8f3 (diff) | |
download | gitlab-ce-460eb38ce53acff9e4db003eaffa889e6ff40987.tar.gz |
Merge branch 'zj-fix-pool-creation' into 'master'
Fix creation query for pools repository
See merge request gitlab-org/gitlab-ce!23729
-rw-r--r-- | app/models/project.rb | 6 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 23 |
2 files changed, 26 insertions, 3 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 075c07f5c8e..9e65f7bdbca 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2014,12 +2014,12 @@ class Project < ActiveRecord::Base def create_new_pool_repository pool = begin - create_or_find_pool_repository!(shard: Shard.by_name(repository_storage), source_project: self) + create_pool_repository!(shard: Shard.by_name(repository_storage), source_project: self) rescue ActiveRecord::RecordNotUnique - retry + pool_repository(true) end - pool.schedule + pool.schedule unless pool.scheduled? pool end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 9e5b06b745a..5e63f14b720 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -4102,6 +4102,29 @@ describe Project do end end + describe '#object_pool_params' do + let(:project) { create(:project, :repository, :public) } + + subject { project.object_pool_params } + + before do + stub_application_setting(hashed_storage_enabled: true) + end + + context 'when the objects cannot be pooled' do + let(:project) { create(:project, :repository, :private) } + + it { is_expected.to be_empty } + end + + context 'when a pool is created' do + it 'returns that pool repository' do + expect(subject).not_to be_empty + expect(subject[:pool_repository]).to be_persisted + end + end + end + describe '#git_objects_poolable?' do subject { project } |