Files
puppet-glance/spec/classes/glance_cache_pruner_spec.rb
Takashi Kajinami 21c95657ef Add sleep in cache cron jobs
... so that users can avoid executing the same cron command at the same
time in multiple nodes.

Technically this can be done without this change by setting a different
cron job schedule in each node but it requires complicated parameter
setting.

Change-Id: I596879d5d46f23e54fe344d5bf93a57837a6d287
2022-06-20 22:26:06 +09:00

74 lines
2.0 KiB
Ruby

require 'spec_helper'
describe 'glance::cache::pruner' do
shared_examples_for 'glance cache pruner' do
context 'when default parameters' do
it 'configures a cron' do
is_expected.to contain_cron('glance-cache-pruner').with(
:command => 'glance-cache-pruner ',
:environment => 'PATH=/bin:/usr/bin:/usr/sbin',
:user => 'glance',
:minute => '*/30',
:hour => '*',
:monthday => '*',
:month => '*',
:weekday => '*'
)
is_expected.to contain_cron('glance-cache-pruner').that_requires(
'Anchor[glance::config::end]'
)
end
end
context 'when overriding parameters' do
let :params do
{
:minute => 59,
:hour => 23,
:monthday => '1',
:month => '2',
:weekday => '3',
:command_options => '--config-dir /etc/glance/',
:maxdelay => 3600,
}
end
it 'configures a cron' do
is_expected.to contain_cron('glance-cache-pruner').with(
:command => 'sleep `expr ${RANDOM} \\% 3600`; glance-cache-pruner --config-dir /etc/glance/',
:environment => 'PATH=/bin:/usr/bin:/usr/sbin',
:user => 'glance',
:minute => 59,
:hour => 23,
:monthday => '1',
:month => '2',
:weekday => '3'
)
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
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{ :api_package_name => 'glance-api' }
when 'RedHat'
{ :api_package_name => 'openstack-glance' }
end
end
it_configures 'glance cache pruner'
end
end
end