Update tests to use rspec-puppet-facts

This change is to update the tests to leverage rspec-puppet-facts for
testing multiple osfamilies.

Change-Id: Id9b82f083abb4990a6d635a8ba1a3629c4c4085b
This commit is contained in:
Alex Schultz 2016-01-22 17:49:06 -07:00
parent f09e3b0fe9
commit a4cbc77b60
18 changed files with 599 additions and 638 deletions

View File

@ -26,6 +26,7 @@ describe 'designate::agent' do
)
end
it 'configures designate-agent with default parameters' do
is_expected.to contain_designate_config('service:agent/backend_driver').with_value('bind9')
end
@ -37,53 +38,45 @@ describe 'designate::agent' do
end
end
end
context 'with custom package name' do
before do
params.merge!({ :agent_package_name => 'designate-agent-custom-name' })
end
it 'configures using custom name' do
is_expected.to contain_package('designate-agent').with(
:name => 'designate-agent-custom-name',
:ensure => 'present',
:tag => ['openstack', 'designate-package'],
)
end
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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'
{
:agent_package_name => 'designate-agent',
:agent_service_name => 'designate-agent'
}
when 'RedHat'
{
:agent_package_name => 'openstack-designate-agent',
:agent_service_name => 'openstack-designate-agent'
}
end
end
it_behaves_like 'designate-agent'
end
let :platform_params do
{
:agent_package_name => 'designate-agent',
:agent_service_name => 'designate-agent'
}
end
it_configures 'designate-agent'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{
:agent_package_name => 'openstack-designate-agent',
:agent_service_name => 'openstack-designate-agent'
}
end
it_configures 'designate-agent'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :agent_package_name => 'designate-agent-custom-name',
:agent_service_name => 'openstack-designate-agent'
}
end
before do
params.merge!({ :agent_package_name => 'designate-agent-custom-name' })
end
it_configures 'designate-agent'
end
end

View File

@ -51,53 +51,45 @@ describe 'designate::api' do
end
end
end
context 'with custom package name' do
before do
params.merge!({ :api_package_name => 'designate-api-custom-name' })
end
it 'configures using custom name' do
is_expected.to contain_package('designate-api').with(
:name => 'designate-api-custom-name',
:ensure => 'present',
:tag => ['openstack', 'designate-package'],
)
end
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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'
{
:api_package_name => 'designate-api',
:api_service_name => 'designate-api'
}
when 'RedHat'
{
:api_package_name => 'openstack-designate-api',
:api_service_name => 'openstack-designate-api'
}
end
end
it_behaves_like 'designate-api'
end
let :platform_params do
{
:api_package_name => 'designate-api',
:api_service_name => 'designate-api'
}
end
it_configures 'designate-api'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{
:api_package_name => 'openstack-designate-api',
:api_service_name => 'openstack-designate-api'
}
end
it_configures 'designate-api'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :api_package_name => 'designate-api-custom-name',
:api_service_name => 'openstack-designate-api'
}
end
before do
params.merge!({ :api_package_name => 'designate-api-custom-name' })
end
it_configures 'designate-api'
end
end

View File

@ -5,44 +5,61 @@ require 'spec_helper'
describe 'designate::backend::bind9' do
let :facts do
{
:osfamily => 'Debian',
:concat_basedir => '/var/lib/puppet/concat',
}
end
shared_examples 'designate-backend-bind9' do
context 'with default params' do
it 'configures designate backend bind9 with default parameters' do
is_expected.to contain_designate_config('backend:bind9/rndc_host').with_value('127.0.0.1')
is_expected.to contain_designate_config('backend:bind9/rndc_port').with_value('953')
is_expected.to contain_designate_config('backend:bind9/rndc_config_file').with_value('/etc/rndc.conf')
is_expected.to contain_designate_config('backend:bind9/rndc_key_file').with_value('/etc/rndc.key')
is_expected.to contain_file_line('dns allow-new-zones')
end
end
context 'with default params' do
it 'configures designate backend bind9 with default parameters' do
is_expected.to contain_designate_config('backend:bind9/rndc_host').with_value('127.0.0.1')
is_expected.to contain_designate_config('backend:bind9/rndc_port').with_value('953')
is_expected.to contain_designate_config('backend:bind9/rndc_config_file').with_value('/etc/rndc.conf')
is_expected.to contain_designate_config('backend:bind9/rndc_key_file').with_value('/etc/rndc.key')
is_expected.to contain_file_line('dns allow-new-zones')
context 'when overriding rndc_config_file' do
let :params do
{ :rndc_config_file => '/srv/designate/rndc.conf' }
end
it 'configures designate bind9 backend with custom rndc_config_file' do
is_expected.to contain_designate_config('backend:bind9/rndc_config_file').with_value(params[:rndc_config_file])
end
end
context 'when overriding rndc_host and rndc_port' do
let :params do
{
:rndc_host => '10.0.0.42',
:rndc_port => '1337'
}
end
it 'configures designate bind9 backend with custom rndc_port and rndc_host' do
is_expected.to contain_designate_config('backend:bind9/rndc_port').with_value(params[:rndc_port])
is_expected.to contain_designate_config('backend:bind9/rndc_host').with_value(params[:rndc_host])
end
end
end
context 'when overriding rndc_config_file' do
let :params do
{ :rndc_config_file => '/srv/designate/rndc.conf' }
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({
:concat_basedir => '/var/lib/puppet/concat',
}))
end
it 'configures designate bind9 backend with custom rndc_config_file' do
is_expected.to contain_designate_config('backend:bind9/rndc_config_file').with_value(params[:rndc_config_file])
end
end
context 'when overriding rndc_host and rndc_port' do
let :params do
{
:rndc_host => '10.0.0.42',
:rndc_port => '1337'
}
end
it 'configures designate bind9 backend with custom rndc_port and rndc_host' do
is_expected.to contain_designate_config('backend:bind9/rndc_port').with_value(params[:rndc_port])
is_expected.to contain_designate_config('backend:bind9/rndc_host').with_value(params[:rndc_host])
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{ }
when 'RedHat'
{ }
end
end
it_behaves_like 'designate-backend-bind9'
end
end

View File

@ -5,28 +5,46 @@ require 'spec_helper'
describe 'designate::backend::powerdns' do
let :facts do
{ :osfamily => 'Debian' }
end
let :params do
{ :database_connection => 'mysql://dbserver' }
end
context 'with default params' do
it 'configures designate backend powerdns with default parameters' do
is_expected.to contain_designate_config('backend:powerdns/connection').with_value('mysql://dbserver')
is_expected.to contain_designate_config('backend:powerdns/use_db_reconnect').with_value(true)
is_expected.to contain_file('/var/lib/designate').with(
'ensure' => 'directory',
'owner' => 'designate',
'group' => 'designate',
'mode' => '0750',
)
end
shared_examples 'designate-backend-powerdns' do
context 'with default params' do
it 'configures designate backend powerdns with default parameters' do
is_expected.to contain_designate_config('backend:powerdns/connection').with_value('mysql://dbserver')
is_expected.to contain_designate_config('backend:powerdns/use_db_reconnect').with_value(true)
is_expected.to contain_file('/var/lib/designate').with(
'ensure' => 'directory',
'owner' => 'designate',
'group' => 'designate',
'mode' => '0750',
)
end
it 'includes designate::db::powerdns::sync' do
is_expected.to contain_class('designate::db::powerdns::sync')
it 'includes designate::db::powerdns::sync' do
is_expected.to contain_class('designate::db::powerdns::sync')
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'
{ }
when 'RedHat'
{ }
end
end
it_behaves_like 'designate-backend-powerdns'
end
end

View File

@ -42,53 +42,46 @@ describe 'designate::central' do
end
end
end
context 'with custom package name' do
before do
params.merge!({ :central_package_name => 'designate-central-custom-name' })
end
it 'configures using custom name' do
is_expected.to contain_package('designate-central').with(
:name => 'designate-central-custom-name',
:ensure => 'present',
:tag => ['openstack', 'designate-package'],
)
end
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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
{
:central_package_name => 'designate-central',
:central_service_name => 'designate-central'
}
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{
:central_package_name => 'designate-central',
:central_service_name => 'designate-central'
}
when 'RedHat'
{
:central_package_name => 'openstack-designate-central',
:central_service_name => 'openstack-designate-central'
}
end
end
it_behaves_like 'designate-central'
end
it_configures 'designate-central'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{
:central_package_name => 'openstack-designate-central',
:central_service_name => 'openstack-designate-central'
}
end
it_configures 'designate-central'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :central_package_name => 'designate-central-custom-name',
:central_service_name => 'openstack-designate-central'
}
end
before do
params.merge!({ :central_package_name => 'designate-central-custom-name' })
end
it_configures 'designate-central'
end
end

View File

@ -4,57 +4,56 @@
require 'spec_helper'
describe 'designate::client' do
let :params do
{ }
end
shared_examples 'designate-client' do
it { is_expected.to contain_class('designate::params') }
context 'with default parameters' do
it { is_expected.to contain_class('designate::params') }
it 'installs designate client package' do
is_expected.to contain_package('python-designateclient').with(
:ensure => 'present',
:name => platform_params[:client_package_name],
:tag => 'openstack'
)
it 'installs designate client package' do
is_expected.to contain_package('python-designateclient').with(
:ensure => 'present',
:name => platform_params[:client_package_name],
:tag => 'openstack'
)
end
end
context 'with custom package name' do
before do
params.merge!({ :client_package_name => 'designate-client-custom-name' })
end
it 'configures using custom name' do
is_expected.to contain_package('python-designateclient').with(
:ensure => 'present',
:name => 'designate-client-custom-name',
:tag => 'openstack',
)
end
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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'
{ :client_package_name => 'python-designateclient' }
when 'RedHat'
{ :client_package_name => 'python-designateclient' }
end
end
it_behaves_like 'designate-client'
end
let :platform_params do
{ :client_package_name => 'python-designateclient' }
end
it_configures 'designate-client'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :client_package_name => 'python-designateclient' }
end
it_configures 'designate-client'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :client_package_name => 'designate-client-custom-name' }
end
let :params do
{ :client_package_name => 'designate-client-custom-name' }
end
it_configures 'designate-client'
end
end

View File

@ -1,7 +1,6 @@
require 'spec_helper'
describe 'designate::config' do
let :params do
{ :designate_config => {
'DEFAULT/foo' => { 'value' => 'fooValue' },
@ -23,23 +22,38 @@ describe 'designate::config' do
}
end
it 'configures arbitrary designate configurations' do
is_expected.to contain_designate_config('DEFAULT/foo').with_value('fooValue')
is_expected.to contain_designate_config('DEFAULT/bar').with_value('barValue')
is_expected.to contain_designate_config('DEFAULT/baz').with_ensure('absent')
shared_examples_for 'designate-config' do
it 'configures arbitrary designate configurations' do
is_expected.to contain_designate_config('DEFAULT/foo').with_value('fooValue')
is_expected.to contain_designate_config('DEFAULT/bar').with_value('barValue')
is_expected.to contain_designate_config('DEFAULT/baz').with_ensure('absent')
end
it 'configures arbitrary designate api-paste configurations' do
is_expected.to contain_designate_api_paste_ini('DEFAULT/foo2').with_value('fooValue')
is_expected.to contain_designate_api_paste_ini('DEFAULT/bar2').with_value('barValue')
is_expected.to contain_designate_api_paste_ini('DEFAULT/baz2').with_ensure('absent')
end
it 'configures arbitrary designate rootwrap configurations' do
is_expected.to contain_designate_rootwrap_config('DEFAULT/filters_path').with_value('/etc/designate/rootwrap.d,/usr/share/designate/rootwrap')
is_expected.to contain_designate_rootwrap_config('DEFAULT/exec_dirs').with_value('/sbin,/usr/sbin,/bin,/usr/bin')
is_expected.to contain_designate_rootwrap_config('DEFAULT/use_syslog').with_value('False')
is_expected.to contain_designate_rootwrap_config('DEFAULT/syslog_log_facility').with_value('syslog')
is_expected.to contain_designate_rootwrap_config('DEFAULT/syslog_log_level').with_value('ERROR')
end
end
it 'configures arbitrary designate api-paste configurations' do
is_expected.to contain_designate_api_paste_ini('DEFAULT/foo2').with_value('fooValue')
is_expected.to contain_designate_api_paste_ini('DEFAULT/bar2').with_value('barValue')
is_expected.to contain_designate_api_paste_ini('DEFAULT/baz2').with_ensure('absent')
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
it 'configures arbitrary designate rootwrap configurations' do
is_expected.to contain_designate_rootwrap_config('DEFAULT/filters_path').with_value('/etc/designate/rootwrap.d,/usr/share/designate/rootwrap')
is_expected.to contain_designate_rootwrap_config('DEFAULT/exec_dirs').with_value('/sbin,/usr/sbin,/bin,/usr/bin')
is_expected.to contain_designate_rootwrap_config('DEFAULT/use_syslog').with_value('False')
is_expected.to contain_designate_rootwrap_config('DEFAULT/syslog_log_facility').with_value('syslog')
is_expected.to contain_designate_rootwrap_config('DEFAULT/syslog_log_level').with_value('ERROR')
it_behaves_like 'designate-config'
end
end
end

View File

@ -1,4 +1,3 @@
require 'spec_helper'
describe 'designate::db::mysql' do
@ -10,11 +9,7 @@ describe 'designate::db::mysql' do
{ :password => "qwerty" }
end
context 'on a Debian osfamily' do
let :facts do
{ :osfamily => "Debian" }
end
shared_examples_for 'designate-db-mysql' do
context 'with only required parameters' do
let :params do
required_params
@ -60,44 +55,25 @@ describe 'designate::db::mysql' do
it { is_expected.to contain_openstacklib__db__mysql('designate').with_charset(params[:charset]) }
end
context 'overriding allowed_hosts param with array' do
let :params do
{ :allowed_hosts => ['127.0.0.1','%'] }.merge(required_params)
end
it { is_expected.to contain_openstacklib__db__mysql('designate').with_allowed_hosts(params[:allowed_hosts]) }
end
end
describe "overriding allowed_hosts param to array" do
let :facts do
{ :osfamily => "Debian" }
end
let :params do
{
:password => 'designatepass',
:allowed_hosts => ['127.0.0.1','%']
}
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
end
describe "overriding allowed_hosts param to string" do
let :facts do
{ :osfamily => 'RedHat' }
it_behaves_like 'designate-db-mysql'
end
let :params do
{
:password => 'designatepass2',
:allowed_hosts => '192.168.1.1'
}
end
end
describe "overriding allowed_hosts param equals to host param " do
let :facts do
{ :osfamily => 'RedHat' }
end
let :params do
{
:password => 'designatepass2',
:allowed_hosts => '127.0.0.1'
}
end
end
end

View File

@ -10,12 +10,9 @@ describe 'designate::db::powerdns::mysql' do
{ :password => "qwerty" }
end
context 'on a Debian osfamily' do
let :facts do
{ :osfamily => "Debian" }
end
context 'with only required parameters' do
shared_examples_for 'designate-db-powerdns-mysql' do
context 'with default params' do
let :params do
required_params
end
@ -31,73 +28,36 @@ describe 'designate::db::powerdns::mysql' do
let :params do
{ :charset => 'latin1' }.merge(required_params)
end
it { is_expected.to contain_openstacklib__db__mysql('powerdns').with_charset(params[:charset]) }
end
end
context 'on a RedHat osfamily' do
let :facts do
{ :osfamily => 'RedHat' }
end
context 'with only required parameters' do
context 'overriding allowed_hosts param with string' do
let :params do
required_params
{ :allowed_hosts => '127.0.0.1' }.merge(required_params)
end
it { is_expected.to contain_openstacklib__db__mysql('powerdns').with(
:user => 'powerdns',
:password_hash => '*AA1420F182E88B9E5F874F6FBE7459291E8F4601',
:charset => 'utf8'
)}
it { is_expected.to contain_openstacklib__db__mysql('powerdns').with_allowed_hosts(params[:allowed_hosts]) }
end
context 'when overriding charset' do
context 'overriding allowed_hosts param with array' do
let :params do
{ :charset => 'latin1' }.merge(required_params)
{ :allowed_hosts => ['127.0.0.1','%'] }.merge(required_params)
end
it { is_expected.to contain_openstacklib__db__mysql('powerdns').with_charset(params[:charset]) }
it { is_expected.to contain_openstacklib__db__mysql('powerdns').with_allowed_hosts(params[:allowed_hosts]) }
end
end
describe "overriding allowed_hosts param to array" do
let :facts do
{ :osfamily => "Debian" }
end
let :params do
{
:password => 'designatepass',
:allowed_hosts => ['127.0.0.1','%']
}
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
it_behaves_like 'designate-db-powerdns-mysql'
end
end
describe "overriding allowed_hosts param to string" do
let :facts do
{ :osfamily => 'RedHat' }
end
let :params do
{
:password => 'designatepass2',
:allowed_hosts => '192.168.1.1'
}
end
end
describe "overriding allowed_hosts param equals to host param " do
let :facts do
{ :osfamily => 'RedHat' }
end
let :params do
{
:password => 'designatepass2',
:allowed_hosts => '127.0.0.1'
}
end
end
end

View File

@ -5,40 +5,50 @@ require 'spec_helper'
describe 'designate::db::powerdns::sync' do
let :facts do
{ :osfamily => 'Debian' }
end
it 'runs designate-powerdns-dbsync' do
is_expected.to contain_exec('designate-powerdns-dbsync').with(
:command => 'designate-manage powerdns sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
end
describe 'overriding extra_params' do
let :params do
{
:extra_params => '--config-file /etc/designate/designate.conf'
}
shared_examples_for 'designate-db-powerdns-sync' do
context 'with default parameters' do
it 'runs designate-powerdns-dbsync' do
is_expected.to contain_exec('designate-powerdns-dbsync').with(
:command => 'designate-manage powerdns sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
end
end
it {is_expected.to contain_exec('designate-powerdns-dbsync').with(
:command => 'designate-manage --config-file /etc/designate/designate.conf powerdns sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
}
context 'with parameter overrides' do
let :params do
{
:extra_params => '--config-file /etc/designate/designate.conf'
}
end
it 'runs designate manage with diffent config' do
is_expected.to contain_exec('designate-powerdns-dbsync').with(
:command => 'designate-manage --config-file /etc/designate/designate.conf powerdns sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
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
it_behaves_like 'designate-db-powerdns-sync'
end
end
end

View File

@ -60,13 +60,7 @@ describe 'designate::db' do
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it_configures 'designate::db'
shared_examples_for 'designate::db on Debian' do
context 'using pymysql driver' do
let :params do
{ :database_connection => 'mysql+pymysql://designate:designate@localhost/designate', }
@ -82,13 +76,8 @@ describe 'designate::db' do
end
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it_configures 'designate::db'
shared_examples_for 'designate::db on RedHat' do
context 'using pymysql driver' do
let :params do
{ :database_connection => 'mysql+pymysql://designate:designate@localhost/designate', }
@ -98,4 +87,21 @@ describe 'designate::db' do
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
case facts[:osfamily]
when 'Debian'
it_configures 'designate::db on Debian'
when 'RedHat'
it_configures 'designate::db on RedHat'
end
it_configures 'designate::db'
end
end
end

View File

@ -5,40 +5,50 @@ require 'spec_helper'
describe 'designate::db::sync' do
let :facts do
{ :osfamily => 'Debian' }
end
it 'runs designate-dbsync' do
is_expected.to contain_exec('designate-dbsync').with(
:command => 'designate-manage database sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
end
describe 'overriding extra_params' do
let :params do
{
:extra_params => '--config-file /etc/designate/designate.conf'
}
shared_examples_for 'designate-db-sync' do
context 'with default parameters' do
it 'runs designate-db-sync' do
is_expected.to contain_exec('designate-dbsync').with(
:command => 'designate-manage database sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
end
end
it {is_expected.to contain_exec('designate-dbsync').with(
:command => 'designate-manage --config-file /etc/designate/designate.conf database sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
}
context 'with parameter overrides' do
let :params do
{
:extra_params => '--config-file /etc/designate/designate.conf'
}
end
it 'runs designate manage with diffent config' do
is_expected.to contain_exec('designate-dbsync').with(
:command => 'designate-manage --config-file /etc/designate/designate.conf database sync',
:path => '/usr/bin',
:user => 'root',
:refreshonly => 'true',
:logoutput => 'on_failure',
:subscribe => 'Anchor[designate::config::end]',
:notify => 'Anchor[designate::service::begin]',
)
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
it_behaves_like 'designate-db-sync'
end
end
end

View File

@ -17,33 +17,29 @@ describe 'designate::dns' do
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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(:params) do
case facts[:osfamily]
when 'Debian'
{
:designatepath => '/var/cache/bind/bind9',
:designatefile => '/var/cache/bind/bind9/zones.config'
}
when 'RedHat'
{
:designatepath => '/var/named/bind9',
:designatefile => '/var/named/bind9/zones.config'
}
end
end
it_behaves_like 'designate-dns'
end
let :params do
{
:designatepath => '/var/cache/bind/bind9',
:designatefile => '/var/cache/bind/bind9/zones.config'
}
end
it_configures 'designate-dns'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :params do
{
:designatepath => '/var/named/bind9',
:designatefile => '/var/named/bind9/zones.config'
}
end
it_configures 'designate-dns'
end
end

View File

@ -47,6 +47,18 @@ describe 'designate' do
it_configures 'rabbit with HA support'
end
context 'with custom package name' do
let :platform_params do
{ :common_package_name => 'designate-common-custom-name' }
end
before do
params.merge!({ :common_package_name => 'designate-common-custom-name' })
end
it_configures 'a designate base installation'
end
end
shared_examples_for 'a designate base installation' do
@ -157,43 +169,23 @@ describe 'designate' do
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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'
{ :common_package_name => 'designate-common' }
when 'RedHat'
{ :common_package_name => 'openstack-designate' }
end
end
it_behaves_like 'designate'
end
let :platform_params do
{ :common_package_name => 'designate-common' }
end
it_configures 'designate'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :common_package_name => 'openstack-designate' }
end
it_configures 'designate'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :common_package_name => 'designate-common-custom-name' }
end
before do
params.merge!({ :common_package_name => 'designate-common-custom-name' })
end
it_configures 'designate'
end
end

View File

@ -4,107 +4,106 @@
require 'spec_helper'
describe 'designate::keystone::auth' do
shared_examples_for 'designate-keystone-auth' do
context 'with default class parameters' do
let :params do
{ :password => 'desigpwd',
:tenant => 'fooboozoo' }
end
let :facts do
{ :osfamily => 'Debian' }
end
it { is_expected.to contain_keystone_user('designate').with(
:ensure => 'present',
:password => 'desigpwd',
) }
describe 'with default class parameters' do
let :params do
{ :password => 'desigpwd',
:tenant => 'fooboozoo' }
it { is_expected.to contain_keystone_user_role('designate@fooboozoo').with(
:ensure => 'present',
:roles => ['admin']
)}
it { is_expected.to contain_keystone_service('designate::dns').with(
:ensure => 'present',
:description => 'Openstack DNSaas Service'
) }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => "http://127.0.0.1:9001/v1",
:admin_url => "http://127.0.0.1:9001/v1",
:internal_url => "http://127.0.0.1:9001/v1"
) }
end
it { is_expected.to contain_keystone_user('designate').with(
:ensure => 'present',
:password => 'desigpwd',
) }
it { is_expected.to contain_keystone_user_role('designate@fooboozoo').with(
:ensure => 'present',
:roles => ['admin']
)}
context 'when overriding endpoint URLs' do
let :params do
{ :password => 'desigpwd',
:public_url => 'https://10.10.10.10:81/v2',
:internal_url => 'https://10.10.10.11:81/v2',
:admin_url => 'https://10.10.10.12:81/v2' }
end
it { is_expected.to contain_keystone_service('designate::dns').with(
:ensure => 'present',
:description => 'Openstack DNSaas Service'
) }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => "http://127.0.0.1:9001/v1",
:admin_url => "http://127.0.0.1:9001/v1",
:internal_url => "http://127.0.0.1:9001/v1"
) }
end
describe 'when configuring designate-server' do
let :pre_condition do
"class { 'designate::server': auth_password => 'test' }"
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => 'https://10.10.10.10:81/v2',
:internal_url => 'https://10.10.10.11:81/v2',
:admin_url => 'https://10.10.10.12:81/v2'
) }
end
let :params do
{ :password => 'desigpwd',
:tenant => 'fooboozoo' }
context 'with deprecated endpoint parameters' do
let :params do
{ :password => 'desigpwd',
:public_protocol => 'https',
:public_address => '10.10.10.10',
:port => '81',
:internal_address => '10.10.10.11',
:admin_address => '10.10.10.12' }
end
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => "https://10.10.10.10:81/v1",
:internal_url => "http://10.10.10.11:81/v1",
:admin_url => "http://10.10.10.12:81/v1"
) }
end
context 'when overriding auth name' do
let :params do
{ :password => 'foo',
:auth_name => 'designate1' }
end
it { is_expected.to contain_keystone_user('designate1') }
it { is_expected.to contain_keystone_user_role('designate1@services') }
it { is_expected.to contain_keystone_service('designate1::dns') }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate1::dns') }
end
context 'when overriding service name' do
let :params do
{ :service_name => 'designate_service',
:password => 'foo',
:auth_name => 'designate1' }
end
it { is_expected.to contain_keystone_user('designate1') }
it { is_expected.to contain_keystone_user_role('designate1@services') }
it { is_expected.to contain_keystone_service('designate_service::dns') }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate_service::dns') }
end
end
describe 'when overriding endpoint URLs' do
let :params do
{ :password => 'desigpwd',
:public_url => 'https://10.10.10.10:81/v2',
:internal_url => 'https://10.10.10.11:81/v2',
:admin_url => 'https://10.10.10.12:81/v2' }
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
it_behaves_like 'designate-keystone-auth'
end
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => 'https://10.10.10.10:81/v2',
:internal_url => 'https://10.10.10.11:81/v2',
:admin_url => 'https://10.10.10.12:81/v2'
) }
end
describe 'with deprecated endpoint parameters' do
let :params do
{ :password => 'desigpwd',
:public_protocol => 'https',
:public_address => '10.10.10.10',
:port => '81',
:internal_address => '10.10.10.11',
:admin_address => '10.10.10.12' }
end
it { is_expected.to contain_keystone_endpoint('RegionOne/designate::dns').with(
:ensure => 'present',
:public_url => "https://10.10.10.10:81/v1",
:internal_url => "http://10.10.10.11:81/v1",
:admin_url => "http://10.10.10.12:81/v1"
) }
end
describe 'when overriding auth name' do
let :params do
{ :password => 'foo',
:auth_name => 'designate1' }
end
it { is_expected.to contain_keystone_user('designate1') }
it { is_expected.to contain_keystone_user_role('designate1@services') }
it { is_expected.to contain_keystone_service('designate1::dns') }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate1::dns') }
end
describe 'when overriding service name' do
let :params do
{ :service_name => 'designate_service',
:password => 'foo',
:auth_name => 'designate1' }
end
it { is_expected.to contain_keystone_user('designate1') }
it { is_expected.to contain_keystone_user_role('designate1@services') }
it { is_expected.to contain_keystone_service('designate_service::dns') }
it { is_expected.to contain_keystone_endpoint('RegionOne/designate_service::dns') }
end
end

View File

@ -123,20 +123,16 @@ describe 'designate::logging' do
}
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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
it_behaves_like 'designate-logging'
end
it_configures 'designate-logging'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it_configures 'designate-logging'
end
end

View File

@ -23,19 +23,16 @@ describe 'designate::policy' do
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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
it_configures 'designate policies'
it_behaves_like 'designate policies'
end
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it_configures 'designate policies'
end
end

View File

@ -34,53 +34,46 @@ describe 'designate::sink' do
end
end
end
context 'with custom package name' do
before :each do
params.merge!({ :sink_package_name => 'designate-sink-custom-name' })
end
it 'configures using custom name' do
is_expected.to contain_package('designate-sink').with(
:name => 'designate-sink-custom-name',
:ensure => 'present',
:tag => ['openstack', 'designate-package'],
)
end
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
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
{
:sink_package_name => 'designate-sink',
:sink_service_name => 'designate-sink'
}
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{
:sink_package_name => 'designate-sink',
:sink_service_name => 'designate-sink'
}
when 'RedHat'
{
:sink_package_name => 'openstack-designate-sink',
:sink_service_name => 'openstack-designate-sink'
}
end
end
it_behaves_like 'designate-sink'
end
it_configures 'designate-sink'
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{
:sink_package_name => 'openstack-designate-sink',
:sink_service_name => 'openstack-designate-sink'
}
end
it_configures 'designate-sink'
end
context 'with custom package name' do
let :facts do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :sink_package_name => 'designate-sink-custom-name',
:sink_service_name => 'openstack-designate-sink'
}
end
before do
params.merge!({ :sink_package_name => 'designate-sink-custom-name' })
end
it_configures 'designate-sink'
end
end