]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/openstacklib/spec/defines/openstacklib_db_postgresql_spec.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / openstacklib / spec / defines / openstacklib_db_postgresql_spec.rb
1 require 'spec_helper'
2
3 describe 'openstacklib::db::postgresql' do
4   password_hash = 'AA1420F182E88B9E5F874F6FBE7459291E8F4601'
5   title = 'nova'
6   let (:title) { title }
7
8   let :required_params do
9     { :password_hash => password_hash }
10   end
11
12   context 'on a RedHat osfamily' do
13     let :facts do
14       {
15         :postgres_default_version => '8.4',
16         :osfamily => 'RedHat'
17       }
18     end
19
20     context 'with only required parameters' do
21       let :params do
22         required_params
23       end
24
25       it { is_expected.to contain_postgresql__server__db(title).with(
26         :user     => title,
27         :password => password_hash
28       )}
29     end
30
31     context 'when overriding encoding' do
32       let :params do
33         { :encoding => 'latin1' }.merge(required_params)
34       end
35       it { is_expected.to contain_postgresql__server__db(title).with_encoding(params[:encoding]) }
36     end
37
38     context 'when omitting the required parameter password_hash' do
39       let :params do
40         required_params.delete(:password_hash)
41       end
42
43       it { expect { is_expected.to raise_error(Puppet::Error) } }
44     end
45
46     context 'when notifying other resources' do
47       let :pre_condition do
48         'exec { "nova-db-sync": }'
49       end
50       let :params do
51         { :notify => 'Exec[nova-db-sync]'}.merge(required_params)
52       end
53
54       it {is_expected.to contain_exec('nova-db-sync').that_subscribes_to("Openstacklib::Db::Postgresql[#{title}]") }
55     end
56
57     context 'when required for other openstack services' do
58       let :pre_condition do
59         'service {"keystone":}'
60       end
61       let :title do
62         'keystone'
63       end
64       let :params do
65         { :before => 'Service[keystone]'}.merge(required_params)
66       end
67
68       it { is_expected.to contain_service('keystone').that_requires("Openstacklib::Db::Postgresql[keystone]") }
69     end
70
71   end
72
73   context 'on a Debian osfamily' do
74     let :facts do
75       {
76         :osfamily => 'Debian'
77       }
78     end
79
80     context 'with only required parameters' do
81       let :params do
82         required_params
83       end
84
85       it { is_expected.to contain_postgresql__server__db(title).with(
86         :user     => title,
87         :password => password_hash
88       )}
89     end
90
91     context 'when overriding encoding' do
92       let :params do
93         { :encoding => 'latin1' }.merge(required_params)
94       end
95       it { is_expected.to contain_postgresql__server__db(title).with_encoding(params[:encoding]) }
96     end
97
98     context 'when omitting the required parameter password_hash' do
99       let :params do
100         required_params.delete(:password_hash)
101       end
102
103       it { expect { is_expected.to raise_error(Puppet::Error) } }
104     end
105
106     context 'when notifying other resources' do
107       let :pre_condition do
108         'exec { "nova-db-sync": }'
109       end
110       let :params do
111         { :notify => 'Exec[nova-db-sync]'}.merge(required_params)
112       end
113
114       it {is_expected.to contain_exec('nova-db-sync').that_subscribes_to("Openstacklib::Db::Postgresql[#{title}]") }
115     end
116
117     context 'when required for other openstack services' do
118       let :pre_condition do
119         'service {"keystone":}'
120       end
121       let :title do
122         'keystone'
123       end
124       let :params do
125         { :before => 'Service[keystone]'}.merge(required_params)
126       end
127
128       it { is_expected.to contain_service('keystone').that_requires("Openstacklib::Db::Postgresql[keystone]") }
129     end
130
131   end
132
133 end