apache+mod_wsgi: Allow customizing wsgi process options
This change adds the missing capability to customize wsgi process options, which is supported by the other modules. Change-Id: Ia5cff022c1ad4f6402f2e9d4cd039059b176cd93
This commit is contained in:
parent
497d0a4e45
commit
a945887286
|
@ -98,6 +98,14 @@
|
||||||
# (Optional) Sends the virtualhost error log messages to syslog.
|
# (Optional) Sends the virtualhost error log messages to syslog.
|
||||||
# Defaults to undef.
|
# Defaults to undef.
|
||||||
#
|
#
|
||||||
|
# [*custom_wsgi_process_options*]
|
||||||
|
# (Optional) gives you the opportunity to add custom process options or to
|
||||||
|
# overwrite the default options for the WSGI main process.
|
||||||
|
# eg. to use a virtual python environment for the WSGI process
|
||||||
|
# you could set it to:
|
||||||
|
# { python-path => '/my/python/virtualenv' }
|
||||||
|
# Defaults to {}
|
||||||
|
#
|
||||||
# [*headers*]
|
# [*headers*]
|
||||||
# (optional) Headers for the vhost.
|
# (optional) Headers for the vhost.
|
||||||
# Defaults to undef
|
# Defaults to undef
|
||||||
|
@ -118,32 +126,33 @@
|
||||||
# class { 'placement::wsgi::apache': }
|
# class { 'placement::wsgi::apache': }
|
||||||
#
|
#
|
||||||
class placement::wsgi::apache (
|
class placement::wsgi::apache (
|
||||||
$servername = $::fqdn,
|
$servername = $::fqdn,
|
||||||
$api_port = 8778,
|
$api_port = 8778,
|
||||||
$bind_host = undef,
|
$bind_host = undef,
|
||||||
$path = '/',
|
$path = '/',
|
||||||
$ssl = false,
|
$ssl = false,
|
||||||
$workers = $::os_workers,
|
$workers = $::os_workers,
|
||||||
$priority = 10,
|
$priority = 10,
|
||||||
$threads = 1,
|
$threads = 1,
|
||||||
$wsgi_process_display_name = undef,
|
$wsgi_process_display_name = undef,
|
||||||
$ssl_cert = undef,
|
$ssl_cert = undef,
|
||||||
$ssl_key = undef,
|
$ssl_key = undef,
|
||||||
$ssl_chain = undef,
|
$ssl_chain = undef,
|
||||||
$ssl_ca = undef,
|
$ssl_ca = undef,
|
||||||
$ssl_crl_path = undef,
|
$ssl_crl_path = undef,
|
||||||
$ssl_crl = undef,
|
$ssl_crl = undef,
|
||||||
$ssl_certs_dir = undef,
|
$ssl_certs_dir = undef,
|
||||||
$access_log_file = undef,
|
$access_log_file = undef,
|
||||||
$access_log_pipe = undef,
|
$access_log_pipe = undef,
|
||||||
$access_log_syslog = undef,
|
$access_log_syslog = undef,
|
||||||
$access_log_format = undef,
|
$access_log_format = undef,
|
||||||
$error_log_file = undef,
|
$error_log_file = undef,
|
||||||
$error_log_pipe = undef,
|
$error_log_pipe = undef,
|
||||||
$error_log_syslog = undef,
|
$error_log_syslog = undef,
|
||||||
$headers = undef,
|
$custom_wsgi_process_options = {},
|
||||||
$request_headers = undef,
|
$headers = undef,
|
||||||
$vhost_custom_fragment = undef,
|
$request_headers = undef,
|
||||||
|
$vhost_custom_fragment = undef,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include placement::deps
|
include placement::deps
|
||||||
|
@ -152,39 +161,40 @@ class placement::wsgi::apache (
|
||||||
Anchor['placement::install::end'] -> Class['apache']
|
Anchor['placement::install::end'] -> Class['apache']
|
||||||
|
|
||||||
::openstacklib::wsgi::apache { 'placement_wsgi':
|
::openstacklib::wsgi::apache { 'placement_wsgi':
|
||||||
bind_host => $bind_host,
|
bind_host => $bind_host,
|
||||||
bind_port => $api_port,
|
bind_port => $api_port,
|
||||||
group => 'placement',
|
group => 'placement',
|
||||||
path => $path,
|
path => $path,
|
||||||
priority => $priority,
|
priority => $priority,
|
||||||
servername => $servername,
|
servername => $servername,
|
||||||
ssl => $ssl,
|
ssl => $ssl,
|
||||||
ssl_ca => $ssl_ca,
|
ssl_ca => $ssl_ca,
|
||||||
ssl_cert => $ssl_cert,
|
ssl_cert => $ssl_cert,
|
||||||
ssl_certs_dir => $ssl_certs_dir,
|
ssl_certs_dir => $ssl_certs_dir,
|
||||||
ssl_chain => $ssl_chain,
|
ssl_chain => $ssl_chain,
|
||||||
ssl_crl => $ssl_crl,
|
ssl_crl => $ssl_crl,
|
||||||
ssl_crl_path => $ssl_crl_path,
|
ssl_crl_path => $ssl_crl_path,
|
||||||
ssl_key => $ssl_key,
|
ssl_key => $ssl_key,
|
||||||
threads => $threads,
|
threads => $threads,
|
||||||
user => 'placement',
|
user => 'placement',
|
||||||
vhost_custom_fragment => $vhost_custom_fragment,
|
vhost_custom_fragment => $vhost_custom_fragment,
|
||||||
workers => $workers,
|
workers => $workers,
|
||||||
wsgi_daemon_process => 'placement-api',
|
wsgi_daemon_process => 'placement-api',
|
||||||
wsgi_process_display_name => $wsgi_process_display_name,
|
wsgi_process_display_name => $wsgi_process_display_name,
|
||||||
wsgi_process_group => 'placement-api',
|
wsgi_process_group => 'placement-api',
|
||||||
wsgi_script_dir => $::placement::params::wsgi_script_path,
|
wsgi_script_dir => $::placement::params::wsgi_script_path,
|
||||||
wsgi_script_file => 'placement-api',
|
wsgi_script_file => 'placement-api',
|
||||||
wsgi_script_source => $::placement::params::wsgi_script_source,
|
wsgi_script_source => $::placement::params::wsgi_script_source,
|
||||||
headers => $headers,
|
headers => $headers,
|
||||||
request_headers => $request_headers,
|
request_headers => $request_headers,
|
||||||
access_log_file => $access_log_file,
|
custom_wsgi_process_options => $custom_wsgi_process_options,
|
||||||
access_log_pipe => $access_log_pipe,
|
access_log_file => $access_log_file,
|
||||||
access_log_syslog => $access_log_syslog,
|
access_log_pipe => $access_log_pipe,
|
||||||
access_log_format => $access_log_format,
|
access_log_syslog => $access_log_syslog,
|
||||||
error_log_file => $error_log_file,
|
access_log_format => $access_log_format,
|
||||||
error_log_pipe => $error_log_pipe,
|
error_log_file => $error_log_file,
|
||||||
error_log_syslog => $error_log_syslog,
|
error_log_pipe => $error_log_pipe,
|
||||||
|
error_log_syslog => $error_log_syslog,
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The ``placement::wsgi::apache`` class now supports customizing wsgi process
|
||||||
|
options, by the new ``custom_wsgi_process_options`` parameter.
|
|
@ -43,57 +43,63 @@ describe 'placement::wsgi::apache' do
|
||||||
context 'when overriding parameters' do
|
context 'when overriding parameters' do
|
||||||
let :params do
|
let :params do
|
||||||
{
|
{
|
||||||
:servername => 'dummy.host',
|
:servername => 'dummy.host',
|
||||||
:bind_host => '10.42.51.1',
|
:bind_host => '10.42.51.1',
|
||||||
:api_port => 12345,
|
:api_port => 12345,
|
||||||
:path => '/custom',
|
:path => '/custom',
|
||||||
:ssl => true,
|
:ssl => true,
|
||||||
:workers => 10,
|
:workers => 10,
|
||||||
:ssl_cert => '/etc/ssl/certs/placement.crt',
|
:custom_wsgi_process_options => {
|
||||||
:ssl_key => '/etc/ssl/private/placement.key',
|
'python_path' => '/my/python/path',
|
||||||
:ssl_chain => '/etc/ssl/certs/chain.pem',
|
},
|
||||||
:ssl_ca => '/etc/ssl/certs/ca.pem',
|
:ssl_cert => '/etc/ssl/certs/placement.crt',
|
||||||
:ssl_crl_path => '/etc/ssl/crl',
|
:ssl_key => '/etc/ssl/private/placement.key',
|
||||||
:ssl_crl => '/etc/ssl/certs/crl.crt',
|
:ssl_chain => '/etc/ssl/certs/chain.pem',
|
||||||
:ssl_certs_dir => '/etc/ssl/certs',
|
:ssl_ca => '/etc/ssl/certs/ca.pem',
|
||||||
:vhost_custom_fragment => 'Timeout 99',
|
:ssl_crl_path => '/etc/ssl/crl',
|
||||||
:wsgi_process_display_name => 'custom',
|
:ssl_crl => '/etc/ssl/certs/crl.crt',
|
||||||
:threads => 5,
|
:ssl_certs_dir => '/etc/ssl/certs',
|
||||||
:priority => 25,
|
:vhost_custom_fragment => 'Timeout 99',
|
||||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
:wsgi_process_display_name => 'custom',
|
||||||
:request_headers => ['set Content-Type "application/json"'],
|
:threads => 5,
|
||||||
|
:priority => 25,
|
||||||
|
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||||
|
:request_headers => ['set Content-Type "application/json"'],
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
it { should contain_class('placement::params') }
|
it { should contain_class('placement::params') }
|
||||||
|
|
||||||
it { should contain_openstacklib__wsgi__apache('placement_wsgi').with(
|
it { should contain_openstacklib__wsgi__apache('placement_wsgi').with(
|
||||||
:bind_host => params[:bind_host],
|
:bind_host => params[:bind_host],
|
||||||
:bind_port => params[:api_port],
|
:bind_port => params[:api_port],
|
||||||
:group => 'placement',
|
:group => 'placement',
|
||||||
:path => params[:path],
|
:path => params[:path],
|
||||||
:priority => params[:priority],
|
:priority => params[:priority],
|
||||||
:servername => params[:servername],
|
:servername => params[:servername],
|
||||||
:ssl => params[:ssl],
|
:ssl => params[:ssl],
|
||||||
:ssl_ca => params[:ssl_ca],
|
:ssl_ca => params[:ssl_ca],
|
||||||
:ssl_cert => params[:ssl_cert],
|
:ssl_cert => params[:ssl_cert],
|
||||||
:ssl_certs_dir => params[:ssl_certs_dir],
|
:ssl_certs_dir => params[:ssl_certs_dir],
|
||||||
:ssl_chain => params[:ssl_chain],
|
:ssl_chain => params[:ssl_chain],
|
||||||
:ssl_crl => params[:ssl_crl],
|
:ssl_crl => params[:ssl_crl],
|
||||||
:ssl_crl_path => params[:ssl_crl_path],
|
:ssl_crl_path => params[:ssl_crl_path],
|
||||||
:ssl_key => params[:ssl_key],
|
:ssl_key => params[:ssl_key],
|
||||||
:threads => params[:threads],
|
:threads => params[:threads],
|
||||||
:user => 'placement',
|
:user => 'placement',
|
||||||
:vhost_custom_fragment => 'Timeout 99',
|
:vhost_custom_fragment => 'Timeout 99',
|
||||||
:workers => params[:workers],
|
:workers => params[:workers],
|
||||||
:wsgi_daemon_process => 'placement-api',
|
:wsgi_daemon_process => 'placement-api',
|
||||||
:wsgi_process_display_name => params[:wsgi_process_display_name],
|
:wsgi_process_display_name => params[:wsgi_process_display_name],
|
||||||
:wsgi_process_group => 'placement-api',
|
:wsgi_process_group => 'placement-api',
|
||||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||||
:wsgi_script_file => 'placement-api',
|
:wsgi_script_file => 'placement-api',
|
||||||
:wsgi_script_source => platform_params[:wsgi_script_source],
|
:wsgi_script_source => platform_params[:wsgi_script_source],
|
||||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||||
:request_headers => ['set Content-Type "application/json"'],
|
:request_headers => ['set Content-Type "application/json"'],
|
||||||
|
:custom_wsgi_process_options => {
|
||||||
|
'python_path' => '/my/python/path',
|
||||||
|
},
|
||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue