From 9abb980030d60f197c3e6ce467304c74b6e8c8f3 Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Wed, 12 Dec 2018 13:44:40 +0000 Subject: Fix creation query for pools repository --- app/models/project.rb | 6 +++--- 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 } -- cgit v1.2.1