Use openstacklib::wsgi::apache for keystone wsgi
This patch changes the usage of the of apache::vhost to openstacklib::wsgi::apache. Also removes the wsgi_script_source param that was deprecated in Mitaka. Fixes and cleans up spec testing, cleans up documentation in the manifest to conform with the overall standard. Depends-On: I31096140a6f355ec99496053fb06ce6c73094180 Change-Id: Ic11a0aea68a04d370453a7e81218642e0e150a9f Closes-Bug: 1657582
This commit is contained in:
parent
73f863e21c
commit
15c06a78ae
@ -1,212 +1,182 @@
|
||||
#
|
||||
# Class to serve keystone with apache mod_wsgi in place of keystone service
|
||||
# Copyright 2013 eNovance <licensing@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
# Author: Francois Charlier <francois.charlier@enovance.com>
|
||||
#
|
||||
# See the following URIs for reference:
|
||||
# https://etherpad.openstack.org/havana-keystone-performance
|
||||
# http://adam.younglogic.com/2012/03/keystone-should-move-to-apache-httpd/
|
||||
# == Class: keystone::wsgi::apache
|
||||
#
|
||||
# Serve keystone with apache mod_wsgi in place of keystone service
|
||||
# When using this class you should disable your keystone service.
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# [*servername*]
|
||||
# The servername for the virtualhost.
|
||||
# Optional. Defaults to $::fqdn
|
||||
# [*servername*]
|
||||
# (Optional) The servername for the virtualhost.
|
||||
# Defaults to $::fqdn
|
||||
#
|
||||
# [*servername_admin*]
|
||||
# The servername for the admin virtualhost.
|
||||
# Optional. Defaults to $servername
|
||||
# [*servername_admin*]
|
||||
# (Optional) The servername for the admin virtualhost.
|
||||
# Defaults to $servername
|
||||
#
|
||||
# [*public_port*]
|
||||
# The public port.
|
||||
# Optional. Defaults to 5000
|
||||
# [*public_port*]
|
||||
# (Optional) The public port.
|
||||
# Defaults to 5000
|
||||
#
|
||||
# [*admin_port*]
|
||||
# The admin port.
|
||||
# Optional. Defaults to 35357
|
||||
# [*admin_port*]
|
||||
# (Optional) The admin port.
|
||||
# Defaults to 35357
|
||||
#
|
||||
# [*bind_host*]
|
||||
# The host/ip address Apache will listen on.
|
||||
# Optional. Defaults to undef (listen on all ip addresses).
|
||||
# [*bind_host*]
|
||||
# (Optional) The host/ip address Apache will listen on.
|
||||
# Defaults to undef (listen on all ip addresses)
|
||||
#
|
||||
# [*admin_bind_host*]
|
||||
# The host/ip address Apache will listen on for admin API connections.
|
||||
# Optional. Defaults to undef or bind_host if only that setting is used.
|
||||
# [*admin_bind_host*]
|
||||
# (Optional) The host/ip address Apache will listen on for admin API connections.
|
||||
# Defaults to undef or bind_host if only that setting is used
|
||||
#
|
||||
# [*public_path*]
|
||||
# The prefix for the public endpoint.
|
||||
# Optional. Defaults to '/'
|
||||
# [*public_path*]
|
||||
# (Optional) The prefix for the public endpoint.
|
||||
# Defaults to '/'
|
||||
#
|
||||
# [*admin_path*]
|
||||
# The prefix for the admin endpoint.
|
||||
# Optional. Defaults to '/'
|
||||
# [*admin_path*]
|
||||
# (Optional) The prefix for the admin endpoint.
|
||||
# Defaults to '/'
|
||||
#
|
||||
# [*ssl*]
|
||||
# Use ssl ? (boolean)
|
||||
# Optional. Defaults to true
|
||||
# [*ssl*]
|
||||
# (Optional) Use SSL.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*workers*]
|
||||
# Number of WSGI workers to spawn.
|
||||
# Optional. Defaults to $::os_workers
|
||||
# [*workers*]
|
||||
# (Optional) Number of WSGI workers to spawn.
|
||||
# Defaults to $::os_workers
|
||||
#
|
||||
# [*ssl_cert*]
|
||||
# (optional) Path to SSL certificate
|
||||
# Default to apache::vhost 'ssl_*' defaults.
|
||||
# [*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_key*]
|
||||
# (Optional) Path to SSL key
|
||||
# Default to apache::vhost 'ssl_*' defaults
|
||||
#
|
||||
# [*ssl_cert_admin*]
|
||||
# (optional) Path to SSL certificate for the admin endpoint.
|
||||
# Default to apache::vhost 'ssl_*' defaults.
|
||||
# [*ssl_cert_admin*]
|
||||
# (Optional) Path to SSL certificate for the admin endpoint.
|
||||
# Default to apache::vhost 'ssl_*' defaults
|
||||
#
|
||||
# [*ssl_key_admin*]
|
||||
# (optional) Path to SSL key for the admin endpoint.
|
||||
# Default to apache::vhost 'ssl_*' defaults.
|
||||
# [*ssl_key_admin*]
|
||||
# (Optional) Path to SSL key for the admin endpoint.
|
||||
# Default to apache::vhost 'ssl_*' defaults
|
||||
#
|
||||
# [*ssl_chain*]
|
||||
# (optional) SSL chain
|
||||
# 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_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_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_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.
|
||||
# [*ssl_certs_dir*]
|
||||
# (Optional) apache::vhost ssl parameters.
|
||||
# Default to apache::vhost 'ssl_*' defaults
|
||||
#
|
||||
# [*priority*]
|
||||
# (optional) The priority for the vhost.
|
||||
# Defaults to '10'
|
||||
# [*priority*]
|
||||
# (Optional) The priority for the vhost.
|
||||
# Defaults to '10'
|
||||
#
|
||||
# [*threads*]
|
||||
# (optional) The number of threads for the vhost.
|
||||
# Defaults to 1
|
||||
# [*threads*]
|
||||
# (Optional) The number of threads for the vhost.
|
||||
# Defaults to 1
|
||||
#
|
||||
# [*wsgi_application_group*]
|
||||
# (optional) The application group of the WSGI script.
|
||||
# Defaults to '%{GLOBAL}'
|
||||
# [*wsgi_application_group*]
|
||||
# (Optional) The application group of the WSGI script.
|
||||
# Defaults to '%{GLOBAL}'
|
||||
#
|
||||
# [*wsgi_pass_authorization*]
|
||||
# (optional) Whether HTTP authorisation headers are passed through to a WSGI
|
||||
# script when the equivalent HTTP request headers are present.
|
||||
# Defaults to 'On'
|
||||
# [*wsgi_pass_authorization*]
|
||||
# (Optional) Whether HTTP authorisation headers are passed through to a WSGI
|
||||
# script when the equivalent HTTP request headers are present.
|
||||
# Defaults to 'On'
|
||||
#
|
||||
# [*wsgi_script_ensure*]
|
||||
# (optional) File ensure parameter for wsgi scripts.
|
||||
# Defaults to undef.
|
||||
# [*wsgi_admin_script_source*]
|
||||
# (Optional) Wsgi script source for the admin endpoint. If set to undef
|
||||
# $::keystone::params::keystone_wsgi_admin_script_path is used. This source
|
||||
# is copied to the apache cgi-bin path as keystone-admin.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*wsgi_admin_script_source*]
|
||||
# (optional) Wsgi script source for the admin endpoint. If set to undef
|
||||
# $::keystone::params::keystone_wsgi_admin_script_path is used. This source
|
||||
# is copied to the apache cgi-bin path as keystone-admin.
|
||||
# Defaults to undef.
|
||||
# [*wsgi_public_script_source*]
|
||||
# (Optional) Wsgi script source for the public endpoint. If set to undef
|
||||
# $::keystone::params::keystone_wsgi_public_script_path is used. This source
|
||||
# is copied to the apache cgi-bin path as keystone-main.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*wsgi_public_script_source*]
|
||||
# (optional) Wsgi script source for the public endpoint. If set to undef
|
||||
# $::keystone::params::keystone_wsgi_public_script_path is used. This source
|
||||
# is copied to the apache cgi-bin path as keystone-admin.
|
||||
# Defaults to undef.
|
||||
# [*custom_wsgi_process_options_main*]
|
||||
# (Optional) gives you the oportunity to add custom process options or to
|
||||
# overwrite the default options for the WSGI main process.
|
||||
# For example to use a virtual python environment for the WSGI process
|
||||
# you could set it to:
|
||||
# { python-path => '/my/python/virtualenv' }
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*custom_wsgi_process_options_main*]
|
||||
# (optional) gives you the oportunity 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 {}
|
||||
# [*custom_wsgi_process_options_admin*]
|
||||
# (Optional) gives you the oportunity to add custom process options or to
|
||||
# overwrite the default options for the WSGI admin process.
|
||||
# eg. to use a virtual python environment for the WSGI process
|
||||
# you could set it to:
|
||||
# { python-path => '/my/python/virtualenv' }
|
||||
# Defaults to {}
|
||||
#
|
||||
# [*custom_wsgi_process_options_admin*]
|
||||
# (optional) gives you the oportunity to add custom process options or to
|
||||
# overwrite the default options for the WSGI admin process.
|
||||
# eg. to use a virtual python environment for the WSGI process
|
||||
# you could set it to:
|
||||
# { python-path => '/my/python/virtualenv' }
|
||||
# Defaults to {}
|
||||
# [*access_log_file*]
|
||||
# (Optional) The log file name for the virtualhost.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*access_log_file*]
|
||||
# The log file name for the virtualhost.
|
||||
# Optional. Defaults to false.
|
||||
# [*access_log_pipe*]
|
||||
# (Optional) Specifies a pipe where Apache sends access logs for the virtualhost.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*access_log_pipe*]
|
||||
# Specifies a pipe where Apache sends access logs for the virtualhost.
|
||||
# Optional. Defaults to false.
|
||||
# [*access_log_syslog*]
|
||||
# (Optional) Sends the virtualhost access log messages to syslog.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*access_log_syslog*]
|
||||
# Sends the virtualhost access log messages to syslog.
|
||||
# Optional. Defaults to false.
|
||||
# [*access_log_format*]
|
||||
# (Optional) The log format for the virtualhost.
|
||||
# Defaults to false
|
||||
#
|
||||
# [*access_log_format*]
|
||||
# The log format for the virtualhost.
|
||||
# Optional. Defaults to false.
|
||||
# [*error_log_file*]
|
||||
# (Optional) The error log file name for the virtualhost.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*error_log_file*]
|
||||
# The error log file name for the virtualhost.
|
||||
# Optional. Defaults to undef.
|
||||
# [*error_log_pipe*]
|
||||
# (Optional) Specifies a pipe where Apache sends error logs for the virtualhost.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*error_log_pipe*]
|
||||
# Specifies a pipe where Apache sends error logs for the virtualhost.
|
||||
# Optional. Defaults to undef.
|
||||
# [*error_log_syslog*]
|
||||
# (Optional) Sends the virtualhost error log messages to syslog.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*error_log_syslog*]
|
||||
# Sends the virtualhost error log messages to syslog.
|
||||
# Optional. Defaults to undef.
|
||||
# [*headers*]
|
||||
# (Optional) Headers for the vhost.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*headers*]
|
||||
# (optional) Headers for the vhost.
|
||||
# Defaults to undef.
|
||||
# [*vhost_custom_fragment*]
|
||||
# (Optional) Passes a string of custom configuration
|
||||
# directives to be placed at the end of the vhost configuration.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*vhost_custom_fragment*]
|
||||
# (optional) Passes a string of custom configuration
|
||||
# directives to be placed at the end of the vhost configuration.
|
||||
# Defaults to undef.
|
||||
# [*wsgi_chunked_request*]
|
||||
# (Optional) apache::vhost wsgi_chunked_request parameter.
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*wsgi_chunked_request*]
|
||||
# (optional) apache::vhost wsgi_chunked_request parameter.
|
||||
# Defaults to undef
|
||||
# DEPRECATED PARAMETERS
|
||||
#
|
||||
# DEPRECATED OPTIONS
|
||||
#
|
||||
# [*wsgi_script_source*]
|
||||
# (optional) Wsgi script source.
|
||||
# Defaults to undef.
|
||||
#
|
||||
# == Dependencies
|
||||
#
|
||||
# requires Class['apache'] & Class['keystone']
|
||||
#
|
||||
# == Examples
|
||||
#
|
||||
# include apache
|
||||
#
|
||||
# class { 'keystone::wsgi::apache': }
|
||||
#
|
||||
# == Note about ports & paths
|
||||
#
|
||||
# When using same port for both endpoints (443 anyone ?), you *MUST* use two
|
||||
# different public_path & admin_path !
|
||||
#
|
||||
# == Authors
|
||||
#
|
||||
# Francois Charlier <francois.charlier@enovance.com>
|
||||
#
|
||||
# == Copyright
|
||||
#
|
||||
# Copyright 2013 eNovance <licensing@enovance.com>
|
||||
# [*wsgi_script_ensure*]
|
||||
# (Optional) File ensure parameter for wsgi scripts.
|
||||
# Defaults to undef
|
||||
#
|
||||
class keystone::wsgi::apache (
|
||||
$servername = $::fqdn,
|
||||
@ -235,7 +205,6 @@ class keystone::wsgi::apache (
|
||||
$wsgi_chunked_request = undef,
|
||||
$wsgi_admin_script_source = $::keystone::params::keystone_wsgi_admin_script_path,
|
||||
$wsgi_public_script_source = $::keystone::params::keystone_wsgi_public_script_path,
|
||||
$wsgi_script_ensure = undef,
|
||||
$access_log_file = false,
|
||||
$access_log_pipe = false,
|
||||
$access_log_syslog = false,
|
||||
@ -247,21 +216,17 @@ class keystone::wsgi::apache (
|
||||
$vhost_custom_fragment = undef,
|
||||
$custom_wsgi_process_options_main = {},
|
||||
$custom_wsgi_process_options_admin = {},
|
||||
#DEPRECATED
|
||||
$wsgi_script_source = undef,
|
||||
## DEPRECATED PARAMETERS
|
||||
$wsgi_script_ensure = undef,
|
||||
) inherits ::keystone::params {
|
||||
|
||||
include ::keystone::deps
|
||||
include ::apache
|
||||
include ::apache::mod::wsgi
|
||||
|
||||
$servername_admin_real = pick_default($servername_admin, $servername)
|
||||
|
||||
if $ssl {
|
||||
include ::apache::mod::ssl
|
||||
# Attempt to use the admin cert/key, else default to the public one.
|
||||
# Since it's possible that no cert/key were given, we allow this to be
|
||||
# empty with pick_default
|
||||
# Since it's possible that no cert/key were given, we allow this to be empty with pick_default
|
||||
$ssl_cert_admin_real = pick_default($ssl_cert_admin, $ssl_cert)
|
||||
$ssl_key_admin_real = pick_default($ssl_key_admin, $ssl_key)
|
||||
} else {
|
||||
@ -289,15 +254,12 @@ class keystone::wsgi::apache (
|
||||
Anchor['keystone::config::end']
|
||||
~> Service['httpd']
|
||||
|
||||
## Sanitize parameters
|
||||
|
||||
# Ensure there's no trailing '/' except if this is also the only character
|
||||
$public_path_real = regsubst($public_path, '(^/.*)/$', '\1')
|
||||
# Ensure there's no trailing '/' except if this is also the only character
|
||||
$admin_path_real = regsubst($admin_path, '(^/.*)/$', '\1')
|
||||
|
||||
if $public_port == $admin_port and $public_path_real == $admin_path_real {
|
||||
fail('When using the same port for public & private endpoints, public_path and admin_path should be different.')
|
||||
fail('When using the same port for public and admin endpoints, public_path and admin_path should be different.')
|
||||
}
|
||||
|
||||
file { $::keystone::params::keystone_wsgi_script_path:
|
||||
@ -308,74 +270,32 @@ class keystone::wsgi::apache (
|
||||
require => Anchor['keystone::install::end'],
|
||||
}
|
||||
|
||||
|
||||
$wsgi_file_target = $wsgi_script_ensure ? {
|
||||
'link' => 'target',
|
||||
default => 'source'
|
||||
# TODO(tobasco): Delete this when wsgi_script_ensure is removed.
|
||||
if $wsgi_script_ensure {
|
||||
warning('wsgi_script_ensure has NO effect and is deprecated for removal')
|
||||
}
|
||||
|
||||
$wsgi_file_defaults = {
|
||||
'ensure' => $wsgi_script_ensure,
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'mode' => '0644',
|
||||
'require' => File[$::keystone::params::keystone_wsgi_script_path],
|
||||
}
|
||||
|
||||
if $wsgi_script_source {
|
||||
|
||||
warning("The single wsgi script source has been deprecated as part of the Mitaka cycle, please switch to \
|
||||
\$wsgi_admin_script_source and \$wsgi_public_script_source")
|
||||
|
||||
$wsgi_admin_source = $wsgi_script_source
|
||||
$wsgi_public_source = $wsgi_script_source
|
||||
} else {
|
||||
$wsgi_admin_source = $wsgi_admin_script_source
|
||||
$wsgi_public_source = $wsgi_public_script_source
|
||||
}
|
||||
|
||||
$wsgi_files = {
|
||||
'keystone_wsgi_admin' => {
|
||||
'path' => "${::keystone::params::keystone_wsgi_script_path}/keystone-admin",
|
||||
"${wsgi_file_target}" => $wsgi_admin_source,
|
||||
},
|
||||
'keystone_wsgi_main' => {
|
||||
'path' => "${::keystone::params::keystone_wsgi_script_path}/keystone-public",
|
||||
"${wsgi_file_target}" => $wsgi_public_source,
|
||||
},
|
||||
}
|
||||
|
||||
create_resources('file', $wsgi_files, $wsgi_file_defaults)
|
||||
|
||||
$wsgi_daemon_process_options_main = merge(
|
||||
{
|
||||
user => 'keystone',
|
||||
group => 'keystone',
|
||||
processes => $workers,
|
||||
threads => $threads,
|
||||
display-name => 'keystone-main',
|
||||
},
|
||||
$custom_wsgi_process_options_main
|
||||
)
|
||||
|
||||
$wsgi_daemon_process_options_admin = merge(
|
||||
{
|
||||
user => 'keystone',
|
||||
group => 'keystone',
|
||||
processes => $workers,
|
||||
threads => $threads,
|
||||
display-name => 'keystone-admin',
|
||||
},
|
||||
$custom_wsgi_process_options_admin
|
||||
)
|
||||
|
||||
$wsgi_script_aliases_main = hash([$public_path_real,"${::keystone::params::keystone_wsgi_script_path}/keystone-public"])
|
||||
$wsgi_script_aliases_admin = hash([$admin_path_real, "${::keystone::params::keystone_wsgi_script_path}/keystone-admin"])
|
||||
|
||||
if $public_port == $admin_port {
|
||||
$wsgi_script_aliases_main_real = merge($wsgi_script_aliases_main, $wsgi_script_aliases_admin)
|
||||
$custom_wsgi_script_aliases = { $admin_path_real => "${::keystone::params::keystone_wsgi_script_path}/keystone-admin" }
|
||||
|
||||
# NOTE(tobasco): Create this here since openstacklib::wsgi::apache only handles
|
||||
# the keystone-public file if running public and admin on the same port.
|
||||
file { 'keystone_wsgi_admin':
|
||||
ensure => present,
|
||||
path => "${::keystone::params::keystone_wsgi_script_path}/keystone-admin",
|
||||
owner => 'keystone',
|
||||
group => 'keystone',
|
||||
mode => '0644',
|
||||
source => $wsgi_admin_script_source,
|
||||
require => File[$::keystone::params::keystone_wsgi_script_path],
|
||||
}
|
||||
|
||||
$apache_require = [
|
||||
File['keystone_wsgi_admin'],
|
||||
]
|
||||
} else {
|
||||
$wsgi_script_aliases_main_real = $wsgi_script_aliases_main
|
||||
$custom_wsgi_script_aliases = undef
|
||||
$apache_require = []
|
||||
}
|
||||
|
||||
if $admin_bind_host {
|
||||
@ -385,14 +305,15 @@ class keystone::wsgi::apache (
|
||||
$real_admin_bind_host = $bind_host
|
||||
}
|
||||
|
||||
::apache::vhost { 'keystone_wsgi_main':
|
||||
ensure => 'present',
|
||||
::openstacklib::wsgi::apache { 'keystone_wsgi_main':
|
||||
servername => $servername,
|
||||
ip => $bind_host,
|
||||
port => $public_port,
|
||||
docroot => $::keystone::params::keystone_wsgi_script_path,
|
||||
docroot_owner => 'keystone',
|
||||
docroot_group => 'keystone',
|
||||
bind_host => $bind_host,
|
||||
bind_port => $public_port,
|
||||
group => 'keystone',
|
||||
path => $public_path_real,
|
||||
workers => $workers,
|
||||
threads => $threads,
|
||||
user => 'keystone',
|
||||
priority => $priority,
|
||||
ssl => $ssl,
|
||||
ssl_cert => $ssl_cert,
|
||||
@ -403,15 +324,18 @@ class keystone::wsgi::apache (
|
||||
ssl_crl => $ssl_crl,
|
||||
ssl_certs_dir => $ssl_certs_dir,
|
||||
wsgi_daemon_process => 'keystone_main',
|
||||
wsgi_daemon_process_options => $wsgi_daemon_process_options_main,
|
||||
wsgi_process_display_name => 'keystone-main',
|
||||
wsgi_process_group => 'keystone_main',
|
||||
wsgi_script_aliases => $wsgi_script_aliases_main_real,
|
||||
wsgi_script_dir => $::keystone::params::keystone_wsgi_script_path,
|
||||
wsgi_script_file => 'keystone-public',
|
||||
wsgi_script_source => $wsgi_public_script_source,
|
||||
wsgi_application_group => $wsgi_application_group,
|
||||
wsgi_pass_authorization => $wsgi_pass_authorization,
|
||||
headers => $headers,
|
||||
custom_fragment => $vhost_custom_fragment,
|
||||
wsgi_chunked_request => $wsgi_chunked_request,
|
||||
require => File['keystone_wsgi_main'],
|
||||
headers => $headers,
|
||||
custom_wsgi_process_options => $custom_wsgi_process_options_main,
|
||||
custom_wsgi_script_aliases => $custom_wsgi_script_aliases,
|
||||
vhost_custom_fragment => $vhost_custom_fragment,
|
||||
access_log_file => $access_log_file,
|
||||
access_log_pipe => $access_log_pipe,
|
||||
access_log_syslog => $access_log_syslog,
|
||||
@ -419,17 +343,19 @@ class keystone::wsgi::apache (
|
||||
error_log_file => $error_log_file,
|
||||
error_log_pipe => $error_log_pipe,
|
||||
error_log_syslog => $error_log_syslog,
|
||||
require => $apache_require,
|
||||
}
|
||||
|
||||
if $public_port != $admin_port {
|
||||
::apache::vhost { 'keystone_wsgi_admin':
|
||||
ensure => 'present',
|
||||
::openstacklib::wsgi::apache { 'keystone_wsgi_admin':
|
||||
servername => $servername_admin_real,
|
||||
ip => $real_admin_bind_host,
|
||||
port => $admin_port,
|
||||
docroot => $::keystone::params::keystone_wsgi_script_path,
|
||||
docroot_owner => 'keystone',
|
||||
docroot_group => 'keystone',
|
||||
bind_host => $real_admin_bind_host,
|
||||
bind_port => $admin_port,
|
||||
group => 'keystone',
|
||||
path => $admin_path_real,
|
||||
workers => $workers,
|
||||
threads => $threads,
|
||||
user => 'keystone',
|
||||
priority => $priority,
|
||||
ssl => $ssl,
|
||||
ssl_cert => $ssl_cert_admin_real,
|
||||
@ -440,15 +366,17 @@ class keystone::wsgi::apache (
|
||||
ssl_crl => $ssl_crl,
|
||||
ssl_certs_dir => $ssl_certs_dir,
|
||||
wsgi_daemon_process => 'keystone_admin',
|
||||
wsgi_daemon_process_options => $wsgi_daemon_process_options_admin,
|
||||
wsgi_process_display_name => 'keystone-admin',
|
||||
wsgi_process_group => 'keystone_admin',
|
||||
wsgi_script_aliases => $wsgi_script_aliases_admin,
|
||||
wsgi_script_dir => $::keystone::params::keystone_wsgi_script_path,
|
||||
wsgi_script_file => 'keystone-admin',
|
||||
wsgi_script_source => $wsgi_admin_script_source,
|
||||
wsgi_application_group => $wsgi_application_group,
|
||||
wsgi_pass_authorization => $wsgi_pass_authorization,
|
||||
headers => $headers,
|
||||
custom_fragment => $vhost_custom_fragment,
|
||||
custom_wsgi_process_options => $custom_wsgi_process_options_admin,
|
||||
vhost_custom_fragment => $vhost_custom_fragment,
|
||||
wsgi_chunked_request => $wsgi_chunked_request,
|
||||
require => File['keystone_wsgi_admin'],
|
||||
headers => $headers,
|
||||
access_log_file => $access_log_file,
|
||||
access_log_pipe => $access_log_pipe,
|
||||
access_log_syslog => $access_log_syslog,
|
||||
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
The deprecated parameter keystone::wsgi::apache::wsgi_script_source is now removed.
|
||||
Please use the wsgi_public_script_source and wsgi_admin_script_source instead.
|
||||
deprecations:
|
||||
- |
|
||||
The wsgi_script_ensure parameter now has NO affect and is deprecated for removal.
|
@ -17,103 +17,99 @@ describe 'keystone::wsgi::apache' do
|
||||
end
|
||||
|
||||
shared_examples_for 'apache serving keystone with mod_wsgi' do
|
||||
it { is_expected.to contain_service('httpd').with_name(platform_parameters[:httpd_service_name]) }
|
||||
it { is_expected.to contain_service('httpd').with_name(platform_params[:httpd_service_name]) }
|
||||
it { is_expected.to contain_class('keystone::params') }
|
||||
it { is_expected.to contain_class('apache') }
|
||||
it { is_expected.to contain_class('apache::mod::wsgi') }
|
||||
it { is_expected.to contain_class('apache::mod::ssl') }
|
||||
it { is_expected.to contain_class('keystone::db::sync') }
|
||||
|
||||
describe 'with default parameters' do
|
||||
|
||||
it { is_expected.to contain_file("#{platform_parameters[:wsgi_script_path]}").with(
|
||||
'ensure' => 'directory',
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'require' => 'Anchor[keystone::install::end]',
|
||||
it { is_expected.to contain_file("#{platform_params[:wsgi_script_path]}").with(
|
||||
:ensure => 'directory',
|
||||
:owner => 'keystone',
|
||||
:group => 'keystone',
|
||||
:require => 'Anchor[keystone::install::end]',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
'ensure' => 'file',
|
||||
'path' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin",
|
||||
'source' => platform_parameters[:wsgi_admin_script_source],
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'mode' => '0644',
|
||||
'require' => "File[#{platform_parameters[:wsgi_script_path]}]",
|
||||
:ensure => 'file',
|
||||
:path => "#{platform_params[:wsgi_script_path]}/keystone-admin",
|
||||
:source => platform_params[:wsgi_admin_script_source],
|
||||
:owner => 'keystone',
|
||||
:group => 'keystone',
|
||||
:mode => '0644',
|
||||
:require => "File[#{platform_params[:wsgi_script_path]}]",
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_file('keystone_wsgi_main').with(
|
||||
'ensure' => 'file',
|
||||
'path' => "#{platform_parameters[:wsgi_script_path]}/keystone-public",
|
||||
'source' => platform_parameters[:wsgi_public_script_source],
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'mode' => '0644',
|
||||
'require' => "File[#{platform_parameters[:wsgi_script_path]}]",
|
||||
:ensure => 'file',
|
||||
:path => "#{platform_params[:wsgi_script_path]}/keystone-public",
|
||||
:source => platform_params[:wsgi_public_script_source],
|
||||
:owner => 'keystone',
|
||||
:group => 'keystone',
|
||||
:mode => '0644',
|
||||
:require => "File[#{platform_params[:wsgi_script_path]}]",
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'servername' => 'some.host.tld',
|
||||
'ip' => nil,
|
||||
'port' => '35357',
|
||||
'docroot' => "#{platform_parameters[:wsgi_script_path]}",
|
||||
'docroot_owner' => 'keystone',
|
||||
'docroot_group' => 'keystone',
|
||||
'ssl' => 'true',
|
||||
'wsgi_daemon_process' => 'keystone_admin',
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'processes' => '42',
|
||||
'threads' => '1',
|
||||
'display-name' => 'keystone-admin',
|
||||
},
|
||||
'wsgi_process_group' => 'keystone_admin',
|
||||
'wsgi_script_aliases' => { '/' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin" },
|
||||
'wsgi_application_group' => '%{GLOBAL}',
|
||||
'wsgi_pass_authorization' => 'On',
|
||||
'headers' => nil,
|
||||
'require' => 'File[keystone_wsgi_admin]',
|
||||
'access_log_file' => false,
|
||||
'access_log_pipe' => false,
|
||||
'access_log_syslog' => false,
|
||||
'access_log_format' => false,
|
||||
'error_log_file' => nil,
|
||||
'error_log_pipe' => nil,
|
||||
'error_log_syslog' => nil,
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'some.host.tld',
|
||||
:bind_port => 35357,
|
||||
:group => 'keystone',
|
||||
:workers => facts[:os_workers],
|
||||
:threads => 1,
|
||||
:user => 'keystone',
|
||||
:priority => '10',
|
||||
:ssl => true,
|
||||
:wsgi_daemon_process => 'keystone_main',
|
||||
:wsgi_process_display_name => 'keystone-main',
|
||||
:wsgi_process_group => 'keystone_main',
|
||||
:wsgi_application_group => '%{GLOBAL}',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'keystone-public',
|
||||
:wsgi_pass_authorization => 'On',
|
||||
:headers => nil,
|
||||
:custom_wsgi_process_options => {},
|
||||
:access_log_file => false,
|
||||
:access_log_pipe => false,
|
||||
:access_log_syslog => false,
|
||||
:access_log_format => false,
|
||||
:error_log_file => nil,
|
||||
:error_log_pipe => nil,
|
||||
:error_log_syslog => nil,
|
||||
:require => 'File[keystone_wsgi_main]',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'servername' => 'some.host.tld',
|
||||
'ip' => nil,
|
||||
'port' => '5000',
|
||||
'docroot' => "#{platform_parameters[:wsgi_script_path]}",
|
||||
'docroot_owner' => 'keystone',
|
||||
'docroot_group' => 'keystone',
|
||||
'ssl' => 'true',
|
||||
'wsgi_daemon_process' => 'keystone_main',
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'processes' => '42',
|
||||
'threads' => '1',
|
||||
'display-name' => 'keystone-main',
|
||||
},
|
||||
'wsgi_process_group' => 'keystone_main',
|
||||
'wsgi_script_aliases' => { '/' => "#{platform_parameters[:wsgi_script_path]}/main" },
|
||||
'wsgi_application_group' => '%{GLOBAL}',
|
||||
'wsgi_pass_authorization' => 'On',
|
||||
'headers' => nil,
|
||||
'require' => 'File[keystone_wsgi_main]',
|
||||
'access_log_file' => false,
|
||||
'access_log_pipe' => false,
|
||||
'access_log_syslog' => false,
|
||||
'access_log_format' => false,
|
||||
'error_log_file' => nil,
|
||||
'error_log_pipe' => nil,
|
||||
'error_log_syslog' => nil,
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:servername => 'some.host.tld',
|
||||
:bind_port => 5000,
|
||||
:group => 'keystone',
|
||||
:workers => facts[:os_workers],
|
||||
:threads => 1,
|
||||
:user => 'keystone',
|
||||
:priority => '10',
|
||||
:ssl => true,
|
||||
:wsgi_daemon_process => 'keystone_admin',
|
||||
:wsgi_process_display_name => 'keystone-admin',
|
||||
:wsgi_process_group => 'keystone_admin',
|
||||
:wsgi_application_group => '%{GLOBAL}',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'keystone-admin',
|
||||
:wsgi_pass_authorization => 'On',
|
||||
:headers => nil,
|
||||
:custom_wsgi_process_options => {},
|
||||
:access_log_file => false,
|
||||
:access_log_pipe => false,
|
||||
:access_log_syslog => false,
|
||||
:access_log_format => false,
|
||||
:error_log_file => nil,
|
||||
:error_log_pipe => nil,
|
||||
:error_log_syslog => nil,
|
||||
:require => 'File[keystone_wsgi_admin]',
|
||||
)}
|
||||
it { is_expected.to contain_concat("#{platform_parameters[:httpd_ports_file]}") }
|
||||
|
||||
it { is_expected.to contain_concat("#{platform_params[:httpd_ports_file]}") }
|
||||
end
|
||||
|
||||
describe 'when overriding parameters using different ports' do
|
||||
@ -130,55 +126,67 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'servername' => 'dummy.host',
|
||||
'ip' => '10.42.51.2',
|
||||
'port' => '4142',
|
||||
'docroot' => "#{platform_parameters[:wsgi_script_path]}",
|
||||
'docroot_owner' => 'keystone',
|
||||
'docroot_group' => 'keystone',
|
||||
'ssl' => 'false',
|
||||
'wsgi_daemon_process' => 'keystone_admin',
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'processes' => '37',
|
||||
'threads' => '1',
|
||||
'display-name' => 'keystone-admin',
|
||||
},
|
||||
'wsgi_process_group' => 'keystone_admin',
|
||||
'wsgi_script_aliases' => { '/' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin" },
|
||||
'wsgi_application_group' => '%{GLOBAL}',
|
||||
'wsgi_pass_authorization' => 'On',
|
||||
'require' => 'File[keystone_wsgi_admin]',
|
||||
'custom_fragment' => 'LimitRequestFieldSize 81900'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:bind_port => 12345,
|
||||
:user => 'keystone',
|
||||
:group => 'keystone',
|
||||
:workers => 37,
|
||||
:threads => 1,
|
||||
:priority => '10',
|
||||
:ssl => false,
|
||||
:wsgi_daemon_process => 'keystone_main',
|
||||
:wsgi_process_display_name => 'keystone-main',
|
||||
:wsgi_process_group => 'keystone_main',
|
||||
:wsgi_application_group => '%{GLOBAL}',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'keystone-public',
|
||||
:wsgi_pass_authorization => 'On',
|
||||
:headers => nil,
|
||||
:custom_wsgi_process_options => {},
|
||||
:vhost_custom_fragment => 'LimitRequestFieldSize 81900',
|
||||
:access_log_file => false,
|
||||
:access_log_pipe => false,
|
||||
:access_log_syslog => false,
|
||||
:access_log_format => false,
|
||||
:error_log_file => nil,
|
||||
:error_log_pipe => nil,
|
||||
:error_log_syslog => nil,
|
||||
:require => 'File[keystone_wsgi_main]',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'servername' => 'dummy.host',
|
||||
'ip' => '10.42.51.1',
|
||||
'port' => '12345',
|
||||
'docroot' => "#{platform_parameters[:wsgi_script_path]}",
|
||||
'docroot_owner' => 'keystone',
|
||||
'docroot_group' => 'keystone',
|
||||
'ssl' => 'false',
|
||||
'wsgi_daemon_process' => 'keystone_main',
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'processes' => '37',
|
||||
'threads' => '1',
|
||||
'display-name' => 'keystone-main',
|
||||
},
|
||||
'wsgi_process_group' => 'keystone_main',
|
||||
'wsgi_script_aliases' => { '/' => "#{platform_parameters[:wsgi_script_path]}/main" },
|
||||
'wsgi_application_group' => '%{GLOBAL}',
|
||||
'wsgi_pass_authorization' => 'On',
|
||||
'require' => 'File[keystone_wsgi_main]',
|
||||
'custom_fragment' => 'LimitRequestFieldSize 81900'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:bind_port => 4142,
|
||||
:group => 'keystone',
|
||||
:workers => 37,
|
||||
:threads => 1,
|
||||
:user => 'keystone',
|
||||
:priority => '10',
|
||||
:ssl => false,
|
||||
:wsgi_daemon_process => 'keystone_admin',
|
||||
:wsgi_process_display_name => 'keystone-admin',
|
||||
:wsgi_process_group => 'keystone_admin',
|
||||
:wsgi_application_group => '%{GLOBAL}',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'keystone-admin',
|
||||
:wsgi_pass_authorization => 'On',
|
||||
:headers => nil,
|
||||
:custom_wsgi_process_options => {},
|
||||
:vhost_custom_fragment => 'LimitRequestFieldSize 81900',
|
||||
:access_log_file => false,
|
||||
:access_log_pipe => false,
|
||||
:access_log_syslog => false,
|
||||
:access_log_format => false,
|
||||
:error_log_file => nil,
|
||||
:error_log_pipe => nil,
|
||||
:error_log_syslog => nil,
|
||||
:require => 'File[keystone_wsgi_admin]',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_concat("#{platform_parameters[:httpd_ports_file]}") }
|
||||
it { is_expected.to contain_concat("#{platform_params[:httpd_ports_file]}") }
|
||||
end
|
||||
|
||||
describe 'when admin_bind_host is not set default to bind_host' do
|
||||
@ -194,15 +202,25 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'ip' => '10.42.51.1'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:bind_port => 12345,
|
||||
:ssl => false,
|
||||
:workers => 37,
|
||||
:vhost_custom_fragment => 'LimitRequestFieldSize 81900'
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'ip' => '10.42.51.1'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:servername => 'dummy.host',
|
||||
:bind_host => '10.42.51.1',
|
||||
:bind_port => 4142,
|
||||
:ssl => false,
|
||||
:workers => 37,
|
||||
:vhost_custom_fragment => 'LimitRequestFieldSize 81900'
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_concat("#{platform_parameters[:httpd_ports_file]}") }
|
||||
it { is_expected.to contain_concat("#{platform_params[:httpd_ports_file]}") }
|
||||
end
|
||||
|
||||
describe 'when servername_admin is overridden' do
|
||||
@ -213,12 +231,12 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'servername' => 'dummy2.host',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'dummy1.host',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'servername' => 'dummy1.host',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:servername => 'dummy2.host',
|
||||
)}
|
||||
|
||||
end
|
||||
@ -226,34 +244,23 @@ describe 'keystone::wsgi::apache' do
|
||||
describe 'when wsgi_daemon_process_options are overridden' do
|
||||
let :params do
|
||||
{
|
||||
:custom_wsgi_process_options_admin => {
|
||||
user => 'keystone-admin',
|
||||
python_path => '/my/python/admin/path',
|
||||
},
|
||||
:custom_wsgi_process_options_main => {
|
||||
user => 'keystone-main',
|
||||
python_path => '/my/python/main/path',
|
||||
},
|
||||
:custom_wsgi_process_options_admin => {
|
||||
python_path => '/my/python/admin/path',
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone-admin',
|
||||
'group' => 'keystone',
|
||||
'python-path' => '/my/python/admin/path',
|
||||
'display-name' => 'keystone_main',
|
||||
},
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:custom_wsgi_process_options => { 'python-path' => '/my/python/main/path' },
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone-main',
|
||||
'group' => 'keystone',
|
||||
'python-path' => '/my/python/main/path',
|
||||
'display-name' => 'keystone-main',
|
||||
},
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:custom_wsgi_process_options => { 'python-path' => '/my/python/admin/path' },
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'when overriding parameters using same port' do
|
||||
@ -269,32 +276,35 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to_not contain_apache__vhost('keystone_wsgi_admin') }
|
||||
it { is_expected.to_not contain_openstacklib__wsgi__apache('keystone_wsgi_admin') }
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'servername' => 'dummy.host',
|
||||
'ip' => nil,
|
||||
'port' => '4242',
|
||||
'docroot' => "#{platform_parameters[:wsgi_script_path]}",
|
||||
'docroot_owner' => 'keystone',
|
||||
'docroot_group' => 'keystone',
|
||||
'ssl' => 'true',
|
||||
'wsgi_daemon_process' => 'keystone_main',
|
||||
'wsgi_daemon_process_options' => {
|
||||
'user' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'processes' => '37',
|
||||
'threads' => '1',
|
||||
'display-name' => 'keystone-main',
|
||||
},
|
||||
'wsgi_process_group' => 'keystone_main',
|
||||
'wsgi_script_aliases' => {
|
||||
'/main/endpoint' => "#{platform_parameters[:wsgi_script_path]}/keystone-public",
|
||||
'/admin/endpoint' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin"
|
||||
},
|
||||
'wsgi_application_group' => '%{GLOBAL}',
|
||||
'wsgi_pass_authorization' => 'On',
|
||||
'require' => 'File[keystone_wsgi_main]'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'dummy.host',
|
||||
:bind_port => 4242,
|
||||
:user => 'keystone',
|
||||
:group => 'keystone',
|
||||
:workers => 37,
|
||||
:threads => 1,
|
||||
:priority => '10',
|
||||
:ssl => true,
|
||||
:wsgi_daemon_process => 'keystone_main',
|
||||
:wsgi_process_display_name => 'keystone-main',
|
||||
:wsgi_process_group => 'keystone_main',
|
||||
:wsgi_application_group => '%{GLOBAL}',
|
||||
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
||||
:wsgi_script_file => 'keystone-public',
|
||||
:wsgi_pass_authorization => 'On',
|
||||
:headers => nil,
|
||||
:custom_wsgi_process_options => {},
|
||||
:custom_wsgi_script_aliases => { '/admin/endpoint' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin" },
|
||||
:access_log_file => false,
|
||||
:access_log_pipe => false,
|
||||
:access_log_syslog => false,
|
||||
:access_log_format => false,
|
||||
:error_log_file => nil,
|
||||
:error_log_pipe => nil,
|
||||
:error_log_syslog => nil,
|
||||
:require => 'File[keystone_wsgi_main]'
|
||||
)}
|
||||
end
|
||||
|
||||
@ -311,7 +321,7 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it_raises 'a Puppet::Error', /When using the same port for public & private endpoints, public_path and admin_path should be different\./
|
||||
it_raises 'a Puppet::Error', /When using the same port for public and admin endpoints, public_path and admin_path should be different\./
|
||||
end
|
||||
|
||||
describe 'when overriding default apache logging' do
|
||||
@ -322,11 +332,11 @@ describe 'keystone::wsgi::apache' do
|
||||
:access_log_syslog => 'syslog:local0',
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'servername' => 'dummy.host',
|
||||
'access_log_format' => 'foo',
|
||||
'access_log_syslog' => 'syslog:local0',
|
||||
)}
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:servername => 'dummy.host',
|
||||
:access_log_format => 'foo',
|
||||
:access_log_syslog => 'syslog:local0',
|
||||
)}
|
||||
end
|
||||
|
||||
describe 'when overriding parameters using symlink and custom file source' do
|
||||
@ -338,23 +348,23 @@ describe 'keystone::wsgi::apache' do
|
||||
end
|
||||
|
||||
it { is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
'ensure' => 'link',
|
||||
'path' => "#{platform_parameters[:wsgi_script_path]}/keystone-admin",
|
||||
'target' => '/opt/keystone/httpd/keystone.py',
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'mode' => '0644',
|
||||
'require' => "File[#{platform_parameters[:wsgi_script_path]}]",
|
||||
:ensure => 'link',
|
||||
:path => "#{platform_params[:wsgi_script_path]}/keystone-admin",
|
||||
:target => '/opt/keystone/httpd/keystone.py',
|
||||
:owner => 'keystone',
|
||||
:group => 'keystone',
|
||||
:mode => '0644',
|
||||
:require => "File[#{platform_params[:wsgi_script_path]}]",
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_file('keystone_wsgi_main').with(
|
||||
'ensure' => 'link',
|
||||
'path' => "#{platform_parameters[:wsgi_script_path]}/keystone-public",
|
||||
'target' => '/opt/keystone/httpd/keystone.py',
|
||||
'owner' => 'keystone',
|
||||
'group' => 'keystone',
|
||||
'mode' => '0644',
|
||||
'require' => "File[#{platform_parameters[:wsgi_script_path]}]",
|
||||
:ensure => 'link',
|
||||
:path => "#{platform_params[:wsgi_script_path]}/keystone-public",
|
||||
:target => '/opt/keystone/httpd/keystone.py',
|
||||
:owner => 'keystone',
|
||||
:group => 'keystone',
|
||||
:mode => '0644',
|
||||
:require => "File[#{platform_params[:wsgi_script_path]}]",
|
||||
)}
|
||||
end
|
||||
|
||||
@ -365,13 +375,13 @@ describe 'keystone::wsgi::apache' do
|
||||
:ssl_key => 'some key',
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'ssl_cert' => 'some cert',
|
||||
'ssl_key' => 'some key',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:ssl_cert => 'some cert',
|
||||
:ssl_key => 'some key',
|
||||
)}
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'ssl_cert' => 'some cert',
|
||||
'ssl_key' => 'some key',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:ssl_cert => 'some cert',
|
||||
:ssl_key => 'some key',
|
||||
)}
|
||||
end
|
||||
|
||||
@ -384,13 +394,13 @@ describe 'keystone::wsgi::apache' do
|
||||
:ssl_key_admin => 'some key admin',
|
||||
}
|
||||
end
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'ssl_cert' => 'some cert',
|
||||
'ssl_key' => 'some key',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:ssl_cert => 'some cert',
|
||||
:ssl_key => 'some key',
|
||||
)}
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'ssl_cert' => 'some cert admin',
|
||||
'ssl_key' => 'some key admin',
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:ssl_cert => 'some cert admin',
|
||||
:ssl_key => 'some key admin',
|
||||
)}
|
||||
end
|
||||
|
||||
@ -401,27 +411,29 @@ describe 'keystone::wsgi::apache' do
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'wsgi_chunked_request' => 'On'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:wsgi_chunked_request => 'On'
|
||||
)}
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'wsgi_chunked_request' => 'On'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:wsgi_chunked_request => 'On'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'when overriding parameters using additional headers' do
|
||||
describe 'when overriding parameters using additional headers' do
|
||||
let :params do
|
||||
{
|
||||
:headers => 'set X-Frame-Options "DENY"'
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_admin').with(
|
||||
'headers' => 'set X-Frame-Options "DENY"'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_main').with(
|
||||
:headers => 'set X-Frame-Options "DENY"'
|
||||
)}
|
||||
it { is_expected.to contain_apache__vhost('keystone_wsgi_main').with(
|
||||
'headers' => 'set X-Frame-Options "DENY"'
|
||||
it { is_expected.to contain_openstacklib__wsgi__apache('keystone_wsgi_admin').with(
|
||||
:headers => 'set X-Frame-Options "DENY"'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'when overriding script paths with link' do
|
||||
@ -434,13 +446,13 @@ describe 'keystone::wsgi::apache' do
|
||||
end
|
||||
|
||||
it 'should contain correct files' do
|
||||
is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
'path' => "#{facts[:wsgi_script_path]}/keystone-admin",
|
||||
'target' => params[:wsgi_admin_script_source]
|
||||
)
|
||||
is_expected.to contain_file('keystone_wsgi_main').with(
|
||||
'path' => "#{facts[:wsgi_script_path]}/keystone-public",
|
||||
'target' => params[:wsgi_public_script_source]
|
||||
:path => "#{facts[:wsgi_script_path]}/keystone-public",
|
||||
:target => params[:wsgi_public_script_source]
|
||||
)
|
||||
is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
:path => "#{facts[:wsgi_script_path]}/keystone-admin",
|
||||
:target => params[:wsgi_admin_script_source]
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -454,13 +466,13 @@ describe 'keystone::wsgi::apache' do
|
||||
end
|
||||
|
||||
it 'should contain correct files' do
|
||||
is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
'path' => "#{facts[:wsgi_script_path]}/keystone-admin",
|
||||
'source' => params[:wsgi_admin_script_source]
|
||||
)
|
||||
is_expected.to contain_file('keystone_wsgi_main').with(
|
||||
'path' => "#{facts[:wsgi_script_path]}/keystone-public",
|
||||
'source' => params[:wsgi_public_script_source]
|
||||
:path => "#{facts[:wsgi_script_path]}/keystone-public",
|
||||
:source => params[:wsgi_public_script_source]
|
||||
)
|
||||
is_expected.to contain_file('keystone_wsgi_admin').with(
|
||||
:path => "#{facts[:wsgi_script_path]}/keystone-admin",
|
||||
:source => params[:wsgi_admin_script_source]
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -472,7 +484,7 @@ describe 'keystone::wsgi::apache' do
|
||||
facts.merge!(OSDefaults.get_facts({}))
|
||||
end
|
||||
|
||||
let(:platform_parameters) do
|
||||
let(:platform_params) do
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user