diff --git a/manifests/db.pp b/manifests/db.pp index 72a413c1..130bd173 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -8,7 +8,7 @@ # Url used to connect to database. # (Optional) Defaults to "sqlite:////var/lib/barbican/barbican.sqlite". # -# [*database_idle_timeout*] +# [*database_connection_recycle_time*] # Timeout when db connections should be reaped. # (Optional) Defaults to $::os_service_default # @@ -52,40 +52,54 @@ # (Optional) If set, use this value for pool_timeout with SQLAlchemy. # Defaults to $::os_service_default # +# DEPRECATED PARAMETERS +# +# [*database_idle_timeout*] +# Timeout when db connections should be reaped. +# Defaults to undef. +# class barbican::db ( - $database_connection = 'sqlite:////var/lib/barbican/barbican.sqlite', - $database_idle_timeout = $::os_service_default, - $database_min_pool_size = $::os_service_default, - $database_max_pool_size = $::os_service_default, - $database_max_retries = $::os_service_default, - $database_retry_interval = $::os_service_default, - $database_max_overflow = $::os_service_default, - $database_pool_size = $::os_service_default, - $database_db_max_retries = $::os_service_default, - $database_pool_timeout = $::os_service_default, + $database_connection = 'sqlite:////var/lib/barbican/barbican.sqlite', + $database_connection_recycle_time = $::os_service_default, + $database_min_pool_size = $::os_service_default, + $database_max_pool_size = $::os_service_default, + $database_max_retries = $::os_service_default, + $database_retry_interval = $::os_service_default, + $database_max_overflow = $::os_service_default, + $database_pool_size = $::os_service_default, + $database_db_max_retries = $::os_service_default, + $database_pool_timeout = $::os_service_default, + # DEPRECATED PARAMETERS + $database_idle_timeout = undef, ) { include ::barbican::deps + if $database_idle_timeout { + warning('The database_idle_timeout parameter is deprecated. Please use \ +database_connection_recycle_time instead.') + } + $database_connection_recycle_time_real = pick($database_idle_timeout, $database_connection_recycle_time) + validate_legacy(Oslo::Dbconn, 'validate_re', $database_connection, ['^(sqlite|mysql(\+pymysql)?|postgresql):\/\/(\S+:\S+@\S+\/\S+)?']) oslo::db { 'barbican_config': - connection => $database_connection, - idle_timeout => $database_idle_timeout, - min_pool_size => $database_min_pool_size, - max_pool_size => $database_max_pool_size, - max_retries => $database_max_retries, - retry_interval => $database_retry_interval, - max_overflow => $database_max_overflow, - db_max_retries => $database_db_max_retries, - pool_timeout => $database_pool_timeout, + connection => $database_connection, + connection_recycle_time => $database_connection_recycle_time_real, + min_pool_size => $database_min_pool_size, + max_pool_size => $database_max_pool_size, + max_retries => $database_max_retries, + retry_interval => $database_retry_interval, + max_overflow => $database_max_overflow, + db_max_retries => $database_db_max_retries, + pool_timeout => $database_pool_timeout, } # TODO(aschultz): Remove this config once barbican properly leverages oslo barbican_config { 'DEFAULT/sql_connection': value => $database_connection, secret => true; - 'DEFAULT/sql_idle_timeout': value => $database_idle_timeout; + 'DEFAULT/sql_idle_timeout': value => $database_connection_recycle_time_real; 'DEFAULT/sql_pool_size': value => $database_pool_size; 'DEFAULT/sql_pool_max_overflow': value => $database_max_overflow; } diff --git a/releasenotes/notes/deprecate_idle_timeout_parameter-8da00e01fc00d947.yaml b/releasenotes/notes/deprecate_idle_timeout_parameter-8da00e01fc00d947.yaml new file mode 100644 index 00000000..09e76c41 --- /dev/null +++ b/releasenotes/notes/deprecate_idle_timeout_parameter-8da00e01fc00d947.yaml @@ -0,0 +1,4 @@ +--- +deprecations: + - database_idle_timeout is deprecated and will be removed in a future + release. Please use database_connection_recycle_time instead. diff --git a/spec/classes/barbican_db_spec.rb b/spec/classes/barbican_db_spec.rb index f79081ee..c49b8f71 100644 --- a/spec/classes/barbican_db_spec.rb +++ b/spec/classes/barbican_db_spec.rb @@ -25,15 +25,15 @@ describe 'barbican::db' do it { should contain_class('barbican::deps') } it { should contain_oslo__db('barbican_config').with( - :db_max_retries => '', - :connection => 'sqlite:////var/lib/barbican/barbican.sqlite', - :idle_timeout => '', - :min_pool_size => '', - :max_pool_size => '', - :max_retries => '', - :retry_interval => '', - :max_overflow => '', - :pool_timeout => '', + :db_max_retries => '', + :connection => 'sqlite:////var/lib/barbican/barbican.sqlite', + :connection_recycle_time => '', + :min_pool_size => '', + :max_pool_size => '', + :max_retries => '', + :retry_interval => '', + :max_overflow => '', + :pool_timeout => '', )} # TODO(aschultz): remove once oslo is properly used @@ -46,31 +46,31 @@ describe 'barbican::db' do context 'with specific parameters' do let :params do { - :database_connection => 'mysql+pymysql://barbican:barbican@localhost/barbican', - :database_idle_timeout => '3601', - :database_min_pool_size => '2', - :database_max_pool_size => '11', - :database_max_retries => '11', - :database_retry_interval => '11', - :database_max_overflow => '11', - :database_pool_timeout => '11', - :database_pool_size => '2', - :database_db_max_retries => '-1', + :database_connection => 'mysql+pymysql://barbican:barbican@localhost/barbican', + :database_connection_recycle_time => '3601', + :database_min_pool_size => '2', + :database_max_pool_size => '11', + :database_max_retries => '11', + :database_retry_interval => '11', + :database_max_overflow => '11', + :database_pool_timeout => '11', + :database_pool_size => '2', + :database_db_max_retries => '-1', } end it { should contain_class('barbican::deps') } it { should contain_oslo__db('barbican_config').with( - :db_max_retries => '-1', - :connection => 'mysql+pymysql://barbican:barbican@localhost/barbican', - :idle_timeout => '3601', - :min_pool_size => '2', - :max_pool_size => '11', - :max_retries => '11', - :retry_interval => '11', - :max_overflow => '11', - :pool_timeout => '11', + :db_max_retries => '-1', + :connection => 'mysql+pymysql://barbican:barbican@localhost/barbican', + :connection_recycle_time => '3601', + :min_pool_size => '2', + :max_pool_size => '11', + :max_retries => '11', + :retry_interval => '11', + :max_overflow => '11', + :pool_timeout => '11', )} # TODO(aschultz) remove once oslo is properly used