puppet-manila/spec/classes/manila_cron_db_purge_spec.rb
Takashi Kajinami 9be4e0e905 Enable DB purge cron job after database is initialized
The DB purge operation expects the target database is already
initialized. This change ensures db sync is completed before cron job
is enabled.

Closes-Bug #1955829
Change-Id: Ib3ed541ee0b3a513efe961ba6142a0cbb09ee61a
2021-12-27 23:55:42 +09:00

66 lines
2.0 KiB
Ruby

require 'spec_helper'
describe 'manila::cron::db_purge' do
let :params do
{
:minute => 1,
:hour => 0,
:monthday => '*',
:month => '*',
:weekday => '*',
:user => 'manila',
:age => '0',
:maxdelay => 0,
:destination => '/var/log/manila/manila-rowsflush.log'
}
end
shared_examples 'manila::cron::db_purge' do
context 'with required parameters' do
it { is_expected.to contain_cron('manila-manage db purge').with(
:command => "manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1",
:environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
:user => params[:user],
:minute => params[:minute],
:hour => params[:hour],
:monthday => params[:monthday],
:month => params[:month],
:weekday => params[:weekday],
:require => 'Anchor[manila::dbsync::end]'
)}
end
context 'with required parameters with max delay enabled' do
before :each do
params.merge!(
:maxdelay => 600
)
end
it { should contain_cron('manila-manage db purge').with(
:command => "sleep `expr ${RANDOM} \\% #{params[:maxdelay]}`; manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1",
:environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
:user => params[:user],
:minute => params[:minute],
:hour => params[:hour],
:monthday => params[:monthday],
:month => params[:month],
:weekday => params[:weekday],
:require => 'Anchor[manila::dbsync::end]'
)}
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_behaves_like 'manila::cron::db_purge'
end
end
end