diff --git a/manifests/init.pp b/manifests/init.pp index e437a1f8a..42916e796 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -316,6 +316,11 @@ # (optional) Set log output to verbose output. # Defaults to undef # +# [*purge_config*] +# (optional) Whether to set only the specified config options +# in the nova config. +# Defaults to false. +# class nova( $ensure_package = 'present', $database_connection = undef, @@ -386,6 +391,7 @@ class nova( $upgrade_level_network = undef, $upgrade_level_scheduler = undef, $use_ipv6 = $::os_service_default, + $purge_config = false, # DEPRECATED PARAMETERS $install_utilities = undef, $verbose = undef, @@ -484,6 +490,10 @@ class nova( refreshonly => true, } + resources { 'nova_config': + purge => $purge_config, + } + if $image_service == 'nova.image.glance.GlanceImageService' { if $glance_api_servers { nova_config { 'glance/api_servers': value => $glance_api_servers } diff --git a/spec/classes/nova_init_spec.rb b/spec/classes/nova_init_spec.rb index cdf995b16..880dc1ba8 100644 --- a/spec/classes/nova_init_spec.rb +++ b/spec/classes/nova_init_spec.rb @@ -110,7 +110,8 @@ describe 'nova' do :upgrade_level_consoleauth => '1.0.0', :upgrade_level_intercell => '1.0.0', :upgrade_level_network => '1.0.0', - :upgrade_level_scheduler => '1.0.0' } + :upgrade_level_scheduler => '1.0.0', + :purge_config => false, } end it 'installs packages' do @@ -118,6 +119,12 @@ describe 'nova' do is_expected.to contain_package('python-nova').with('ensure' => '2012.1.1-15.el6') end + it 'passes purge to resource' do + is_expected.to contain_resources('nova_config').with({ + :purge => false + }) + end + it 'configures image service' do is_expected.to contain_nova_config('DEFAULT/image_service').with_value('nova.image.local.LocalImageService') is_expected.to_not contain_nova_config('glance/api_servers')