diff --git a/manifests/compute/scheduler.pp b/manifests/compute/scheduler.pp index a837db8b..390623aa 100644 --- a/manifests/compute/scheduler.pp +++ b/manifests/compute/scheduler.pp @@ -15,8 +15,13 @@ # # Compute Scheduler node # - -class cloud::compute::scheduler { +# [*scheduler_default_filters*] +# (optional) A comma separated list of filters to be used by default +# Defaults to false +# +class cloud::compute::scheduler( + $scheduler_default_filters = false +){ include 'cloud::compute' @@ -24,4 +29,8 @@ class cloud::compute::scheduler { enabled => true, } + class { 'nova::scheduler::filter': + scheduler_default_filters => $scheduler_default_filters, + } + } diff --git a/spec/classes/cloud_compute_scheduler_spec.rb b/spec/classes/cloud_compute_scheduler_spec.rb index c894ba1b..ee49aaa2 100644 --- a/spec/classes/cloud_compute_scheduler_spec.rb +++ b/spec/classes/cloud_compute_scheduler_spec.rb @@ -43,6 +43,12 @@ describe 'cloud::compute::scheduler' do log_facility => 'LOG_LOCAL0' }" end + let :params do + { + :scheduler_default_filters => false + } + end + it 'configure nova common' do should contain_class('nova').with( :verbose => true, @@ -86,6 +92,17 @@ describe 'cloud::compute::scheduler' do should contain_class('nova::scheduler').with(:enabled => true) end + context 'openstack compute scheduler with nova-scheduler filters' do + before do + params.merge!( + :scheduler_default_filters => ['RamFilter', 'ComputeFilter'] + ) + end + it { should contain_nova_config('DEFAULT/scheduler_default_filters').with( + 'value' => "RamFilter,ComputeFilter" + )} + end + end context 'on Debian platforms' do