Files
puppet-cloudkitty/spec/classes/cloudkitty_processor_spec.rb
ZhongShengping 507e865c29 Add the acceptance test to deploy the cloudkitty service
1) Already have the cloudkitty package in RedHat system, so we can
   add the acceptance test to deploy the service now.
2) Add auth_section and keystone_version in group "keystone_fetcher"
   to load plugin specific options and use specific keystone version.
3) Change the collector valume to 'ceilometer' by default
4) Update releated to test.

Change-Id: Ic2f8fafba1664273d89bd706768416da4d9b93e1
2016-12-14 17:05:53 +08:00

119 lines
3.8 KiB
Ruby

require 'spec_helper'
describe 'cloudkitty::processor' do
let :params do
{ :enabled => true,
:manage_service => true,
:collector => 'ceilometer',
:period => '60',
:wait_periods => '1',
:window => '3600',}
end
shared_examples_for 'cloudkitty-processor' do
context 'when enabled' do
it { is_expected.to contain_class('cloudkitty::params') }
it { is_expected.to contain_class('cloudkitty::deps') }
it { is_expected.to contain_cloudkitty_config('collect/collector').with_value( params[:collector] ) }
it { is_expected.to contain_cloudkitty_config('collect/window').with_value( params[:window] ) }
it { is_expected.to contain_cloudkitty_config('collect/period').with_value( params[:period] ) }
it { is_expected.to contain_cloudkitty_config('collect/wait_periods').with_value( params[:wait_periods] ) }
it { is_expected.to contain_cloudkitty_config('ceilometer_collector/auth_section').with_value('keystone_authtoken') }
it 'installs cloudkitty-processor package' do
is_expected.to contain_package('cloudkitty-processor').with(
:name => platform_params[:processor_package_name],
:ensure => 'present',
:tag => ['openstack', 'cloudkitty-package']
)
end
it 'configures cloudkitty-processor service' do
is_expected.to contain_service('cloudkitty-processor').with(
:ensure => 'running',
:name => platform_params[:processor_service_name],
:enable => true,
:hasstatus => true,
:hasrestart => true,
:tag => 'cloudkitty-service',
)
end
end
context 'with gnocchi backend' do
before do
params.merge!({
:collector => 'gnocchi',
})
end
it { is_expected.to contain_cloudkitty_config('collect/collector').with_value( params[:collector] ) }
it { is_expected.to contain_cloudkitty_config('gnocchi_collector/auth_section').with_value('keystone_authtoken') }
end
context 'when disabled' do
let :params do
{ :enabled => false }
end
# Catalog compilation does not crash for lack of cloudkitty::db
it { is_expected.to compile }
it 'configures cloudkitty-processor service' do
is_expected.to contain_service('cloudkitty-processor').with(
:ensure => 'stopped',
:name => platform_params[:processor_service_name],
:enable => false,
:hasstatus => true,
:hasrestart => true,
:tag => 'cloudkitty-service',
)
end
end
context 'when service management is disabled' do
let :params do
{ :enabled => false,
:manage_service => false }
end
it 'configures cloudkitty-processor service' do
is_expected.to contain_service('cloudkitty-processor').with(
:ensure => nil,
:name => platform_params[:processor_service_name],
:enable => false,
:hasstatus => true,
:hasrestart => true,
:tag => 'cloudkitty-service',
)
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'
{ :processor_package_name => 'cloudkitty-processor',
:processor_service_name => 'cloudkitty-processor' }
when 'RedHat'
{ :processor_package_name => 'openstack-cloudkitty-processor',
:processor_service_name => 'cloudkitty-processor' }
end
end
it_configures 'cloudkitty-processor'
end
end
end