From 5722f53b397a50a08a0ecd4fb63dc57bf81eb3bd 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: Ic4494c93ebb0449d16d5db6f780b3971a17b038a Closes-Bug: #1904962 --- manifests/db/sync.pp | 8 +++++- .../add_db_sync_timeout-897cabe1c636bffd.yaml | 3 +++ spec/classes/cloudkitty_db_sync_spec.rb | 27 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/add_db_sync_timeout-897cabe1c636bffd.yaml diff --git a/manifests/db/sync.pp b/manifests/db/sync.pp index de77fb0..70c8880 100644 --- a/manifests/db/sync.pp +++ b/manifests/db/sync.pp @@ -8,8 +8,13 @@ # to the cloudkitty-dbsync command. # Defaults to undef # +# [*db_sync_timeout*] +# (Optional) Timeout for the execution of the db_sync +# Defaults to 300 +# class cloudkitty::db::sync( - $extra_params = undef, + $extra_params = undef, + $db_sync_timeout = 300, ) { include cloudkitty::deps @@ -21,6 +26,7 @@ class cloudkitty::db::sync( refreshonly => true, try_sleep => 5, tries => 10, + timeout => $db_sync_timeout, logoutput => on_failure, subscribe => [ Anchor['cloudkitty::install::end'], diff --git a/releasenotes/notes/add_db_sync_timeout-897cabe1c636bffd.yaml b/releasenotes/notes/add_db_sync_timeout-897cabe1c636bffd.yaml new file mode 100644 index 0000000..233445f --- /dev/null +++ b/releasenotes/notes/add_db_sync_timeout-897cabe1c636bffd.yaml @@ -0,0 +1,3 @@ +--- +features: + - Adds db_sync_timeout parameter to db sync. diff --git a/spec/classes/cloudkitty_db_sync_spec.rb b/spec/classes/cloudkitty_db_sync_spec.rb index db29420..5f59402 100644 --- a/spec/classes/cloudkitty_db_sync_spec.rb +++ b/spec/classes/cloudkitty_db_sync_spec.rb @@ -14,6 +14,7 @@ describe 'cloudkitty::db::sync' do :user => 'cloudkitty', :try_sleep => 5, :tries => 10, + :timeout => 300, :logoutput => 'on_failure', :subscribe => ['Anchor[cloudkitty::install::end]', 'Anchor[cloudkitty::config::end]', @@ -23,6 +24,32 @@ describe 'cloudkitty::db::sync' do ) end + describe "overriding db_sync_timeout" do + let :params do + { + :db_sync_timeout => 750, + } + end + + it { + is_expected.to contain_exec('cloudkitty-db-sync').with( + :command => 'cloudkitty-dbsync upgrade ', + :path => [ '/bin', '/usr/bin', ], + :refreshonly => 'true', + :user => 'cloudkitty', + :try_sleep => 5, + :tries => 10, + :timeout => 750, + :logoutput => 'on_failure', + :subscribe => ['Anchor[cloudkitty::install::end]', + 'Anchor[cloudkitty::config::end]', + 'Anchor[cloudkitty::dbsync::begin]'], + :notify => 'Anchor[cloudkitty::dbsync::end]', + :tag => 'openstack-db', + ) + } + end + end on_supported_os({