From 334eec2fd00a1ddd45296491bc115985ef1a3113 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Thu, 16 Feb 2017 13:16:51 -0700 Subject: [PATCH] Fix idempotency with empty available filters If an empty array is passed in for the available filters, the provider is improperly thinking a configuration value needs to be done. This change checks for this case and sets it to $::os_service_default. Change-Id: Iea0d874108b39609505e542eda29b9bb74ca2a35 Closes-Bug: #1665443 Related-Bug: #1664650 --- manifests/scheduler/filter.pp | 6 +++++- spec/classes/nova_scheduler_filter_spec.rb | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/manifests/scheduler/filter.pp b/manifests/scheduler/filter.pp index c7dc2cb23..128974f94 100644 --- a/manifests/scheduler/filter.pp +++ b/manifests/scheduler/filter.pp @@ -156,7 +156,11 @@ class nova::scheduler::filter ( } if is_array($scheduler_available_filters) { - $scheduler_available_filters_real = $scheduler_available_filters + if empty($scheduler_available_filters) { + $scheduler_available_filters_real = $::os_service_default + } else { + $scheduler_available_filters_real = $scheduler_available_filters + } } else { warning('scheduler_available_filters must be an array and will fail in the future') $scheduler_available_filters_real = any2array($scheduler_available_filters) diff --git a/spec/classes/nova_scheduler_filter_spec.rb b/spec/classes/nova_scheduler_filter_spec.rb index 4fe80b2a5..8a3b325df 100644 --- a/spec/classes/nova_scheduler_filter_spec.rb +++ b/spec/classes/nova_scheduler_filter_spec.rb @@ -71,12 +71,14 @@ describe 'nova::scheduler::filter' do let :params do { :isolated_images => [], :isolated_hosts => [], + :scheduler_available_filters => [], :scheduler_default_filters => [], :baremetal_scheduler_default_filters => [], } end it { is_expected.to contain_nova_config('filter_scheduler/isolated_images').with_value('') } it { is_expected.to contain_nova_config('filter_scheduler/isolated_hosts').with_value('') } + it { is_expected.to contain_nova_config('filter_scheduler/available_filters').with_value('') } it { is_expected.to contain_nova_config('filter_scheduler/enabled_filters').with_value('') } it { is_expected.to contain_nova_config('filter_scheduler/baremetal_enabled_filters').with_value('') } end