summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2018-12-12 13:44:40 +0000
committerNick Thomas <nick@gitlab.com>2018-12-12 13:44:40 +0000
commit460eb38ce53acff9e4db003eaffa889e6ff40987 (patch)
tree63b00d4b9b4baeac61985cc2f73b1541845548bb
parentb9ccf013bab3f7ec25b70d83f37b1b0923302379 (diff)
parent9abb980030d60f197c3e6ce467304c74b6e8c8f3 (diff)
downloadgitlab-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.rb6
-rw-r--r--spec/models/project_spec.rb23
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 }