From 767d291f7a5dcb318771370c25faf4c06f977368 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: I1ef3bac653e5333feb6e2cf83025e6bb13eaebf4 Closes-Bug: #1904962 --- manifests/db/sync.pp | 10 ++++++++-- .../notes/add_db_sync_timeout-b07f8c72f30ec148.yaml | 3 +++ spec/classes/keystone_db_sync_spec.rb | 9 ++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/add_db_sync_timeout-b07f8c72f30ec148.yaml diff --git a/manifests/db/sync.pp b/manifests/db/sync.pp index f1bb758a0..eb3107cd0 100644 --- a/manifests/db/sync.pp +++ b/manifests/db/sync.pp @@ -14,9 +14,14 @@ # (Optional) Specify the keystone system user to be used with keystone-manage. # Defaults to $::keystone::params::keystone_user # +# [*db_sync_timeout*] +# (Optional) Timeout for the execution of the db_sync +# Defaults to 300 +# class keystone::db::sync( - $extra_params = undef, - $keystone_user = $::keystone::params::keystone_user, + $extra_params = undef, + $keystone_user = $::keystone::params::keystone_user, + $db_sync_timeout = 300, ) inherits keystone::params { include keystone::deps @@ -28,6 +33,7 @@ class keystone::db::sync( refreshonly => true, try_sleep => 5, tries => 10, + timeout => $db_sync_timeout, logoutput => on_failure, subscribe => [ Anchor['keystone::install::end'], diff --git a/releasenotes/notes/add_db_sync_timeout-b07f8c72f30ec148.yaml b/releasenotes/notes/add_db_sync_timeout-b07f8c72f30ec148.yaml new file mode 100644 index 000000000..233445f68 --- /dev/null +++ b/releasenotes/notes/add_db_sync_timeout-b07f8c72f30ec148.yaml @@ -0,0 +1,3 @@ +--- +features: + - Adds db_sync_timeout parameter to db sync. diff --git a/spec/classes/keystone_db_sync_spec.rb b/spec/classes/keystone_db_sync_spec.rb index 5286283e5..87608740a 100644 --- a/spec/classes/keystone_db_sync_spec.rb +++ b/spec/classes/keystone_db_sync_spec.rb @@ -13,6 +13,7 @@ describe 'keystone::db::sync' do :user => 'keystone', :try_sleep => 5, :tries => 10, + :timeout => 300, :refreshonly => true, :logoutput => 'on_failure', :subscribe => ['Anchor[keystone::install::end]', @@ -24,11 +25,12 @@ describe 'keystone::db::sync' do } end - describe "overriding extra_params and keystone user" do + describe "overriding params" do let :params do { - :extra_params => '--config-file /etc/keystone/keystone.conf', - :keystone_user => 'test_user', + :extra_params => '--config-file /etc/keystone/keystone.conf', + :keystone_user => 'test_user', + :db_sync_timeout => 750, } end @@ -39,6 +41,7 @@ describe 'keystone::db::sync' do :user => 'test_user', :try_sleep => 5, :tries => 10, + :timeout => 750, :refreshonly => true, :logoutput => 'on_failure', :subscribe => ['Anchor[keystone::install::end]',