Files
puppet-nova/spec/classes/nova_cron_archive_deleted_rows_spec.rb
Carlos Camacho 919fc8160a Support --purge in Nova cleanup crons.
This patch adds the --purge parameter from
'nova-manage db' when executing the cleanup
tasks.

It will add the --purge parameter to the
archive_deleted_rows cron and will add an additional
cron to exclusively purge the shadow tables.

This feature is relevant due to the fact that we
were not purging the databases before running
upgrades, leading to the increase of the DB sizes.

Change-Id: I4ac0c9bd30463c546b141326b1293c78f845cf81
2018-03-20 15:43:47 +00:00

108 lines
3.6 KiB
Ruby

require 'spec_helper'
describe 'nova::cron::archive_deleted_rows' do
let :facts do
OSDefaults.get_facts({ :osfamily => 'Debian' })
end
let :params do
{ :minute => 1,
:hour => 0,
:monthday => '*',
:month => '*',
:weekday => '*',
:max_rows => '100',
:user => 'nova',
:until_complete => false,
:destination => '/var/log/nova/nova-rowsflush.log' }
end
context 'until_complete is false' do
it 'configures a cron without until_complete' do
is_expected.to contain_cron('nova-manage db archive_deleted_rows').with(
:command => "nova-manage db archive_deleted_rows --max_rows #{params[:max_rows]} >>#{params[:destination]} 2>&1",
:user => 'nova',
: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[nova::dbsync::end]',
)
end
end
context 'until_complete is true' do
before :each do
params.merge!(
:until_complete => true,
)
end
it 'configures a cron with until_complete' do
is_expected.to contain_cron('nova-manage db archive_deleted_rows').with(
:command => "nova-manage db archive_deleted_rows --max_rows #{params[:max_rows]} --until-complete >>#{params[:destination]} 2>&1",
:user => 'nova',
: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[nova::dbsync::end]',
)
end
end
context 'purge is true' do
before :each do
params.merge!(
:purge => true,
)
end
it 'configures a cron with purge' do
is_expected.to contain_cron('nova-manage db archive_deleted_rows').with(
:command => "nova-manage db archive_deleted_rows --purge --max_rows #{params[:max_rows]} >>#{params[:destination]} 2>&1",
:user => 'nova',
: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[nova::dbsync::end]',
)
end
end
context 'full purge' do
before :each do
params.merge!(
:purge => true,
:until_complete => true,
)
end
it 'configures a cron with all purge params' do
is_expected.to contain_cron('nova-manage db archive_deleted_rows').with(
:command => "nova-manage db archive_deleted_rows --purge --max_rows #{params[:max_rows]} --until-complete >>#{params[:destination]} 2>&1",
:user => 'nova',
: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[nova::dbsync::end]',
)
end
end
end