Merge branch 'housekeeping_settings' into 'master'

Allow to use same periods for housekeeping tasks

Closes #34981

See merge request !13711
This commit is contained in:
Douwe Maan 2017-09-12 12:20:40 +00:00
commit 91e90ae78b
4 changed files with 27 additions and 7 deletions

View file

@ -137,11 +137,11 @@ class ApplicationSetting < ActiveRecord::Base
validates :housekeeping_full_repack_period,
presence: true,
numericality: { only_integer: true, greater_than: :housekeeping_incremental_repack_period }
numericality: { only_integer: true, greater_than_or_equal_to: :housekeeping_incremental_repack_period }
validates :housekeeping_gc_period,
presence: true,
numericality: { only_integer: true, greater_than: :housekeeping_full_repack_period }
numericality: { only_integer: true, greater_than_or_equal_to: :housekeeping_full_repack_period }
validates :terminal_max_session_time,
presence: true,

View file

@ -0,0 +1,6 @@
---
title: Allow to use same periods for different housekeeping tasks (effectively
skipping the lesser task)
merge_request: 13711
author: @cernvcs
type: added

View file

@ -167,19 +167,33 @@ describe ApplicationSetting do
context 'housekeeping settings' do
it { is_expected.not_to allow_value(0).for(:housekeeping_incremental_repack_period) }
it 'wants the full repack period to be longer than the incremental repack period' do
it 'wants the full repack period to be at least the incremental repack period' do
subject.housekeeping_incremental_repack_period = 2
subject.housekeeping_full_repack_period = 1
expect(subject).not_to be_valid
end
it 'wants the gc period to be longer than the full repack period' do
subject.housekeeping_full_repack_period = 2
subject.housekeeping_gc_period = 1
it 'wants the gc period to be at least the full repack period' do
subject.housekeeping_full_repack_period = 100
subject.housekeeping_gc_period = 90
expect(subject).not_to be_valid
end
it 'allows the same period for incremental repack and full repack, effectively skipping incremental repack' do
subject.housekeeping_incremental_repack_period = 2
subject.housekeeping_full_repack_period = 2
expect(subject).to be_valid
end
it 'allows the same period for full repack and gc, effectively skipping full repack' do
subject.housekeeping_full_repack_period = 100
subject.housekeeping_gc_period = 100
expect(subject).to be_valid
end
end
end

View file

@ -75,7 +75,7 @@ describe Projects::HousekeepingService do
end
end
it 'uses all three kinds of housekeeping we offer' do
it 'goes through all three housekeeping tasks, executing only the highest task when there is overlap' do
allow(subject).to receive(:try_obtain_lease).and_return(:the_uuid)
allow(subject).to receive(:lease_key).and_return(:the_lease_key)