memcached (openstack) is no longer in use
[mirror/dsa-puppet.git] / 3rdparty / modules / cinder / spec / classes / cinder_volume_rbd_spec.rb
1 require 'spec_helper'
2
3 describe 'cinder::volume::rbd' do
4   let :req_params do
5     {
6       :rbd_pool                         => 'volumes',
7       :glance_api_version               => '2',
8       :rbd_user                         => 'test',
9       :rbd_secret_uuid                  => '0123456789',
10       :rbd_ceph_conf                    => '/foo/boo/zoo/ceph.conf',
11       :rbd_flatten_volume_from_snapshot => true,
12       :volume_tmp_dir                   => '/foo/tmp',
13       :rbd_max_clone_depth              => '0'
14     }
15   end
16
17   it { should contain_class('cinder::params') }
18
19   let :params do
20     req_params
21   end
22
23   let :facts do
24     {:osfamily => 'Debian'}
25   end
26
27   describe 'rbd volume driver' do
28     it 'configure rbd volume driver' do
29       should contain_cinder_config('DEFAULT/volume_driver').with_value('cinder.volume.drivers.rbd.RBDDriver')
30
31       should contain_cinder_config('DEFAULT/rbd_ceph_conf').with_value(req_params[:rbd_ceph_conf])
32       should contain_cinder_config('DEFAULT/rbd_flatten_volume_from_snapshot').with_value(req_params[:rbd_flatten_volume_from_snapshot])
33       should contain_cinder_config('DEFAULT/volume_tmp_dir').with_value(req_params[:volume_tmp_dir])
34       should contain_cinder_config('DEFAULT/rbd_max_clone_depth').with_value(req_params[:rbd_max_clone_depth])
35       should contain_cinder_config('DEFAULT/rbd_pool').with_value(req_params[:rbd_pool])
36       should contain_cinder_config('DEFAULT/rbd_user').with_value(req_params[:rbd_user])
37       should contain_cinder_config('DEFAULT/rbd_secret_uuid').with_value(req_params[:rbd_secret_uuid])
38       should contain_file('/etc/init/cinder-volume.override').with(:ensure => 'present')
39       should contain_file_line('set initscript env').with(
40         :line    => /env CEPH_ARGS=\"--id test\"/,
41         :path    => '/etc/init/cinder-volume.override',
42         :notify  => 'Service[cinder-volume]')
43     end
44
45     context 'with rbd_secret_uuid disabled' do
46       let(:params) { req_params.merge!({:rbd_secret_uuid => false}) }
47       it { should contain_cinder_config('DEFAULT/rbd_secret_uuid').with_ensure('absent') }
48     end
49
50     context 'with volume_tmp_dir disabled' do
51       let(:params) { req_params.merge!({:volume_tmp_dir => false}) }
52       it { should contain_cinder_config('DEFAULT/volume_tmp_dir').with_ensure('absent') }
53     end
54
55   end
56
57
58   describe 'with RedHat' do
59     let :facts do
60         { :osfamily => 'RedHat' }
61     end
62
63     let :params do
64       req_params
65     end
66
67     it 'should ensure that the cinder-volume sysconfig file is present' do
68       should contain_file('/etc/sysconfig/openstack-cinder-volume').with(
69         :ensure => 'present'
70       )
71     end
72
73     it 'should configure RedHat init override' do
74       should contain_file_line('set initscript env').with(
75         :line    => /export CEPH_ARGS=\"--id test\"/,
76         :path    => '/etc/sysconfig/openstack-cinder-volume',
77         :notify  => 'Service[cinder-volume]')
78     end
79   end
80
81 end
82