diff --git a/manifests/api.pp b/manifests/api.pp index e724720f..7aa40ada 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -120,14 +120,6 @@ # (optional) Server name for RPC service # Defaults to $::os_service_default # -# [*retry_scheduler_initial_delay_seconds*] -# (optional) Seconds (float) to wait before starting retry scheduler -# Defaults to $::os_service_default -# -# [*retry_scheduler_periodic_interval_max_seconds*] -# (optional) Seconds (float) to wait between starting retry scheduler -# Defaults to $::os_service_default -# # [*enabled_secretstore_plugins*] # (optional) Enabled secretstore plugins. Multiple plugins # are defined in a list eg. ['store_crypto', dogtag_crypto'] @@ -259,6 +251,16 @@ # (Optional) Default page size for the 'limit' paging URL parameter. # Defaults to $::os_service_default # +# DEPRECATED PARAMETERS +# +# [*retry_scheduler_initial_delay_seconds*] +# (optional) Seconds (float) to wait before starting retry scheduler +# Defaults to undef +# +# [*retry_scheduler_periodic_interval_max_seconds*] +# (optional) Seconds (float) to wait between starting retry scheduler +# Defaults to undef +# class barbican::api ( $package_ensure = 'present', $client_package_ensure = 'present', @@ -284,8 +286,6 @@ class barbican::api ( $queue_topic = $::os_service_default, $queue_version = $::os_service_default, $queue_server_name = $::os_service_default, - $retry_scheduler_initial_delay_seconds = $::os_service_default, - $retry_scheduler_periodic_interval_max_seconds = $::os_service_default, $enabled_secretstore_plugins = $::os_service_default, $enabled_crypto_plugins = $::os_service_default, $enabled_secret_stores = 'simple_crypto', @@ -313,6 +313,9 @@ class barbican::api ( $max_request_body_size = $::os_service_default, $max_limit_paging = $::os_service_default, $default_limit_paging = $::os_service_default, + # DEPRECATED PARAMETERS + $retry_scheduler_initial_delay_seconds = undef, + $retry_scheduler_periodic_interval_max_seconds = undef, ) inherits barbican::params { include barbican::deps @@ -376,12 +379,15 @@ class barbican::api ( 'queue/server_name': value => $queue_server_name; } - # retry scheduler and max allowed secret options + if $retry_scheduler_initial_delay_seconds != undef or $retry_scheduler_periodic_interval_max_seconds != undef { + warning('The retry_scheduler_* parameters are deprecated. Use barbican::retry_scheduler instead') + include barbican::retry_scheduler + } + + # max allowed secret options barbican_config { - 'retry_scheduler/initial_delay_seconds': value => $retry_scheduler_initial_delay_seconds; - 'retry_scheduler/periodic_interval_max_seconds': value => $retry_scheduler_periodic_interval_max_seconds; - 'DEFAULT/max_allowed_secret_in_bytes': value => $max_allowed_secret_in_bytes; - 'DEFAULT/max_allowed_request_size_in_bytes': value => $max_allowed_request_size_in_bytes; + 'DEFAULT/max_allowed_secret_in_bytes': value => $max_allowed_secret_in_bytes; + 'DEFAULT/max_allowed_request_size_in_bytes': value => $max_allowed_request_size_in_bytes; } if $multiple_secret_stores_enabled and !is_service_default($enabled_secretstore_plugins) { diff --git a/manifests/retry_scheduler.pp b/manifests/retry_scheduler.pp new file mode 100644 index 00000000..a2a655b3 --- /dev/null +++ b/manifests/retry_scheduler.pp @@ -0,0 +1,30 @@ +# == Class: barbican::retry_scheduler +# +# Class to configure the retry scheduler service +# +# === Parameters +# +# [*initial_delay_seconds*] +# (optional) Seconds (float) to wait before starting retry scheduler +# Defaults to $::os_service_default +# +# [*periodic_interval_max_seconds*] +# (optional) Seconds (float) to wait between starting retry scheduler +# Defaults to $::os_service_default +# +class barbican::retry_scheduler ( + $initial_delay_seconds = $::os_service_default, + $periodic_interval_max_seconds = $::os_service_default, +){ + + include barbican::params + + barbican_config { + 'retry_scheduler/initial_delay_seconds': value => $initial_delay_seconds; + 'retry_scheduler/periodic_interval_max_seconds': value => $periodic_interval_max_seconds; + } + + # TODO(tkajinam): Currently NO DISTRO provides the pachage to install + # the retry daemon service. Once that is fixed, install + # a separate package and enable the service. +} diff --git a/releasenotes/notes/retry_scheduler-10734512c1553e64.yaml b/releasenotes/notes/retry_scheduler-10734512c1553e64.yaml new file mode 100644 index 00000000..2b76d501 --- /dev/null +++ b/releasenotes/notes/retry_scheduler-10734512c1553e64.yaml @@ -0,0 +1,12 @@ +--- +features: + - | + The new ``barbican::retry_scheduler`` class has been added. + +deprecations: + - | + The following parameters of the ``barbican`` class have been deprecated in + favor of the new ``barbican::retry_scheduler`` class. + + - ``retry_scheduler_initial_delay_seconds`` + - ``retry_scheduler_periodic_interval_max_seconds`` diff --git a/spec/classes/barbican_api_spec.rb b/spec/classes/barbican_api_spec.rb index 3bdfe200..4b86efd0 100644 --- a/spec/classes/barbican_api_spec.rb +++ b/spec/classes/barbican_api_spec.rb @@ -60,8 +60,6 @@ describe 'barbican::api' do :enabled_certificate_plugins => [''], :enabled_certificate_event_plugins => [''], :auth_strategy => 'keystone', - :retry_scheduler_initial_delay_seconds => '', - :retry_scheduler_periodic_interval_max_seconds => '', :service_name => platform_params[:service_name], :enable_proxy_headers_parsing => '', :max_request_body_size => '', @@ -107,8 +105,6 @@ describe 'barbican::api' do :enabled_crypto_plugins => ['simple_crypto'], :enabled_certificate_plugins => ['simple_certificate', 'dogtag'], :enabled_certificate_event_plugins => ['simple_certificate_event', 'foo_event'], - :retry_scheduler_initial_delay_seconds => 10, - :retry_scheduler_periodic_interval_max_seconds => 11, :max_allowed_secret_in_bytes => 20000, :max_allowed_request_size_in_bytes => 2000000, :enable_proxy_headers_parsing => false, @@ -210,13 +206,6 @@ describe 'barbican::api' do .with_value(param_hash[:multiple_secret_stores_enabled]) end - it 'configures retry scheduler' do - is_expected.to contain_barbican_config('retry_scheduler/initial_delay_seconds') \ - .with_value(param_hash[:retry_scheduler_initial_delay_seconds]) - is_expected.to contain_barbican_config('retry_scheduler/periodic_interval_max_seconds') \ - .with_value(param_hash[:retry_scheduler_periodic_interval_max_seconds]) - end - it 'resets the barbican_api pipeline' do is_expected.to contain_barbican_api_paste_ini('pipeline:barbican_api/pipeline')\ .with_value('cors http_proxy_to_wsgi unauthenticated-context apiapp') diff --git a/spec/classes/barbican_retry_scheduler_spec.rb b/spec/classes/barbican_retry_scheduler_spec.rb new file mode 100644 index 00000000..3f739130 --- /dev/null +++ b/spec/classes/barbican_retry_scheduler_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' + +describe 'barbican::retry_scheduler' do + let :params do + {} + end + + shared_examples 'barbican::retry_scheduler' do + context 'with defaults' do + it 'configures retry scheduler parameters' do + is_expected.to contain_barbican_config('retry_scheduler/initial_delay_seconds')\ + .with_value('') + is_expected.to contain_barbican_config('retry_scheduler/periodic_interval_max_seconds')\ + .with_value('') + end + end + + context 'with parameters set' do + before do + params.merge!({ + :initial_delay_seconds => 10, + :periodic_interval_max_seconds => 11, + }) + end + it 'configures retry scheduler parameters' do + is_expected.to contain_barbican_config('retry_scheduler/initial_delay_seconds')\ + .with_value(10) + is_expected.to contain_barbican_config('retry_scheduler/periodic_interval_max_seconds')\ + .with_value(11) + end + end + end + + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + let (:facts) do + facts.merge(OSDefaults.get_facts()) + end + + context "on #{os}" do + it_behaves_like 'barbican::retry_scheduler' + end + end +end