From 440fe0d31838df3c3ee3b5f6e1edea8f3f8efb7f Mon Sep 17 00:00:00 2001 From: Piotr Kopec Date: Wed, 5 Jun 2019 12:41:20 +0200 Subject: [PATCH] Add parameter for `scheduler/query_placement_for_image_type_support` Add paramerer `query_placement_for_image_type_support` that controls whether to add ask placement only for compute hosts that support the ``disk_format`` of the image used in the request. Change-Id: I6d895a4789f44380565e3d2e3461d0bbb501c86b --- manifests/scheduler.pp | 26 ++++++++++++------- ...ement_for_image_type-351c3200235aa579.yaml | 6 +++++ spec/classes/nova_scheduler_spec.rb | 9 +++++++ 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 releasenotes/notes/query_placement_for_image_type-351c3200235aa579.yaml diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp index f73c3abd2..5bfb2baa6 100644 --- a/manifests/scheduler.pp +++ b/manifests/scheduler.pp @@ -29,13 +29,20 @@ # attempt to discover new hosts that have been added to cells. # Defaults to $::os_service_default # +# [*query_placement_for_image_type_support*] +# (optional) This setting causes the scheduler to ask placement only for +# compute hosts that support the ``disk_format`` of the image used in the +# request. +# Defaults to $::os_service_default +# class nova::scheduler( - $enabled = true, - $manage_service = true, - $ensure_package = 'present', - $workers = $::os_workers, - $scheduler_driver = 'filter_scheduler', - $discover_hosts_in_cells_interval = $::os_service_default, + $enabled = true, + $manage_service = true, + $ensure_package = 'present', + $workers = $::os_workers, + $scheduler_driver = 'filter_scheduler', + $discover_hosts_in_cells_interval = $::os_service_default, + $query_placement_for_image_type_support = $::os_service_default, ) { include ::nova::deps @@ -52,9 +59,10 @@ class nova::scheduler( } nova_config { - 'scheduler/workers': value => $workers; - 'scheduler/driver': value => $scheduler_driver; - 'scheduler/discover_hosts_in_cells_interval': value => $discover_hosts_in_cells_interval; + 'scheduler/workers': value => $workers; + 'scheduler/driver': value => $scheduler_driver; + 'scheduler/discover_hosts_in_cells_interval': value => $discover_hosts_in_cells_interval; + 'scheduler/query_placement_for_image_type_support': value => $query_placement_for_image_type_support; } } diff --git a/releasenotes/notes/query_placement_for_image_type-351c3200235aa579.yaml b/releasenotes/notes/query_placement_for_image_type-351c3200235aa579.yaml new file mode 100644 index 000000000..16b23ecc4 --- /dev/null +++ b/releasenotes/notes/query_placement_for_image_type-351c3200235aa579.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add parmeter `query_placement_for_image_type_support` that causes the + scheduler to ask placement only for compute hosts that support the + `disk_format` of the image used in the request. \ No newline at end of file diff --git a/spec/classes/nova_scheduler_spec.rb b/spec/classes/nova_scheduler_spec.rb index 373307caf..2bc7ab6f6 100644 --- a/spec/classes/nova_scheduler_spec.rb +++ b/spec/classes/nova_scheduler_spec.rb @@ -22,6 +22,7 @@ describe 'nova::scheduler' do it { is_expected.to contain_nova_config('scheduler/workers').with_value(4) } it { is_expected.to contain_nova_config('scheduler/driver').with_value('filter_scheduler') } it { is_expected.to contain_nova_config('scheduler/discover_hosts_in_cells_interval').with_value('') } + it { is_expected.to contain_nova_config('scheduler/query_placement_for_image_type_support').with_value('') } context 'with manage_service as false' do let :params do @@ -66,6 +67,14 @@ describe 'nova::scheduler' do it { is_expected.to contain_nova_config('scheduler/discover_hosts_in_cells_interval').with_value(15) } end + context 'with query_placement_for_image_type_support' do + let :params do + { :query_placement_for_image_type_support => true } + end + + it { is_expected.to contain_nova_config('scheduler/query_placement_for_image_type_support').with_value(true) } + end + context 'with default database parameters' do let :pre_condition do "include nova"