puppet-zaqar/spec/defines/zaqar_server_instance_spec.rb
Takashi Kajinami 0e7c4f0efe Avoid conflicting management of zaqar.conf
The zaqar::server_instance resource type allows setting up multiple
instances of zaqar-server by creating /etc/zaqar/{name}.conf .
Currently there is no validation about the name and if it can be set to
'zaqar' which results in conflicting management of zaqar.conf .

This change introduces a simple validation logic to make sure that
the resource type uses a config file different from the base
zaqar.conf .

Change-Id: Idb0eaff24e84121e0c78daf659d5b9f861491faa
2021-11-01 12:04:32 +09:00

62 lines
1.4 KiB
Ruby

require 'spec_helper'
describe 'zaqar::server_instance' do
shared_examples_for 'zaqar::server_instance' do
describe 'zaqar::server_instance' do
let :title do
'1'
end
let :pre_condition do
"class { 'zaqar::keystone::authtoken':
password =>'foo',
}
class {'::zaqar': }"
end
let :params do
{
:transport => 'websocket'
}
end
context 'with a websocket server instance 1' do
it { is_expected.to contain_service("#{platform_params[:zaqar_service_name]}@1").with(
:ensure => 'running',
:enable => true
)}
it { is_expected.to contain_file('/etc/zaqar/1.conf') }
end
context 'with the name not allowed' do
let :title do
'zaqar'
end
it { is_expected.to raise_error(Puppet::Error) }
end
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())
end
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{ :zaqar_service_name => 'zaqar-server' }
when 'RedHat'
{ :zaqar_service_name => 'openstack-zaqar' }
end
end
it_configures 'zaqar::server_instance'
end
end
end