diff --git a/manifests/db.pp b/manifests/db.pp index 64951101..fd16bd4b 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -33,6 +33,11 @@ # If set, use this value for max_overflow with sqlalchemy. # (Optional) Defaults to $::os_service_default # +# [*database_db_max_retries*] +# (Optional) Maximum retries in case of connection error or deadlock error +# before error is raised. Set to -1 to specify an infinite retry count. +# Defaults to $::os_service_default +# class ironic::db ( $database_connection = 'sqlite:////var/lib/ironic/ovs.sqlite', $database_idle_timeout = $::os_service_default, @@ -41,6 +46,7 @@ class ironic::db ( $database_min_pool_size = $::os_service_default, $database_max_pool_size = $::os_service_default, $database_max_overflow = $::os_service_default, + $database_db_max_retries = $::os_service_default, ) { # NOTE(spredzy): In order to keep backward compatibility we rely on the pick function @@ -64,6 +70,7 @@ class ironic::db ( max_retries => $database_max_retries_real, retry_interval => $database_retry_interval_real, max_overflow => $database_max_overflow_real, + db_max_retries => $database_db_max_retries, } } diff --git a/spec/classes/ironic_db_spec.rb b/spec/classes/ironic_db_spec.rb index b4bbf6b8..56875c87 100644 --- a/spec/classes/ironic_db_spec.rb +++ b/spec/classes/ironic_db_spec.rb @@ -13,6 +13,7 @@ describe 'ironic::db' do it { is_expected.to contain_ironic_config('database/max_overflow').with_value('') } it { is_expected.to contain_ironic_config('database/max_retries').with_value('') } it { is_expected.to contain_ironic_config('database/retry_interval').with_value('') } + it { is_expected.to contain_ironic_config('database/db_max_retries').with_value('') } end @@ -24,7 +25,9 @@ describe 'ironic::db' do :database_max_pool_size => '21', :database_max_retries => '11', :database_max_overflow => '21', - :database_retry_interval => '11', } + :database_retry_interval => '11', + :database_db_max_retries => '-1', + } end it { is_expected.to contain_ironic_config('database/connection').with_value('mysql+pymysql://ironic:ironic@localhost/ironic').with_secret(true) } @@ -34,6 +37,7 @@ describe 'ironic::db' do it { is_expected.to contain_ironic_config('database/max_pool_size').with_value('21') } it { is_expected.to contain_ironic_config('database/max_overflow').with_value('21') } it { is_expected.to contain_ironic_config('database/retry_interval').with_value('11') } + it { is_expected.to contain_ironic_config('database/db_max_retries').with_value('-1') } end