# 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']
#
# == Authors
#
-# Franรงois Charlier <francois.charlier@enovance.com>
+# Francois Charlier <francois.charlier@enovance.com>
#
# == Copyright
#
# Copyright 2013 eNovance <licensing@enovance.com>
#
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
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',