puppet-cinder/spec/classes/cinder_cron_db_purge_spec.rb
Takashi Kajinami 71349de023 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: I389d966623894c23fe596bec9e4942f3beee8303
2021-12-27 23:57:57 +09:00

66 lines
2.0 KiB
Ruby

require 'spec_helper'
describe 'cinder::cron::db_purge' do
let :params do
{
:minute => 1,
:hour => 0,
:monthday => '*',
:month => '*',
:weekday => '*',
:user => 'cinder',
:age => '30',
:maxdelay => 0,
:destination => '/var/log/cinder/cinder-rowsflush.log'
}
end
shared_examples 'cinder::cron::db_purge' do
context 'with required parameters' do
it { is_expected.to contain_cron('cinder-manage db purge').with(
:command => "cinder-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[cinder::dbsync::end]'
)}
end
context 'with required parameters with max delay enabled' do
before :each do
params.merge!(
:maxdelay => 600
)
end
it { should contain_cron('cinder-manage db purge').with(
:command => "sleep `expr ${RANDOM} \\% #{params[:maxdelay]}`; cinder-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[cinder::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 'cinder::cron::db_purge'
end
end
end