From 6eb05e37b220b607ae37935ae03dc41df1fda7e7 Mon Sep 17 00:00:00 2001 From: ZhongShengping Date: Mon, 23 Nov 2020 09:27:52 +0800 Subject: [PATCH] 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: Ib6757e9145d1b0dc3cead9b24637019a93576c61 Closes-Bug: #1904962 --- manifests/db/sync.pp | 8 +++++++- .../notes/add_db_sync_timeout-9ecc1051400aa393.yaml | 3 +++ spec/classes/ceilometer_db_sync_spec.rb | 13 ++++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 releasenotes/notes/add_db_sync_timeout-9ecc1051400aa393.yaml diff --git a/manifests/db/sync.pp b/manifests/db/sync.pp index ef7166d0..0fa39261 100644 --- a/manifests/db/sync.pp +++ b/manifests/db/sync.pp @@ -9,8 +9,13 @@ # to append to the ceilometer-upgrade command. # Defaults to undef. # +# [*db_sync_timeout*] +# (Optional) Timeout for the execution of the db_sync +# Defaults to 300 +# class ceilometer::db::sync( - $extra_params = undef, + $extra_params = undef, + $db_sync_timeout = 300, ) { include ceilometer::deps @@ -23,6 +28,7 @@ class ceilometer::db::sync( refreshonly => true, try_sleep => 5, tries => 10, + timeout => $db_sync_timeout, logoutput => on_failure, subscribe => [ Anchor['ceilometer::install::end'], diff --git a/releasenotes/notes/add_db_sync_timeout-9ecc1051400aa393.yaml b/releasenotes/notes/add_db_sync_timeout-9ecc1051400aa393.yaml new file mode 100644 index 00000000..233445f6 --- /dev/null +++ b/releasenotes/notes/add_db_sync_timeout-9ecc1051400aa393.yaml @@ -0,0 +1,3 @@ +--- +features: + - Adds db_sync_timeout parameter to db sync. diff --git a/spec/classes/ceilometer_db_sync_spec.rb b/spec/classes/ceilometer_db_sync_spec.rb index b9f8c781..c96f79ea 100644 --- a/spec/classes/ceilometer_db_sync_spec.rb +++ b/spec/classes/ceilometer_db_sync_spec.rb @@ -14,6 +14,7 @@ describe 'ceilometer::db::sync' do :user => 'ceilometer', :try_sleep => 5, :tries => 10, + :timeout => 300, :logoutput => 'on_failure', :subscribe => ['Anchor[ceilometer::install::end]', 'Anchor[ceilometer::config::end]', @@ -23,20 +24,22 @@ describe 'ceilometer::db::sync' do ) end - describe 'overriding extra_params' do + describe 'overriding params' do let :params do { - :extra_params => '--config-file=/etc/ceilometer/ceilometer_01.conf', + :extra_params => '--config-file=/etc/ceilometer/ceilometer_01.conf', + :db_sync_timeout => 750, } end it { is_expected.to contain_exec('ceilometer-upgrade').with( - :command => 'ceilometer-upgrade --config-file=/etc/ceilometer/ceilometer_01.conf', - :path => '/usr/bin', - :user => 'ceilometer', + :command => 'ceilometer-upgrade --config-file=/etc/ceilometer/ceilometer_01.conf', + :path => '/usr/bin', + :user => 'ceilometer', :refreshonly => 'true', :try_sleep => 5, :tries => 10, + :timeout => 750, :logoutput => 'on_failure', :subscribe => ['Anchor[ceilometer::install::end]', 'Anchor[ceilometer::config::end]',