diff --git a/manifests/compute.pp b/manifests/compute.pp index 88faa4280..340942bd6 100644 --- a/manifests/compute.pp +++ b/manifests/compute.pp @@ -328,6 +328,7 @@ class nova::compute ( include nova::deps include nova::params + include nova::workarounds $cpu_shared_set_real = pick(join(any2array($cpu_shared_set), ','), $::os_service_default) $cpu_dedicated_set_real = pick(join(any2array($cpu_dedicated_set), ','), $::os_service_default) diff --git a/manifests/workarounds.pp b/manifests/workarounds.pp index 5ec9ffbc1..1ed8e2a5d 100644 --- a/manifests/workarounds.pp +++ b/manifests/workarounds.pp @@ -4,6 +4,11 @@ # # === Parameters: # +# [*never_download_image_if_on_rbd*] +# (optional) refuse to boot an instance if it would require downloading from +# glance and uploading to ceph instead of a COW clone +# Defaults to $::os_service_default +# # DEPRECATED # # [*enable_numa_live_migration*] @@ -11,8 +16,9 @@ # Defaults to undef # class nova::workarounds ( + $never_download_image_if_on_rbd = $::os_service_default, # DEPRECATED PARAMETER - $enable_numa_live_migration = undef, + $enable_numa_live_migration = undef, ) { if $enable_numa_live_migration != undef { @@ -22,4 +28,8 @@ class nova::workarounds ( } } + nova_config { + 'workarounds/never_download_image_if_on_rbd': value => $never_download_image_if_on_rbd; + } + } diff --git a/spec/classes/nova_workarounds_spec.rb b/spec/classes/nova_workarounds_spec.rb index 4ec74657b..911831bca 100644 --- a/spec/classes/nova_workarounds_spec.rb +++ b/spec/classes/nova_workarounds_spec.rb @@ -9,15 +9,20 @@ describe 'nova::workarounds' do shared_examples 'nova::workarounds' do context 'with default parameters' do - it { is_expected.not_to contain_resources('nova_config') } + it { is_expected.not_to contain_nova_config('workarounds/enable_numa_live_migration') } + it { is_expected.to contain_nova_config('workarounds/never_download_image_if_on_rbd').with_value('') } end context 'with overridden parameters' do let :params do - { :enable_numa_live_migration => true,} + { + :enable_numa_live_migration => true, + :never_download_image_if_on_rbd => true + } end it { is_expected.to contain_nova_config('workarounds/enable_numa_live_migration').with_value('true') } + it { is_expected.to contain_nova_config('workarounds/never_download_image_if_on_rbd').with_value('true') } end end