diff --git a/manifests/api.pp b/manifests/api.pp index 1e14201ff..942663af4 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -328,9 +328,15 @@ as a standalone service, or httpd for being run by a httpd server") if !$nova_metadata_wsgi_enabled { nova_config { - 'DEFAULT/metadata_workers': value => $metadata_workers; - 'DEFAULT/metadata_listen': value => $metadata_listen; - 'DEFAULT/metadata_listen_port': value => $metadata_listen_port; + 'DEFAULT/metadata_workers': value => $metadata_workers; + 'DEFAULT/metadata_listen': value => $metadata_listen; + 'DEFAULT/metadata_listen_port': value => $metadata_listen_port; + } + } else { + nova_config { + 'DEFAULT/metadata_workers': ensure => absent; + 'DEFAULT/metadata_listen': ensure => absent; + 'DEFAULT/metadata_listen_port': ensure => absent; } } diff --git a/spec/classes/nova_api_spec.rb b/spec/classes/nova_api_spec.rb index 645f1a4fb..dcbf46e9f 100644 --- a/spec/classes/nova_api_spec.rb +++ b/spec/classes/nova_api_spec.rb @@ -221,8 +221,9 @@ describe 'nova::api' do context 'when running nova API in wsgi for compute, and metadata in wsgi' do before do params.merge!({ - :service_name => 'httpd', - :nova_metadata_wsgi_enabled => true }) + :service_name => 'httpd', + :nova_metadata_wsgi_enabled => true + }) end let :pre_condition do @@ -234,12 +235,15 @@ describe 'nova::api' do end it 'disable nova API service' do - is_expected.to contain_service('nova-api').with( + is_expected.to contain_service('nova-api').with( :ensure => 'stopped', :name => platform_params[:nova_api_service], :enable => false, :tag => 'nova-service', ) + is_expected.to contain_nova_config('DEFAULT/metadata_workers').with_ensure('absent') + is_expected.to contain_nova_config('DEFAULT/metadata_listen').with_ensure('absent') + is_expected.to contain_nova_config('DEFAULT/metadata_listen_port').with_ensure('absent') end end