123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- require 'spec_helper'
- describe 'nova::scheduler' do
- let :pre_condition do
- 'include nova'
- end
- shared_examples 'nova-scheduler' do
- it { is_expected.to contain_package('nova-scheduler').with(
- :name => platform_params[:scheduler_package_name],
- :ensure => 'present'
- ) }
- it { is_expected.to contain_service('nova-scheduler').with(
- :name => platform_params[:scheduler_service_name],
- :hasstatus => 'true',
- :ensure => 'running'
- )}
- it { is_expected.to contain_nova_config('DEFAULT/scheduler_driver').with_ensure('absent') }
- it { is_expected.to contain_nova_config('scheduler/driver').with_value('filter_scheduler') }
- context 'with manage_service as false' do
- let :params do
- { :enabled => true,
- :manage_service => false
- }
- end
- it { is_expected.to contain_service('nova-scheduler').without_ensure }
- end
- context 'with package version' do
- let :params do
- { :ensure_package => '2012.1-2' }
- end
- it { is_expected.to contain_package('nova-scheduler').with(
- :ensure => params[:ensure_package]
- )}
- end
- context 'with scheduler driver' do
- let :params do
- { :scheduler_driver => 'custom driver' }
- end
- it { is_expected.to contain_nova_config('scheduler/driver').with_value('custom driver') }
- end
- context 'with default database parameters' do
- let :pre_condition do
- "include nova"
- end
- it { is_expected.to_not contain_nova_config('database/connection') }
- it { is_expected.to_not contain_nova_config('database/slave_connection') }
- it { is_expected.to_not contain_nova_config('database/idle_timeout').with_value('<SERVICE DEFAULT>') }
- end
- context 'with overridden database parameters' do
- let :pre_condition do
- "class { 'nova':
- database_connection => 'mysql://user:pass@db/db',
- slave_connection => 'mysql://user:pass@slave/db',
- database_idle_timeout => '30',
- }
- "
- end
- it { is_expected.to contain_nova_config('database/connection').with_value('mysql://user:pass@db/db').with_secret(true) }
- it { is_expected.to contain_nova_config('database/slave_connection').with_value('mysql://user:pass@slave/db').with_secret(true) }
- it { is_expected.to contain_nova_config('database/idle_timeout').with_value('30') }
- end
- end
- context 'on Debian platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'Debian' })
- end
- let :platform_params do
- { :scheduler_package_name => 'nova-scheduler',
- :scheduler_service_name => 'nova-scheduler' }
- end
- it_configures 'nova-scheduler'
- end
- context 'on Redhat platforms' do
- let :facts do
- @default_facts.merge({ :osfamily => 'RedHat' })
- end
- let :platform_params do
- { :scheduler_package_name => 'openstack-nova-scheduler',
- :scheduler_service_name => 'openstack-nova-scheduler' }
- end
- it_configures 'nova-scheduler'
- end
- end
|