Files
puppet-barbican/spec/classes/barbican_wsgi_apache_spec.rb
Takashi Kajinami eb2b84ea8f Fix inconsistent parameter/resource names of wsgi::apache
The barbican::wsgi::apache class names a few parameters and resources
differently from the other modules. To make its interface and
implementation consistent with the other implementations, this renames
these inconsistent names. The old parameter names are kept but will be
removed in a future release.

Change-Id: I49ca51e4ea7a2404dfdbd0c88ce39339750da4f6
2022-08-26 15:46:37 +09:00

190 lines
6.4 KiB
Ruby

#
# Copyright (C) 2016 Red Hat Inc. <licensing@redhat.com>
#
# Author: Ade Lee <alee@redhat.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Unit tests for barbican::wsgi::apache class
#
require 'spec_helper'
describe 'barbican::wsgi::apache' do
shared_examples_for 'apache serving barbican with mod_wsgi' do
context 'with default parameters' do
it { is_expected.to contain_class('barbican::params') }
it { is_expected.to contain_openstacklib__wsgi__apache('barbican_wsgi').with(
:bind_port => 9311,
:group => 'barbican',
:path => '/',
:priority => 10,
:servername => facts[:fqdn],
:ssl => false,
:threads => 1,
:user => 'barbican',
:workers => facts[:os_workers],
:wsgi_daemon_process => 'barbican-api',
:wsgi_process_group => 'barbican-api',
:wsgi_script_dir => platform_params[:wsgi_script_path],
:wsgi_script_file => 'main',
:wsgi_script_source => '/usr/bin/barbican-wsgi-api',
:headers => nil,
:request_headers => nil,
:custom_wsgi_process_options => {},
: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,
)}
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 => 'barbican-api',
: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('barbican::params') }
it { is_expected.to contain_openstacklib__wsgi__apache('barbican_wsgi').with(
:bind_host => '10.42.51.1',
:bind_port => 12345,
:group => 'barbican',
:path => '/',
:servername => 'dummy.host',
:ssl => true,
:threads => 1,
:user => 'barbican',
:vhost_custom_fragment => 'Timeout 99',
:workers => 37,
:wsgi_daemon_process => 'barbican-api',
:wsgi_process_display_name => 'barbican-api',
:wsgi_process_group => 'barbican-api',
:wsgi_script_dir => platform_params[:wsgi_script_path],
:wsgi_script_file => 'main',
:wsgi_script_source => '/usr/bin/barbican-wsgi-api',
: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('barbican_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('barbican_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('barbican_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('barbican_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('barbican_wsgi').with(
:error_log_pipe => params[:error_log_pipe],
)}
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
let (:facts) do
facts.merge!(OSDefaults.get_facts({
:os_workers => 8,
:concat_basedir => '/var/lib/puppet/concat',
:fqdn => 'some.host.tld'
}))
end
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{
:wsgi_script_path => '/usr/lib/cgi-bin/barbican',
}
when 'RedHat'
{
:wsgi_script_path => '/var/www/cgi-bin/barbican',
}
end
end
it_behaves_like 'apache serving barbican with mod_wsgi'
end
end