From 75ff328e89c2e975f8eea12f6ed8d4e9a07f45a4 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: Ia14ad6a2ca9c200867ee5760ca4d72d747d27ad5 Closes-Bug: #1904962 --- manifests/db/sync.pp | 8 +++++- .../add_db_sync_timeout-8af152d9dc2ec983.yaml | 3 +++ spec/classes/aodh_db_sync_spec.rb | 27 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/add_db_sync_timeout-8af152d9dc2ec983.yaml diff --git a/manifests/db/sync.pp b/manifests/db/sync.pp index 7382bb53..d58984e0 100644 --- a/manifests/db/sync.pp +++ b/manifests/db/sync.pp @@ -5,8 +5,13 @@ # (Optional) User to run dbsync command. # Defaults to 'aodh' # +# [*db_sync_timeout*] +# (Optional) Timeout for the execution of the db_sync +# Defaults to 300 +# class aodh::db::sync ( - $user = 'aodh', + $user = 'aodh', + $db_sync_timeout = 300, ){ include aodh::deps @@ -18,6 +23,7 @@ class aodh::db::sync ( user => $user, try_sleep => 5, tries => 10, + timeout => $db_sync_timeout, logoutput => on_failure, subscribe => [ Anchor['aodh::install::end'], diff --git a/releasenotes/notes/add_db_sync_timeout-8af152d9dc2ec983.yaml b/releasenotes/notes/add_db_sync_timeout-8af152d9dc2ec983.yaml new file mode 100644 index 00000000..233445f6 --- /dev/null +++ b/releasenotes/notes/add_db_sync_timeout-8af152d9dc2ec983.yaml @@ -0,0 +1,3 @@ +--- +features: + - Adds db_sync_timeout parameter to db sync. diff --git a/spec/classes/aodh_db_sync_spec.rb b/spec/classes/aodh_db_sync_spec.rb index 73c00a95..79aff405 100644 --- a/spec/classes/aodh_db_sync_spec.rb +++ b/spec/classes/aodh_db_sync_spec.rb @@ -14,6 +14,7 @@ describe 'aodh::db::sync' do :user => 'aodh', :try_sleep => 5, :tries => 10, + :timeout => 300, :logoutput => 'on_failure', :subscribe => ['Anchor[aodh::install::end]', 'Anchor[aodh::config::end]', @@ -23,6 +24,32 @@ describe 'aodh::db::sync' do ) end + describe "overriding db_sync_timeout" do + let :params do + { + :db_sync_timeout => 750, + } + end + + it { + is_expected.to contain_exec('aodh-db-sync').with( + :command => 'aodh-dbsync --config-file /etc/aodh/aodh.conf', + :path => '/usr/bin', + :refreshonly => 'true', + :user => 'aodh', + :try_sleep => 5, + :tries => 10, + :timeout => 750, + :logoutput => 'on_failure', + :subscribe => ['Anchor[aodh::install::end]', + 'Anchor[aodh::config::end]', + 'Anchor[aodh::dbsync::begin]'], + :notify => 'Anchor[aodh::dbsync::end]', + :tag => 'openstack-db', + ) + } + end + end on_supported_os({