46836974dbd34f5e6a63c748926fca0b9d2c4d03
[mirror/dsa-puppet.git] / 3rdparty / modules / nova / spec / classes / nova_scheduler_spec.rb
1 require 'spec_helper'
2
3 describe 'nova::scheduler' 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-scheduler' do
14
15
16     it { should contain_package('nova-scheduler').with(
17       :name   => platform_params[:scheduler_package_name],
18       :ensure => 'present'
19     ) }
20
21     it { should contain_service('nova-scheduler').with(
22       :name      => platform_params[:scheduler_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-scheduler').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-scheduler').with(
42         :ensure => params[:ensure_package]
43       )}
44     end
45
46     context 'with default database parameters' do
47       let :pre_condition do
48         "include nova"
49       end
50
51       it { should_not contain_nova_config('database/connection') }
52       it { should_not contain_nova_config('database/slave_connection') }
53       it { should_not contain_nova_config('database/idle_timeout').with_value('3600') }
54     end
55
56     context 'with overridden database parameters' do
57       let :pre_condition do
58         "class { 'nova':
59            database_connection   => 'mysql://user:pass@db/db',
60            slave_connection      => 'mysql://user:pass@slave/db',
61            database_idle_timeout => '30',
62          }
63         "
64       end
65
66       it { should contain_nova_config('database/connection').with_value('mysql://user:pass@db/db').with_secret(true) }
67       it { should contain_nova_config('database/slave_connection').with_value('mysql://user:pass@slave/db').with_secret(true) }
68       it { should contain_nova_config('database/idle_timeout').with_value('30') }
69     end
70
71   end
72
73   context 'on Debian platforms' do
74     let :facts do
75       { :osfamily => 'Debian' }
76     end
77
78     let :platform_params do
79       { :scheduler_package_name => 'nova-scheduler',
80         :scheduler_service_name => 'nova-scheduler' }
81     end
82
83     it_configures 'nova-scheduler'
84   end
85
86   context 'on Redhat platforms' do
87     let :facts do
88       { :osfamily => 'RedHat' }
89     end
90
91     let :platform_params do
92       { :scheduler_package_name => 'openstack-nova-scheduler',
93         :scheduler_service_name => 'openstack-nova-scheduler' }
94     end
95
96     it_configures 'nova-scheduler'
97   end
98
99 end