memcached (openstack) is no longer in use
[mirror/dsa-puppet.git] / 3rdparty / modules / nova / spec / classes / nova_conductor_spec.rb
1 require 'spec_helper'
2
3 describe 'nova::conductor' do
4
5   let :pre_condition do
6     'include nova'
7   end
8
9   let :params do
10     { :enabled => true }
11   end
12
13   shared_examples 'nova-conductor' do
14
15
16     it { should contain_package('nova-conductor').with(
17       :name   => platform_params[:conductor_package_name],
18       :ensure => 'present'
19     ) }
20
21     it { should contain_service('nova-conductor').with(
22       :name      => platform_params[:conductor_service_name],
23       :hasstatus => 'true',
24       :ensure    => 'running'
25     )}
26
27     context 'with manage_service as false' do
28       let :params do
29         { :enabled        => true,
30           :manage_service => false
31         }
32       end
33       it { should contain_service('nova-conductor').without_ensure }
34     end
35
36     context 'with package version' do
37       let :params do
38         { :ensure_package => '2012.1-2' }
39       end
40
41       it { should contain_package('nova-conductor').with(
42         :ensure => params[:ensure_package]
43       )}
44     end
45
46     context 'with overriden workers parameter' do
47       before do
48         params.merge!({:workers => '5' })
49       end
50       it { should contain_nova_config('conductor/workers').with_value('5') }
51     end
52
53     context 'with default database parameters' do
54       let :pre_condition do
55         "include nova"
56       end
57
58       it { should_not contain_nova_config('database/connection') }
59       it { should_not contain_nova_config('database/slave_connection') }
60       it { should_not contain_nova_config('database/idle_timeout').with_value('3600') }
61     end
62
63     context 'with overridden database parameters' do
64       let :pre_condition do
65         "class { 'nova':
66            database_connection   => 'mysql://user:pass@db/db',
67            slave_connection      => 'mysql://user:pass@slave/db',
68            database_idle_timeout => '30',
69          }
70         "
71       end
72
73       it { should contain_nova_config('database/connection').with_value('mysql://user:pass@db/db').with_secret(true) }
74       it { should contain_nova_config('database/slave_connection').with_value('mysql://user:pass@slave/db').with_secret(true) }
75       it { should contain_nova_config('database/idle_timeout').with_value('30') }
76     end
77
78   end
79
80   context 'on Debian platforms' do
81     let :facts do
82       { :osfamily => 'Debian' }
83     end
84
85     let :platform_params do
86       { :conductor_package_name => 'nova-conductor',
87         :conductor_service_name => 'nova-conductor' }
88     end
89
90     it_configures 'nova-conductor'
91   end
92
93   context 'on Redhat platforms' do
94     let :facts do
95       { :osfamily => 'RedHat' }
96     end
97
98     let :platform_params do
99       { :conductor_package_name => 'openstack-nova-conductor',
100         :conductor_service_name => 'openstack-nova-conductor' }
101     end
102
103     it_configures 'nova-conductor'
104   end
105
106 end