57f9a839e64ba91340202f8f227e189e5b28131c
[mirror/dsa-puppet.git] / 3rdparty / modules / neutron / spec / classes / neutron_agents_metadata_spec.rb
1 require 'spec_helper'
2
3 describe 'neutron::agents::metadata' do
4
5   let :pre_condition do
6     "class { 'neutron': rabbit_password => 'passw0rd' }"
7   end
8
9   let :params do
10     { :package_ensure   => 'present',
11       :debug            => false,
12       :enabled          => true,
13       :auth_url         => 'http://localhost:35357/v2.0',
14       :auth_insecure    => false,
15       :auth_region      => 'RegionOne',
16       :auth_tenant      => 'services',
17       :auth_user        => 'neutron',
18       :auth_password    => 'password',
19       :metadata_ip      => '127.0.0.1',
20       :metadata_port    => '8775',
21       :metadata_backlog => '4096',
22       :shared_secret    => 'metadata-secret'
23     }
24   end
25
26   shared_examples_for 'neutron metadata agent' do
27
28     it { should contain_class('neutron::params') }
29
30     it 'configures neutron metadata agent service' do
31       should contain_service('neutron-metadata').with(
32         :name    => platform_params[:metadata_agent_service],
33         :enable  => params[:enabled],
34         :ensure => 'running',
35         :require => 'Class[Neutron]'
36       )
37     end
38
39     context 'with manage_service as false' do
40       before :each do
41         params.merge!(:manage_service => false)
42       end
43       it 'should not start/stop service' do
44         should contain_service('neutron-metadata').without_ensure
45       end
46     end
47
48     it 'configures metadata_agent.ini' do
49       should contain_neutron_metadata_agent_config('DEFAULT/debug').with(:value => params[:debug])
50       should contain_neutron_metadata_agent_config('DEFAULT/auth_url').with(:value => params[:auth_url])
51       should contain_neutron_metadata_agent_config('DEFAULT/auth_insecure').with(:value => params[:auth_insecure])
52       should contain_neutron_metadata_agent_config('DEFAULT/auth_ca_cert').with_ensure('absent')
53       should contain_neutron_metadata_agent_config('DEFAULT/auth_region').with(:value => params[:auth_region])
54       should contain_neutron_metadata_agent_config('DEFAULT/admin_tenant_name').with(:value => params[:auth_tenant])
55       should contain_neutron_metadata_agent_config('DEFAULT/admin_user').with(:value => params[:auth_user])
56       should contain_neutron_metadata_agent_config('DEFAULT/admin_password').with(:value => params[:auth_password])
57       should contain_neutron_metadata_agent_config('DEFAULT/admin_password').with_secret( true )
58       should contain_neutron_metadata_agent_config('DEFAULT/nova_metadata_ip').with(:value => params[:metadata_ip])
59       should contain_neutron_metadata_agent_config('DEFAULT/nova_metadata_port').with(:value => params[:metadata_port])
60       should contain_neutron_metadata_agent_config('DEFAULT/metadata_workers').with(:value => facts[:processorcount])
61       should contain_neutron_metadata_agent_config('DEFAULT/metadata_backlog').with(:value => params[:metadata_backlog])
62       should contain_neutron_metadata_agent_config('DEFAULT/metadata_proxy_shared_secret').with(:value => params[:shared_secret])
63       should contain_neutron_metadata_agent_config('DEFAULT/cache_url').with(:value => 'memory://?default_ttl=5')
64     end
65   end
66
67   shared_examples_for 'neutron metadata agent with auth_insecure and auth_ca_cert set' do
68     let :params do
69       { :auth_ca_cert  => '/some/cert',
70         :auth_insecure => true,
71         :auth_password => 'blah',
72         :shared_secret => '42'
73       }
74     end
75
76     it 'configures certificate' do
77       should contain_neutron_metadata_agent_config('DEFAULT/auth_ca_cert').with_value('/some/cert')
78       should contain_neutron_metadata_agent_config('DEFAULT/auth_insecure').with_value('true')
79     end
80   end
81
82   context 'on Debian platforms' do
83     let :facts do
84       { :osfamily => 'Debian',
85         :processorcount => '2' }
86     end
87
88     let :platform_params do
89       { :metadata_agent_package => 'neutron-metadata-agent',
90         :metadata_agent_service => 'neutron-metadata-agent' }
91     end
92
93     it 'installs neutron metadata agent package' do
94       should contain_package('neutron-metadata').with(
95         :ensure => params[:package_ensure],
96         :name   => platform_params[:metadata_agent_package]
97       )
98     end
99
100     it_configures 'neutron metadata agent'
101     it_configures 'neutron metadata agent with auth_insecure and auth_ca_cert set'
102
103   end
104
105   context 'on Red Hat platforms' do
106     let :facts do
107       { :osfamily => 'RedHat',
108         :processorcount => '2' }
109     end
110
111     let :platform_params do
112       { :metadata_agent_service => 'neutron-metadata-agent' }
113     end
114
115     it_configures 'neutron metadata agent'
116     it_configures 'neutron metadata agent with auth_insecure and auth_ca_cert set'
117
118   end
119
120 end