+++ /dev/null
-require 'spec_helper_acceptance'
-#
-# beacuse of some serious issues with upgrading and downgrading rabbitmq on RedHat,
-# we need to run all of the 2.8.1 tests last.
-#
-# NOTE that this is only tested on RedHat and probably only works there. But I can't seem
-# to get 'confine' to work...
-#
-
-describe 'rabbitmq class with 2.8.1:' do
- case fact('osfamily')
- when 'RedHat'
- package_name = 'rabbitmq-server'
- service_name = 'rabbitmq-server'
- package_source = "http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1-1.noarch.rpm"
- package_ensure = '2.8.1-1'
- when 'SUSE'
- package_name = 'rabbitmq-server'
- service_name = 'rabbitmq-server'
- package_source = "http://www.rabbitmq.com/releases/rabbitmq-server/v2.8.1/rabbitmq-server-2.8.1-1.noarch.rpm"
- package_ensure = '2.8.1-1'
- when 'Debian'
- package_name = 'rabbitmq-server'
- service_name = 'rabbitmq-server'
- package_source = ''
- package_ensure = '2.8.1'
- when 'Archlinux'
- package_name = 'rabbitmq'
- service_name = 'rabbitmq'
- package_source = ''
- package_ensure = '2.8.1'
- end
-
- context "default class inclusion" do
- it 'should run successfully' do
- pp = <<-EOS
- class { 'rabbitmq':
- version => '2.8.1-1',
- package_source => '#{package_source}',
- package_ensure => '#{package_ensure}',
- package_provider => 'rpm',
- management_port => '55672',
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- # clean up previous 3.x install - can't be ungraded cleanly via RPM
- shell('service rabbitmq-server stop')
- shell('yum -y erase rabbitmq-server')
- shell('rm -Rf /var/lib/rabbitmq/mnesia /etc/rabbitmq /var/lib/rabbitmq/rabbitmqadmin')
- # Apply twice to ensure no errors the second time.
- apply_manifest(pp, :catch_failures => true)
- expect(apply_manifest(pp, :catch_changes => true).exit_code).to be_zero
- # DEBUG
- shell('netstat -lntp')
- end
-
- describe command('rabbitmqctl status') do
- its(:stdout) { should match /{rabbit,"RabbitMQ","2.8.1"}/ }
- end
-
- describe package(package_name) do
- it { should be_installed }
- end
-
- describe service(service_name) do
- it { should be_enabled }
- it { should be_running }
- end
- end
-
- context "disable and stop service" do
- it 'should run successfully' do
- pp = <<-EOS
- class { 'rabbitmq':
- version => '2.8.1-1',
- package_source => '#{package_source}',
- package_ensure => '#{package_ensure}',
- package_provider => 'rpm',
- management_port => '55672',
- service_ensure => 'stopped',
- admin_enable => false,
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- apply_manifest(pp, :catch_failures => true)
- end
-
- describe service(service_name) do
- it { should_not be_enabled }
- it { should_not be_running }
- end
- end
-
- context "service is unmanaged" do
- it 'should run successfully' do
- pp_pre = <<-EOS
- class { 'rabbitmq':
- version => '2.8.1-1',
- package_source => '#{package_source}',
- package_ensure => '#{package_ensure}',
- package_provider => 'rpm',
- management_port => '55672',
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- pp = <<-EOS
- class { 'rabbitmq':
- service_manage => false,
- service_ensure => 'stopped',
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- apply_manifest(pp_pre, :catch_failures => true)
- apply_manifest(pp, :catch_failures => true)
- end
-
- describe service(service_name) do
- it { should be_enabled }
- it { should be_running }
- end
- end
-
- context 'rabbitmqadmin' do
- #confine :to, :platform => 'el-6-x86'
-
- it 'should run successfully' do
- pp = <<-EOS
- class { 'rabbitmq':
- admin_enable => true,
- service_manage => true,
- version => '2.8.1-1',
- package_source => '#{package_source}',
- package_ensure => '#{package_ensure}',
- package_provider => 'rpm',
- management_port => '55672',
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- shell('rm -f /var/lib/rabbitmq/rabbitmqadmin')
- apply_manifest(pp, :catch_failures => true)
- end
-
- # since serverspec (used by beaker-rspec) can only tell present/absent for packages
- describe file('/var/lib/rabbitmq/rabbitmqadmin') do
- it { should be_file }
- end
-
- describe command('/usr/local/bin/rabbitmqadmin --help') do
- its(:exit_status) { should eq 0 }
- end
-
- end
-
- context 'rabbitmqadmin with specified default credentials' do
-
- it 'should run successfully' do
- # make sure credential change takes effect before admin_enable
- pp = <<-EOS
- class { 'rabbitmq':
- admin_enable => true,
- service_manage => true,
- version => '2.8.1-1',
- package_source => '#{package_source}',
- package_ensure => '#{package_ensure}',
- package_provider => 'rpm',
- management_port => '55672',
- default_user => 'foobar',
- default_pass => 'bazblam',
- }
- if $::osfamily == 'RedHat' {
- class { 'erlang': epel_enable => true}
- Class['erlang'] -> Class['rabbitmq']
- }
- EOS
-
- # next 3 lines - see MODULES-1085
- shell('service rabbitmq-server stop')
- shell('rm -Rf /var/lib/rabbitmq/mnesia /var/lib/rabbitmq/rabbitmqadmin')
- apply_manifest(pp, :catch_failures => true)
- end
-
- # since serverspec (used by beaker-rspec) can only tell present/absent for packages
- describe file('/var/lib/rabbitmq/rabbitmqadmin') do
- it { should be_file }
- end
-
- describe command('/usr/local/bin/rabbitmqadmin --help') do
- its(:exit_status) { should eq 0 }
- end
-
- end
-
-end