
The nova::metadata class contains only resources to manage options and should be used along with the nova::api class to launch the service. Thus we don't have to include the keystoneauth class or the db class from this class because these are included by the api class. Change-Id: I457f6b31cee4653358343e71b1e1c96ca7fdabe7
68 lines
2.3 KiB
Ruby
68 lines
2.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'nova::metadata' do
|
|
|
|
let :params do
|
|
{}
|
|
end
|
|
|
|
shared_examples 'nova-metadata' do
|
|
|
|
context 'with default parameters' do
|
|
|
|
it 'configures various stuff' do
|
|
is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '<SERVICE DEFAULT>')
|
|
is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => '<SERVICE DEFAULT>')
|
|
is_expected.to contain_nova_config('api/dhcp_domain').with('value' => '<SERVICE DEFAULT>')
|
|
end
|
|
|
|
it 'unconfigures neutron_metadata proxy' do
|
|
is_expected.to contain_nova_config('neutron/service_metadata_proxy').with(:value => false)
|
|
is_expected.to contain_nova_config('neutron/metadata_proxy_shared_secret').with(:ensure => 'absent')
|
|
end
|
|
end
|
|
|
|
context 'with overridden parameters' do
|
|
before do
|
|
params.merge!({
|
|
:neutron_metadata_proxy_shared_secret => 'secrete',
|
|
:local_metadata_per_cell => true,
|
|
:metadata_cache_expiration => 15,
|
|
:dhcp_domain => 'foo',
|
|
})
|
|
end
|
|
|
|
it 'configures various stuff' do
|
|
is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => true)
|
|
is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '15')
|
|
is_expected.to contain_nova_config('api/dhcp_domain').with('value' => 'foo')
|
|
is_expected.to contain_nova_config('neutron/service_metadata_proxy').with('value' => true)
|
|
is_expected.to contain_nova_config('neutron/metadata_proxy_shared_secret').with('value' => 'secrete').with_secret(true)
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
on_supported_os({
|
|
:supported_os => OSDefaults.get_supported_os
|
|
}).each do |os,facts|
|
|
context "on #{os}" do
|
|
let (:facts) do
|
|
facts.merge!(OSDefaults.get_facts({ :os_workers => 5 }))
|
|
end
|
|
|
|
let (:platform_params) do
|
|
case facts[:os]['family']
|
|
when 'Debian'
|
|
{ :nova_api_package => 'nova-api',
|
|
:nova_api_service => 'nova-api' }
|
|
when 'RedHat'
|
|
{ :nova_api_package => 'openstack-nova-api',
|
|
:nova_api_service => 'openstack-nova-api' }
|
|
end
|
|
end
|
|
it_behaves_like 'nova-metadata'
|
|
end
|
|
end
|
|
end
|