diff --git a/manifests/api.pp b/manifests/api.pp index 86f0ecf..defb24f 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -40,15 +40,26 @@ # to make cloudkitty-api be a web app using apache mod_wsgi. # Defaults to 'httpd' # +# [*enable_proxy_headers_parsing*] +# (Optional) Enable paste middleware to handle SSL requests through +# HTTPProxyToWSGI middleware. +# Defaults to $::os_service_default. +# +# [*max_request_body_size*] +# (Optional) Set max request body size +# Defaults to $::os_service_default. +# class cloudkitty::api ( - $package_ensure = 'present', - $manage_service = true, - $enabled = true, - $host_ip = $::os_service_default, - $port = $::os_service_default, - $pecan_debug = $::os_service_default, - $sync_db = true, - $service_name = 'httpd', + $package_ensure = 'present', + $manage_service = true, + $enabled = true, + $host_ip = $::os_service_default, + $port = $::os_service_default, + $pecan_debug = $::os_service_default, + $sync_db = true, + $service_name = 'httpd', + $enable_proxy_headers_parsing = $::os_service_default, + $max_request_body_size = $::os_service_default, ) { include cloudkitty @@ -104,4 +115,9 @@ class cloudkitty::api ( 'api/pecan_debug': value => $pecan_debug; } + oslo::middleware { 'cloudkitty_config': + enable_proxy_headers_parsing => $enable_proxy_headers_parsing, + max_request_body_size => $max_request_body_size, + } + } diff --git a/releasenotes/notes/oslo-middleware-opts-dc5cb5545dcf3046.yaml b/releasenotes/notes/oslo-middleware-opts-dc5cb5545dcf3046.yaml new file mode 100644 index 0000000..b844fe2 --- /dev/null +++ b/releasenotes/notes/oslo-middleware-opts-dc5cb5545dcf3046.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + The following parameters have been added to the ``cloudkitty::api`` class, + to support parameters of oslo.middleware. + + - ``enable_proxy_headers_parsing`` + - ``max_request_body_size`` diff --git a/spec/classes/cloudkitty_api_spec.rb b/spec/classes/cloudkitty_api_spec.rb index 4d8481a..8d94835 100644 --- a/spec/classes/cloudkitty_api_spec.rb +++ b/spec/classes/cloudkitty_api_spec.rb @@ -3,11 +3,13 @@ require 'spec_helper' describe 'cloudkitty::api' do let :params do - { :enabled => true, - :manage_service => true, - :host_ip => '127.0.0.1', - :port => '8889', - :pecan_debug => false } + { :enabled => true, + :manage_service => true, + :host_ip => '127.0.0.1', + :port => '8889', + :pecan_debug => false, + :enable_proxy_headers_parsing => true, + :max_request_body_size => 102400,} end let :pre_condition do @@ -29,6 +31,10 @@ describe 'cloudkitty::api' do it { is_expected.to contain_cloudkitty_config('api/host_ip').with_value( params[:host_ip] ) } it { is_expected.to contain_cloudkitty_config('api/port').with_value( params[:port] ) } it { is_expected.to contain_cloudkitty_config('api/pecan_debug').with_value( params[:pecan_debug] ) } + it { is_expected.to contain_oslo__middleware('cloudkitty_config').with( + :enable_proxy_headers_parsing => params[:enable_proxy_headers_parsing], + :max_request_body_size => params[:max_request_body_size], + ) } it 'installs cloudkitty-api package' do is_expected.to contain_package('cloudkitty-api').with(