From b97d79e08dbc0bb94a56ded80d761dbe2c350554 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 3 Mar 2023 10:57:13 +0900 Subject: [PATCH] Configure ratelimit middleware regardless of auth strategy Technically ratelimit middleware can be used without keystone (for example if basic auth middleware is used). This allows configuring the middleware when a different auth method is used. This also makes sure the unused options are removed. Change-Id: I727b386a07a471598deafc0e29a48f25f8478fc2 --- manifests/api.pp | 15 ++++++++++----- spec/classes/manila_api_spec.rb | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/manifests/api.pp b/manifests/api.pp index ce966d2e..a757aeb8 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -153,12 +153,17 @@ server.") 'DEFAULT/auth_strategy': value => $auth_strategy; } include manila::keystone::authtoken + } - if ($ratelimits != undef) { - manila_api_paste_ini { - 'filter:ratelimit/paste.filter_factory': value => $ratelimits_factory; - 'filter:ratelimit/limits': value => $ratelimits; - } + if $ratelimits != undef { + manila_api_paste_ini { + 'filter:ratelimit/paste.filter_factory': value => $ratelimits_factory; + 'filter:ratelimit/limits': value => $ratelimits; + } + } else { + manila_api_paste_ini { + 'filter:ratelimit/paste.filter_factory': ensure => absent; + 'filter:ratelimit/limits': ensure => absent; } } } diff --git a/spec/classes/manila_api_spec.rb b/spec/classes/manila_api_spec.rb index 34463aac..469fb8ec 100644 --- a/spec/classes/manila_api_spec.rb +++ b/spec/classes/manila_api_spec.rb @@ -36,6 +36,8 @@ describe 'manila::api' do ) is_expected.to contain_manila_config('DEFAULT/default_share_type').with(:value => '') is_expected.to contain_manila_config('DEFAULT/osapi_share_workers').with(:value => '2') + is_expected.to contain_manila_api_paste_ini('filter:ratelimit/paste.filter_factory').with_ensure('absent') + is_expected.to contain_manila_api_paste_ini('filter:ratelimit/limits').with_ensure('absent') end it 'should run db sync' do @@ -142,6 +144,9 @@ describe 'manila::api' do end it { is_expected.to contain_class('manila::policy') } + it { is_expected.to contain_manila_api_paste_ini('filter:ratelimit/paste.filter_factory').with( + :value => 'manila.api.v1.limits:RateLimitingMiddleware.factory' + )} it { is_expected.to contain_manila_api_paste_ini('filter:ratelimit/limits').with( :value => '(GET, "*", .*, 100, MINUTE);(POST, "*", .*, 200, MINUTE)' )}