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.
|
||||
# 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*]
|
||||
# (optional) Headers for the vhost.
|
||||
# Defaults to undef
|
||||
|
@ -118,32 +126,33 @@
|
|||
# class { 'placement::wsgi::apache': }
|
||||
#
|
||||
class placement::wsgi::apache (
|
||||
$servername = $::fqdn,
|
||||
$api_port = 8778,
|
||||
$bind_host = undef,
|
||||
$path = '/',
|
||||
$ssl = false,
|
||||
$workers = $::os_workers,
|
||||
$priority = 10,
|
||||
$threads = 1,
|
||||
$wsgi_process_display_name = undef,
|
||||
$ssl_cert = undef,
|
||||
$ssl_key = undef,
|
||||
$ssl_chain = undef,
|
||||
$ssl_ca = undef,
|
||||
$ssl_crl_path = undef,
|
||||
$ssl_crl = undef,
|
||||
$ssl_certs_dir = undef,
|
||||
$access_log_file = undef,
|
||||
$access_log_pipe = undef,
|
||||
$access_log_syslog = undef,
|
||||
$access_log_format = undef,
|
||||
$error_log_file = undef,
|
||||
$error_log_pipe = undef,
|
||||
$error_log_syslog = undef,
|
||||
$headers = undef,
|
||||
$request_headers = undef,
|
||||
$vhost_custom_fragment = undef,
|
||||
$servername = $::fqdn,
|
||||
$api_port = 8778,
|
||||
$bind_host = undef,
|
||||
$path = '/',
|
||||
$ssl = false,
|
||||
$workers = $::os_workers,
|
||||
$priority = 10,
|
||||
$threads = 1,
|
||||
$wsgi_process_display_name = undef,
|
||||
$ssl_cert = undef,
|
||||
$ssl_key = undef,
|
||||
$ssl_chain = undef,
|
||||
$ssl_ca = undef,
|
||||
$ssl_crl_path = undef,
|
||||
$ssl_crl = undef,
|
||||
$ssl_certs_dir = undef,
|
||||
$access_log_file = undef,
|
||||
$access_log_pipe = undef,
|
||||
$access_log_syslog = undef,
|
||||
$access_log_format = undef,
|
||||
$error_log_file = undef,
|
||||
$error_log_pipe = undef,
|
||||
$error_log_syslog = undef,
|
||||
$custom_wsgi_process_options = {},
|
||||
$headers = undef,
|
||||
$request_headers = undef,
|
||||
$vhost_custom_fragment = undef,
|
||||
) {
|
||||
|
||||
include placement::deps
|
||||
|
@ -152,39 +161,40 @@ class placement::wsgi::apache (
|
|||
Anchor['placement::install::end'] -> Class['apache']
|
||||
|
||||
::openstacklib::wsgi::apache { 'placement_wsgi':
|
||||
bind_host => $bind_host,
|
||||
bind_port => $api_port,
|
||||
group => 'placement',
|
||||
path => $path,
|
||||
priority => $priority,
|
||||
servername => $servername,
|
||||
ssl => $ssl,
|
||||
ssl_ca => $ssl_ca,
|
||||
ssl_cert => $ssl_cert,
|
||||
ssl_certs_dir => $ssl_certs_dir,
|
||||
ssl_chain => $ssl_chain,
|
||||
ssl_crl => $ssl_crl,
|
||||
ssl_crl_path => $ssl_crl_path,
|
||||
ssl_key => $ssl_key,
|
||||
threads => $threads,
|
||||
user => 'placement',
|
||||
vhost_custom_fragment => $vhost_custom_fragment,
|
||||
workers => $workers,
|
||||
wsgi_daemon_process => 'placement-api',
|
||||
wsgi_process_display_name => $wsgi_process_display_name,
|
||||
wsgi_process_group => 'placement-api',
|
||||
wsgi_script_dir => $::placement::params::wsgi_script_path,
|
||||
wsgi_script_file => 'placement-api',
|
||||
wsgi_script_source => $::placement::params::wsgi_script_source,
|
||||
headers => $headers,
|
||||
request_headers => $request_headers,
|
||||
access_log_file => $access_log_file,
|
||||
access_log_pipe => $access_log_pipe,
|
||||
access_log_syslog => $access_log_syslog,
|
||||
access_log_format => $access_log_format,
|
||||
error_log_file => $error_log_file,
|
||||
error_log_pipe => $error_log_pipe,
|
||||
error_log_syslog => $error_log_syslog,
|
||||
bind_host => $bind_host,
|
||||
bind_port => $api_port,
|
||||
group => 'placement',
|
||||
path => $path,
|
||||
priority => $priority,
|
||||
servername => $servername,
|
||||
ssl => $ssl,
|
||||
ssl_ca => $ssl_ca,
|
||||
ssl_cert => $ssl_cert,
|
||||
ssl_certs_dir => $ssl_certs_dir,
|
||||
ssl_chain => $ssl_chain,
|
||||
ssl_crl => $ssl_crl,
|
||||
ssl_crl_path => $ssl_crl_path,
|
||||
ssl_key => $ssl_key,
|
||||
threads => $threads,
|
||||
user => 'placement',
|
||||
vhost_custom_fragment => $vhost_custom_fragment,
|
||||
workers => $workers,
|
||||
wsgi_daemon_process => 'placement-api',
|
||||
wsgi_process_display_name => $wsgi_process_display_name,
|
||||
wsgi_process_group => 'placement-api',
|
||||
wsgi_script_dir => $::placement::params::wsgi_script_path,
|
||||
wsgi_script_file => 'placement-api',
|
||||
wsgi_script_source => $::placement::params::wsgi_script_source,
|
||||
headers => $headers,
|
||||
request_headers => $request_headers,
|
||||
custom_wsgi_process_options => $custom_wsgi_process_options,
|
||||
access_log_file => $access_log_file,
|
||||
access_log_pipe => $access_log_pipe,
|
||||
access_log_syslog => $access_log_syslog,
|
||||
access_log_format => $access_log_format,
|
||||
error_log_file => $error_log_file,
|
||||
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
|
||||
let :params do
|
||||
{
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:api_port => 12345,
|
||||
:path => '/custom',
|
||||
:ssl => true,
|
||||
:workers => 10,
|
||||
:ssl_cert => '/etc/ssl/certs/placement.crt',
|
||||
:ssl_key => '/etc/ssl/private/placement.key',
|
||||
:ssl_chain => '/etc/ssl/certs/chain.pem',
|
||||
:ssl_ca => '/etc/ssl/certs/ca.pem',
|
||||
:ssl_crl_path => '/etc/ssl/crl',
|
||||
:ssl_crl => '/etc/ssl/certs/crl.crt',
|
||||
:ssl_certs_dir => '/etc/ssl/certs',
|
||||
:vhost_custom_fragment => 'Timeout 99',
|
||||
:wsgi_process_display_name => 'custom',
|
||||
:threads => 5,
|
||||
:priority => 25,
|
||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||
:request_headers => ['set Content-Type "application/json"'],
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:api_port => 12345,
|
||||
:path => '/custom',
|
||||
:ssl => true,
|
||||
:workers => 10,
|
||||
:custom_wsgi_process_options => {
|
||||
'python_path' => '/my/python/path',
|
||||
},
|
||||
:ssl_cert => '/etc/ssl/certs/placement.crt',
|
||||
:ssl_key => '/etc/ssl/private/placement.key',
|
||||
:ssl_chain => '/etc/ssl/certs/chain.pem',
|
||||
:ssl_ca => '/etc/ssl/certs/ca.pem',
|
||||
:ssl_crl_path => '/etc/ssl/crl',
|
||||
:ssl_crl => '/etc/ssl/certs/crl.crt',
|
||||
:ssl_certs_dir => '/etc/ssl/certs',
|
||||
:vhost_custom_fragment => 'Timeout 99',
|
||||
:wsgi_process_display_name => 'custom',
|
||||
:threads => 5,
|
||||
:priority => 25,
|
||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||
:request_headers => ['set Content-Type "application/json"'],
|
||||
}
|
||||
end
|
||||
|
||||
it { should contain_class('placement::params') }
|
||||
|
||||
it { should contain_openstacklib__wsgi__apache('placement_wsgi').with(
|
||||
:bind_host => params[:bind_host],
|
||||
:bind_port => params[:api_port],
|
||||
:group => 'placement',
|
||||
:path => params[:path],
|
||||
:priority => params[:priority],
|
||||
:servername => params[:servername],
|
||||
:ssl => params[:ssl],
|
||||
:ssl_ca => params[:ssl_ca],
|
||||
:ssl_cert => params[:ssl_cert],
|
||||
:ssl_certs_dir => params[:ssl_certs_dir],
|
||||
:ssl_chain => params[:ssl_chain],
|
||||
:ssl_crl => params[:ssl_crl],
|
||||
:ssl_crl_path => params[:ssl_crl_path],
|
||||
:ssl_key => params[:ssl_key],
|
||||
:threads => params[:threads],
|
||||
:user => 'placement',
|
||||
:vhost_custom_fragment => 'Timeout 99',
|
||||
:workers => params[:workers],
|
||||
:wsgi_daemon_process => 'placement-api',
|
||||
:wsgi_process_display_name => params[:wsgi_process_display_name],
|
||||
:wsgi_process_group => 'placement-api',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'placement-api',
|
||||
:wsgi_script_source => platform_params[:wsgi_script_source],
|
||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||
:request_headers => ['set Content-Type "application/json"'],
|
||||
:bind_host => params[:bind_host],
|
||||
:bind_port => params[:api_port],
|
||||
:group => 'placement',
|
||||
:path => params[:path],
|
||||
:priority => params[:priority],
|
||||
:servername => params[:servername],
|
||||
:ssl => params[:ssl],
|
||||
:ssl_ca => params[:ssl_ca],
|
||||
:ssl_cert => params[:ssl_cert],
|
||||
:ssl_certs_dir => params[:ssl_certs_dir],
|
||||
:ssl_chain => params[:ssl_chain],
|
||||
:ssl_crl => params[:ssl_crl],
|
||||
:ssl_crl_path => params[:ssl_crl_path],
|
||||
:ssl_key => params[:ssl_key],
|
||||
:threads => params[:threads],
|
||||
:user => 'placement',
|
||||
:vhost_custom_fragment => 'Timeout 99',
|
||||
:workers => params[:workers],
|
||||
:wsgi_daemon_process => 'placement-api',
|
||||
:wsgi_process_display_name => params[:wsgi_process_display_name],
|
||||
:wsgi_process_group => 'placement-api',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'placement-api',
|
||||
:wsgi_script_source => platform_params[:wsgi_script_source],
|
||||
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
||||
:request_headers => ['set Content-Type "application/json"'],
|
||||
:custom_wsgi_process_options => {
|
||||
'python_path' => '/my/python/path',
|
||||
},
|
||||
)}
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue