1 require 'spec_helper_acceptance'
3 # beacuse of some serious issues with upgrading and downgrading rabbitmq on RedHat,
4 # we need to run all of the 2.8.1 tests last.
6 # NOTE that this is only tested on RedHat and probably only works there. But I can't seem
7 # to get 'confine' to work...
10 describe 'rabbitmq class with 2.8.1:' do
13 package_name = 'rabbitmq-server'
14 service_name = 'rabbitmq-server'
15 package_source = "http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1-1.noarch.rpm"
16 package_ensure = '2.8.1-1'
18 package_name = 'rabbitmq-server'
19 service_name = 'rabbitmq-server'
20 package_source = "http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1-1.noarch.rpm"
21 package_ensure = '2.8.1-1'
23 package_name = 'rabbitmq-server'
24 service_name = 'rabbitmq-server'
26 package_ensure = '2.8.1'
28 package_name = 'rabbitmq'
29 service_name = 'rabbitmq'
31 package_ensure = '2.8.1'
34 context "default class inclusion" do
35 it 'should run successfully' do
39 package_source => '#{package_source}',
40 package_ensure => '#{package_ensure}',
41 package_provider => 'rpm',
42 management_port => '55672',
44 if $::osfamily == 'RedHat' {
45 class { 'erlang': epel_enable => true}
46 Class['erlang'] -> Class['rabbitmq']
50 # clean up previous 3.x install - can't be ungraded cleanly via RPM
51 shell('service rabbitmq-server stop')
52 shell('yum -y erase rabbitmq-server')
53 shell('rm -Rf /var/lib/rabbitmq/mnesia /etc/rabbitmq /var/lib/rabbitmq/rabbitmqadmin')
54 # Apply twice to ensure no errors the second time.
55 apply_manifest(pp, :catch_failures => true)
56 expect(apply_manifest(pp, :catch_changes => true).exit_code).to be_zero
58 shell('netstat -lntp')
61 describe command('rabbitmqctl status') do
62 its(:stdout) { should match /{rabbit,"RabbitMQ","2.8.1"}/ }
65 describe package(package_name) do
66 it { should be_installed }
69 describe service(service_name) do
70 it { should be_enabled }
71 it { should be_running }
75 context "disable and stop service" do
76 it 'should run successfully' do
80 package_source => '#{package_source}',
81 package_ensure => '#{package_ensure}',
82 package_provider => 'rpm',
83 management_port => '55672',
84 service_ensure => 'stopped',
85 admin_enable => false,
87 if $::osfamily == 'RedHat' {
88 class { 'erlang': epel_enable => true}
89 Class['erlang'] -> Class['rabbitmq']
93 apply_manifest(pp, :catch_failures => true)
96 describe service(service_name) do
97 it { should_not be_enabled }
98 it { should_not be_running }
102 context "service is unmanaged" do
103 it 'should run successfully' do
106 version => '2.8.1-1',
107 package_source => '#{package_source}',
108 package_ensure => '#{package_ensure}',
109 package_provider => 'rpm',
110 management_port => '55672',
112 if $::osfamily == 'RedHat' {
113 class { 'erlang': epel_enable => true}
114 Class['erlang'] -> Class['rabbitmq']
120 service_manage => false,
121 service_ensure => 'stopped',
123 if $::osfamily == 'RedHat' {
124 class { 'erlang': epel_enable => true}
125 Class['erlang'] -> Class['rabbitmq']
129 apply_manifest(pp_pre, :catch_failures => true)
130 apply_manifest(pp, :catch_failures => true)
133 describe service(service_name) do
134 it { should be_enabled }
135 it { should be_running }
139 context 'rabbitmqadmin' do
140 #confine :to, :platform => 'el-6-x86'
142 it 'should run successfully' do
145 admin_enable => true,
146 service_manage => true,
147 version => '2.8.1-1',
148 package_source => '#{package_source}',
149 package_ensure => '#{package_ensure}',
150 package_provider => 'rpm',
151 management_port => '55672',
153 if $::osfamily == 'RedHat' {
154 class { 'erlang': epel_enable => true}
155 Class['erlang'] -> Class['rabbitmq']
159 shell('rm -f /var/lib/rabbitmq/rabbitmqadmin')
160 apply_manifest(pp, :catch_failures => true)
163 # since serverspec (used by beaker-rspec) can only tell present/absent for packages
164 describe file('/var/lib/rabbitmq/rabbitmqadmin') do
165 it { should be_file }
168 describe command('/usr/local/bin/rabbitmqadmin --help') do
169 its(:exit_status) { should eq 0 }
174 context 'rabbitmqadmin with specified default credentials' do
176 it 'should run successfully' do
177 # make sure credential change takes effect before admin_enable
180 admin_enable => true,
181 service_manage => true,
182 version => '2.8.1-1',
183 package_source => '#{package_source}',
184 package_ensure => '#{package_ensure}',
185 package_provider => 'rpm',
186 management_port => '55672',
187 default_user => 'foobar',
188 default_pass => 'bazblam',
190 if $::osfamily == 'RedHat' {
191 class { 'erlang': epel_enable => true}
192 Class['erlang'] -> Class['rabbitmq']
196 # next 3 lines - see MODULES-1085
197 shell('service rabbitmq-server stop')
198 shell('rm -Rf /var/lib/rabbitmq/mnesia /var/lib/rabbitmq/rabbitmqadmin')
199 apply_manifest(pp, :catch_failures => true)
202 # since serverspec (used by beaker-rspec) can only tell present/absent for packages
203 describe file('/var/lib/rabbitmq/rabbitmqadmin') do
204 it { should be_file }
207 describe command('/usr/local/bin/rabbitmqadmin --help') do
208 its(:exit_status) { should eq 0 }