diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp index ff7298d48..97955c36f 100644 --- a/manifests/scheduler.pp +++ b/manifests/scheduler.pp @@ -16,10 +16,15 @@ # (optional) The state of the scheduler package # Defaults to 'present' # +# [*scheduler_driver*] +# (optional) Default driver to use for the scheduler +# Defaults to 'nova.scheduler.host_manager.HostManager' +# class nova::scheduler( - $enabled = false, - $manage_service = true, - $ensure_package = 'present' + $enabled = false, + $manage_service = true, + $ensure_package = 'present', + $scheduler_driver = 'nova.scheduler.host_manager.HostManager', ) { include ::nova::db @@ -33,4 +38,10 @@ class nova::scheduler( ensure_package => $ensure_package, } + nova_config { + 'DEFAULT/scheduler_driver': value => $scheduler_driver; + } + + Nova_config['DEFAULT/scheduler_driver'] ~> Service <| title == 'nova-scheduler' |> + } diff --git a/spec/classes/nova_scheduler_spec.rb b/spec/classes/nova_scheduler_spec.rb index 90dbc6772..9b589eb14 100644 --- a/spec/classes/nova_scheduler_spec.rb +++ b/spec/classes/nova_scheduler_spec.rb @@ -24,6 +24,8 @@ describe 'nova::scheduler' do :ensure => 'running' )} + it { is_expected.to contain_nova_config('DEFAULT/scheduler_driver').with_value('nova.scheduler.host_manager.HostManager') } + context 'with manage_service as false' do let :params do { :enabled => true, @@ -43,6 +45,14 @@ describe 'nova::scheduler' do )} end + context 'with scheduler driver' do + let :params do + { :scheduler_driver => 'custom driver' } + end + + it { is_expected.to contain_nova_config('DEFAULT/scheduler_driver').with_value('custom driver') } + end + context 'with default database parameters' do let :pre_condition do "include nova"