puppet-magnum/spec/classes/magnum_db_sync_spec.rb
ZhongShengping 0d0db77050 Allow db sync timeouts to be configurable
As Openstack projects continue to have longer database migration
chains, the Puppet default timeout of 300 seconds for an execution
is becoming too short a duration on some hardware, leading to timeouts.
As projects continue to add more migration scripts without pruning
the base, timeouts will continue to become more frequent unless
this time can be expanded.

Change-Id: I9abb1ed8ea8bdfc4bc4157ff47e86613077a9bd7
Closes-Bug: #1904962
2020-11-23 09:27:52 +08:00

94 lines
2.7 KiB
Ruby

require 'spec_helper'
describe 'magnum::db::sync' do
shared_examples_for 'magnum-dbsync' do
it { is_expected.to contain_class('magnum::deps') }
it 'runs magnum-db-sync' do
is_expected.to contain_exec('magnum-db-sync').with(
:command => 'magnum-db-manage --config-file /etc/magnum/magnum.conf upgrade head',
:path => '/usr/bin',
:user => 'magnum',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:timeout => 300,
:logoutput => 'on_failure',
:subscribe => ['Anchor[magnum::install::end]',
'Anchor[magnum::config::end]',
'Anchor[magnum::dbsync::begin]'],
:notify => 'Anchor[magnum::dbsync::end]',
:tag => 'openstack-db',
)
end
describe "overriding params" do
let :params do
{
:extra_params => '--config-file /etc/magnum/magnum.conf',
:db_sync_timeout => 750,
}
end
it {
is_expected.to contain_exec('magnum-db-sync').with(
:command => 'magnum-db-manage --config-file /etc/magnum/magnum.conf upgrade head',
:path => '/usr/bin',
:user => 'magnum',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:timeout => 750,
:logoutput => 'on_failure',
:subscribe => ['Anchor[magnum::install::end]',
'Anchor[magnum::config::end]',
'Anchor[magnum::dbsync::begin]'],
:notify => 'Anchor[magnum::dbsync::end]',
:tag => 'openstack-db',
)
}
end
describe "overriding exec_path" do
let :params do
{
:exec_path => '/opt/venvs/magnum/bin',
}
end
it {
is_expected.to contain_exec('magnum-db-sync').with(
:command => 'magnum-db-manage --config-file /etc/magnum/magnum.conf upgrade head',
:path => '/opt/venvs/magnum/bin',
:user => 'magnum',
:refreshonly => 'true',
:try_sleep => 5,
:tries => 10,
:logoutput => 'on_failure',
:subscribe => ['Anchor[magnum::install::end]',
'Anchor[magnum::config::end]',
'Anchor[magnum::dbsync::begin]'],
:notify => 'Anchor[magnum::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_configures 'magnum-dbsync'
end
end
end