X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fkeystone%2Fmanifests%2Fwsgi%2Fapache.pp;h=66e28aacc14078183f2c25693370add14e881a1a;hb=71a236efd9f45828d875a0a5fd025108bb1dcada;hp=3192821b9102041da04772baa144dbf2bc55c151;hpb=251e7bcc5bd4288912203f53bf19f9116801cd54;p=dsa-puppet.git diff --git a/3rdparty/modules/keystone/manifests/wsgi/apache.pp b/3rdparty/modules/keystone/manifests/wsgi/apache.pp index 3192821b..66e28aac 100644 --- a/3rdparty/modules/keystone/manifests/wsgi/apache.pp +++ b/3rdparty/modules/keystone/manifests/wsgi/apache.pp @@ -1,7 +1,6 @@ # # Class to serve keystone with apache mod_wsgi in place of keystone service # -# # Serving keystone from apache is the recommended way to go for production # systems as the current keystone implementation is not multi-processor aware, # thus limiting the performance for concurrent accesses. @@ -47,15 +46,49 @@ # Optional. Defaults to 1 # # [*ssl_cert*] +# (optional) Path to SSL certificate +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_key*] +# (optional) Path to SSL key +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_chain*] +# (optional) SSL chain +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_ca*] +# (optional) Path to SSL certificate authority +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_crl_path*] +# (optional) Path to SSL certificate revocation list +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_crl*] +# (optional) SSL certificate revocation list name +# Default to apache::vhost 'ssl_*' defaults. +# # [*ssl_certs_dir*] # apache::vhost ssl parameters. # Optional. Default to apache::vhost 'ssl_*' defaults. # +# [*priority*] +# (optional) The priority for the vhost. +# Defaults to '10' +# +# [*threads*] +# (optional) The number of threads for the vhost. +# Defaults to $::processorcount +# +# [*wsgi_script_ensure*] +# (optional) File ensure parameter for wsgi scripts. +# Defaults to 'file'. +# +# [*wsgi_script_source*] +# (optional) Wsgi script source. +# Defaults to undef. +# # == Dependencies # # requires Class['apache'] & Class['keystone'] @@ -80,23 +113,25 @@ # Copyright 2013 eNovance # class keystone::wsgi::apache ( - $servername = $::fqdn, - $public_port = 5000, - $admin_port = 35357, - $bind_host = undef, - $public_path = '/', - $admin_path = '/', - $ssl = true, - $workers = 1, - $ssl_cert = undef, - $ssl_key = undef, - $ssl_chain = undef, - $ssl_ca = undef, - $ssl_crl_path = undef, - $ssl_crl = undef, - $ssl_certs_dir = undef, - $threads = $::processorcount, - $priority = '10', + $servername = $::fqdn, + $public_port = 5000, + $admin_port = 35357, + $bind_host = undef, + $public_path = '/', + $admin_path = '/', + $ssl = true, + $workers = 1, + $ssl_cert = undef, + $ssl_key = undef, + $ssl_chain = undef, + $ssl_ca = undef, + $ssl_crl_path = undef, + $ssl_crl = undef, + $ssl_certs_dir = undef, + $threads = $::processorcount, + $priority = '10', + $wsgi_script_ensure = 'file', + $wsgi_script_source = undef, ) { include ::keystone::params @@ -134,28 +169,35 @@ class keystone::wsgi::apache ( require => Package['httpd'], } - file { 'keystone_wsgi_admin': - ensure => file, - path => "${::keystone::params::keystone_wsgi_script_path}/admin", - source => $::keystone::params::keystone_wsgi_script_source, - owner => 'keystone', - group => 'keystone', - mode => '0644', - # source file provided by keystone package - require => [File[$::keystone::params::keystone_wsgi_script_path], Package['keystone']], + $wsgi_files = { + 'keystone_wsgi_admin' => { + 'path' => "${::keystone::params::keystone_wsgi_script_path}/admin", + }, + 'keystone_wsgi_main' => { + 'path' => "${::keystone::params::keystone_wsgi_script_path}/main", + }, } - file { 'keystone_wsgi_main': - ensure => file, - path => "${::keystone::params::keystone_wsgi_script_path}/main", - source => $::keystone::params::keystone_wsgi_script_source, - owner => 'keystone', - group => 'keystone', - mode => '0644', - # source file provided by keystone package - require => [File[$::keystone::params::keystone_wsgi_script_path], Package['keystone']], + $wsgi_file_defaults = { + 'ensure' => $wsgi_script_ensure, + 'owner' => 'keystone', + 'group' => 'keystone', + 'mode' => '0644', + 'require' => [File[$::keystone::params::keystone_wsgi_script_path], Package['keystone']], } + $wsgi_script_source_real = $wsgi_script_source ? { + default => $wsgi_script_source, + undef => $::keystone::params::keystone_wsgi_script_source, + } + + case $wsgi_script_ensure { + 'link': { $wsgi_file_source = { 'target' => $wsgi_script_source_real } } + default: { $wsgi_file_source = { 'source' => $wsgi_script_source_real } } + } + + create_resources('file', $wsgi_files, merge($wsgi_file_defaults, $wsgi_file_source)) + $wsgi_daemon_process_options_main = { user => 'keystone', group => 'keystone',