
pbr is removing support for wsgi_script due to changes in setuptools. Use the wsgi script module python code instead. Note that this change only touches CentOS code. Ubuntu and Debian will be updated later when we bump the release used in our testing. Change-Id: I15200b393a0f8f8f0168c4504d9073ba5b8b4aea Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
175 lines
5.9 KiB
Ruby
175 lines
5.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'mistral::wsgi::apache' do
|
|
|
|
shared_examples_for 'apache serving mistral with mod_wsgi' do
|
|
context 'with default parameters' do
|
|
it { is_expected.to contain_class('mistral::deps') }
|
|
it { is_expected.to contain_class('mistral::params') }
|
|
it { is_expected.to contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:bind_port => 8989,
|
|
:group => 'mistral',
|
|
:path => '/',
|
|
:priority => 10,
|
|
:servername => 'foo.example.com',
|
|
:ssl => false,
|
|
:threads => 1,
|
|
:user => 'mistral',
|
|
:workers => facts[:os_workers],
|
|
:wsgi_daemon_process => 'mistral',
|
|
:wsgi_process_group => 'mistral',
|
|
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
|
:wsgi_script_file => 'app',
|
|
:wsgi_script_source => platform_params[:wsgi_script_source],
|
|
:headers => nil,
|
|
:request_headers => nil,
|
|
:access_log_file => nil,
|
|
:access_log_pipe => nil,
|
|
:access_log_syslog => nil,
|
|
:access_log_format => nil,
|
|
:error_log_file => nil,
|
|
:error_log_pipe => nil,
|
|
:error_log_syslog => nil,
|
|
:custom_wsgi_process_options => {},
|
|
)}
|
|
end
|
|
|
|
context 'when overriding parameters' do
|
|
let :params do
|
|
{
|
|
:servername => 'dummy.host',
|
|
:bind_host => '10.42.51.1',
|
|
:port => 12345,
|
|
:ssl => true,
|
|
:wsgi_process_display_name => 'mistral',
|
|
:workers => 37,
|
|
:custom_wsgi_process_options => {
|
|
'python_path' => '/my/python/path',
|
|
},
|
|
:headers => ['set X-XSS-Protection "1; mode=block"'],
|
|
:request_headers => ['set Content-Type "application/json"'],
|
|
:vhost_custom_fragment => 'Timeout 99',
|
|
}
|
|
end
|
|
it { is_expected.to contain_class('mistral::deps') }
|
|
it { is_expected.to contain_class('mistral::params') }
|
|
it { is_expected.to contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:bind_host => '10.42.51.1',
|
|
:bind_port => 12345,
|
|
:group => 'mistral',
|
|
:path => '/',
|
|
:servername => 'dummy.host',
|
|
:ssl => true,
|
|
:threads => 1,
|
|
:user => 'mistral',
|
|
:vhost_custom_fragment => 'Timeout 99',
|
|
:workers => 37,
|
|
:wsgi_daemon_process => 'mistral',
|
|
:wsgi_process_display_name => 'mistral',
|
|
:wsgi_process_group => 'mistral',
|
|
:wsgi_script_dir => platform_params[:wsgi_script_path],
|
|
:wsgi_script_file => 'app',
|
|
: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
|
|
|
|
context 'with custom access logging' do
|
|
let :params do
|
|
{
|
|
:access_log_format => 'foo',
|
|
:access_log_syslog => 'syslog:local0',
|
|
:error_log_syslog => 'syslog:local1',
|
|
}
|
|
end
|
|
|
|
it { should contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:access_log_format => params[:access_log_format],
|
|
:access_log_syslog => params[:access_log_syslog],
|
|
:error_log_syslog => params[:error_log_syslog],
|
|
)}
|
|
end
|
|
|
|
context 'with access_log_file' do
|
|
let :params do
|
|
{
|
|
:access_log_file => '/path/to/file',
|
|
}
|
|
end
|
|
|
|
it { should contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:access_log_file => params[:access_log_file],
|
|
)}
|
|
end
|
|
|
|
context 'with access_log_pipe' do
|
|
let :params do
|
|
{
|
|
:access_log_pipe => 'pipe',
|
|
}
|
|
end
|
|
|
|
it { should contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:access_log_pipe => params[:access_log_pipe],
|
|
)}
|
|
end
|
|
|
|
context 'with error_log_file' do
|
|
let :params do
|
|
{
|
|
:error_log_file => '/path/to/file',
|
|
}
|
|
end
|
|
|
|
it { should contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:error_log_file => params[:error_log_file],
|
|
)}
|
|
end
|
|
|
|
context 'with error_log_pipe' do
|
|
let :params do
|
|
{
|
|
:error_log_pipe => 'pipe',
|
|
}
|
|
end
|
|
|
|
it { should contain_openstacklib__wsgi__apache('mistral_wsgi').with(
|
|
:error_log_pipe => params[:error_log_pipe],
|
|
)}
|
|
end
|
|
end
|
|
|
|
on_supported_os({
|
|
:supported_os => OSDefaults.get_supported_os
|
|
}).each do |os,facts|
|
|
context "on #{os}" do
|
|
let (:facts) do
|
|
facts.merge!(OSDefaults.get_facts({
|
|
:os_workers => 8,
|
|
}))
|
|
end
|
|
|
|
let(:platform_params) do
|
|
case facts[:os]['family']
|
|
when 'Debian'
|
|
{
|
|
:wsgi_script_path => '/usr/lib/cgi-bin/mistral',
|
|
:wsgi_script_source => '/usr/bin/mistral-wsgi-api'
|
|
}
|
|
when 'RedHat'
|
|
{
|
|
:wsgi_script_path => '/var/www/cgi-bin/mistral',
|
|
:wsgi_script_source => '/usr/lib/python3.9/site-packages/mistral/api/wsgi.py',
|
|
}
|
|
|
|
end
|
|
end
|
|
it_configures 'apache serving mistral with mod_wsgi'
|
|
end
|
|
end
|
|
end
|