From 525aae76e8d5dc2ab09de241c7c4a572e5ffac12 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 28 Nov 2022 11:17:58 +0900 Subject: [PATCH] Ensure [DEFAULT] scheduler_driver is cleared by default ... otherwise the old setting can be left in manila.conf. This also refactors unit tests for the manila::share class. Change-Id: I30fa9fdc73164f898bf46d2983c807ec2bcd5451 --- manifests/scheduler.pp | 6 ++- spec/classes/manila_scheduler_spec.rb | 64 ++++++++++++++++----------- 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp index abc274f4..47093c13 100644 --- a/manifests/scheduler.pp +++ b/manifests/scheduler.pp @@ -5,7 +5,7 @@ # === Parameters # # [*scheduler_driver*] -# (Optional) Description +# (Optional) Default scheduler driver to use # Defaults to false. # # [*package_ensure*] @@ -34,6 +34,10 @@ class manila::scheduler ( manila_config { 'DEFAULT/scheduler_driver': value => $scheduler_driver; } + } else { + manila_config { + 'DEFAULT/scheduler_driver': value => $::os_service_default; + } } if $::manila::params::scheduler_package { diff --git a/spec/classes/manila_scheduler_spec.rb b/spec/classes/manila_scheduler_spec.rb index ed3339ed..ead0b0bb 100644 --- a/spec/classes/manila_scheduler_spec.rb +++ b/spec/classes/manila_scheduler_spec.rb @@ -2,20 +2,16 @@ require 'spec_helper' describe 'manila::scheduler' do - shared_examples_for 'manila::scheduler on Debian' do + shared_examples_for 'manila::scheduler' do context 'with default parameters' do it { is_expected.to contain_class('manila::params') } - it { is_expected.to contain_package('manila-scheduler').with( - :name => 'manila-scheduler', - :ensure => 'present', - :tag => ['openstack', 'manila-package'], - ) } + it { is_expected.to contain_manila_config('DEFAULT/scheduler_driver').with_value('') } it { is_expected.to contain_service('manila-scheduler').with( - :name => 'manila-scheduler', + :name => platform_params[:scheduler_service], :enable => true, :ensure => 'running', :hasstatus => true, @@ -26,18 +22,18 @@ describe 'manila::scheduler' do context 'with parameters' do let :params do - { :scheduler_driver => 'manila.scheduler.filter_scheduler.FilterScheduler', - :package_ensure => 'present' + { + :scheduler_driver => 'manila.scheduler.filter_scheduler.FilterScheduler', } end it { is_expected.to contain_manila_config('DEFAULT/scheduler_driver').with_value('manila.scheduler.filter_scheduler.FilterScheduler') } - it { is_expected.to contain_package('manila-scheduler').with_ensure('present') } end context 'with manage_service false' do let :params do - { 'manage_service' => false + { + :manage_service => false } end it 'should not configure the service' do @@ -46,28 +42,33 @@ describe 'manila::scheduler' do end end - - shared_examples_for 'manila::scheduler on RedHat' do - + shared_examples_for 'manila::scheduler on Debian' do context 'with default parameters' do - - it { is_expected.to contain_class('manila::params') } - - it { is_expected.to contain_service('manila-scheduler').with( - :name => 'openstack-manila-scheduler', - :enable => true, - :ensure => 'running', - :tag => 'manila-service', + it { is_expected.to contain_package('manila-scheduler').with( + :name => 'manila-scheduler', + :ensure => 'present', + :tag => ['openstack', 'manila-package'], ) } end context 'with parameters' do - let :params do - { :scheduler_driver => 'manila.scheduler.filter_scheduler.FilterScheduler' } + { + :package_ensure => 'installed' + } end - it { is_expected.to contain_manila_config('DEFAULT/scheduler_driver').with_value('manila.scheduler.filter_scheduler.FilterScheduler') } + it { is_expected.to contain_package('manila-scheduler').with( + :name => 'manila-scheduler', + :ensure => 'installed', + :tag => ['openstack', 'manila-package'], + ) } + end + end + + shared_examples_for 'manila::scheduler on RedHat' do + context 'with default parameters' do + it { is_expected.to_not contain_package('manila-scheduler') } end end @@ -76,8 +77,19 @@ describe 'manila::scheduler' do }).each do |os,facts| context "on #{os}" do let (:facts) do - facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'})) + facts.merge!(OSDefaults.get_facts()) end + + let :platform_params do + case facts[:osfamily] + when 'Debian' + { :scheduler_service => 'manila-scheduler' } + when 'RedHat' + { :scheduler_service => 'openstack-manila-scheduler' } + end + end + + it_behaves_like 'manila::scheduler' it_behaves_like "manila::scheduler on #{facts[:osfamily]}" end end