Skip to content

Commit

Permalink
Merge pull request #214 from jjasghar/centos7
Browse files Browse the repository at this point in the history
CentOS 7 support
  • Loading branch information
JJ Asghar committed Feb 5, 2015
2 parents 495926a + dbcc1c4 commit 3aad226
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 39 deletions.
1 change: 1 addition & 0 deletions .kitchen.yml
Expand Up @@ -7,6 +7,7 @@ provisioner:

platforms:
- name: centos-6.5
- name: centos-7.0
- name: ubuntu-12.04
- name: ubuntu-14.04
- name: debian-7.7
Expand Down
2 changes: 1 addition & 1 deletion Berksfile
@@ -1,4 +1,4 @@
source 'https://supermarket.getchef.com'
source 'https://supermarket.chef.io'

metadata

Expand Down
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -11,6 +11,7 @@ This cookbook depends on the [erlang cookbook](https://supermarket.chef.io/cookb
The release was tested with (rabbitmq.com/distro version), from the [kitchen.yml](.kitchen.cloud.yml).

- CentOS 6.5
- CentOS 7.0
- Ubuntu 12.04
- Ubuntu 14.04
- Debian 7.0
Expand Down
3 changes: 3 additions & 0 deletions metadata.rb
Expand Up @@ -9,7 +9,10 @@
recipe 'rabbitmq::plugin_management', 'Manage plugins with node attributes'
recipe 'rabbitmq::virtualhost_management', 'Manage virtualhost with node attributes'
recipe 'rabbitmq::user_management', 'Manage users with node attributes'

depends 'erlang', '>= 0.9'
depends 'yum-epel'
depends 'yum-erlang_solutions'

supports 'debian'
supports 'ubuntu'
Expand Down
8 changes: 8 additions & 0 deletions recipes/default.rb
Expand Up @@ -24,6 +24,14 @@ class Chef::Resource # rubocop:disable all
include Opscode::RabbitMQ # rubocop:enable all
end

case node['platform_family']
when 'rhel', 'fedora'
if node['platform_version'].to_f >= 7.0
include_recipe 'yum-epel'
include_recipe 'yum-erlang_solutions'
end
end

include_recipe 'erlang'

## Install the package
Expand Down
99 changes: 63 additions & 36 deletions spec/default_spec.rb
Expand Up @@ -72,24 +72,7 @@
end
end

describe 'debian-use_distro_version' do
let(:runner) { ChefSpec::ServerRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['rabbitmq']['use_distro_version'] = true
runner.converge(described_recipe)
end

it 'should install the logrotate package' do
expect(chef_run).to install_package('logrotate')
end

it 'should install the rabbitmq distro package' do
expect(chef_run).to install_package('rabbitmq-server')
end
end

describe 'debian' do
describe 'ubuntu' do
let(:runner) { ChefSpec::ServerRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
Expand All @@ -110,38 +93,82 @@
it 'installs the rabbitmq-server deb_package with the default action' do
expect(chef_run).to install_dpkg_package('/tmp/rabbitmq-server_3.4.3-1_all.deb')
end
end

it 'creates a rabbitmq-server rpm in the cache path' do
expect(chef_run).to create_remote_file_if_missing('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not create_remote_file_if_missing('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
end
describe 'uses distro version' do
before do
node.set['rabbitmq']['use_distro_version'] = true
end

it 'installs the rabbitmq-server rpm_package with the default action' do
expect(chef_run).to install_rpm_package('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not install_rpm_package('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
it 'should install rabbitmq-server package' do
expect(chef_run).to install_package('rabbitmq-server')
end

it 'should install the logrotate package' do
expect(chef_run).to install_package('logrotate')
end
end
end

describe 'uses distro version' do
before do
node.set['rabbitmq']['use_distro_version'] = true
describe 'redhat' do
let(:runner) { ChefSpec::ServerRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)
end

it 'creates a rabbitmq-server rpm in the cache path' do
expect(chef_run).to create_remote_file_if_missing('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not create_remote_file_if_missing('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
end

it 'should install rabbitmq-server package' do
expect(chef_run).to install_package('rabbitmq-server')
it 'installs the rabbitmq-server rpm_package with the default action' do
expect(chef_run).to install_rpm_package('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not install_rpm_package('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
end

describe 'uses distro version' do
before do
node.set['rabbitmq']['use_distro_version'] = true
end

it 'should install rabbitmq-server package' do
expect(chef_run).to install_package('rabbitmq-server')
end
end
end

describe 'redhat-use_distro_version' do
let(:runner) { ChefSpec::ServerRunner.new(REDHAT_OPTS) }
describe 'centos' do
let(:runner) { ChefSpec::ServerRunner.new(CENTOS_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['rabbitmq']['use_distro_version'] = true
runner.converge(described_recipe)
end

it 'should install the rabbitmq distro package' do
expect(chef_run).to install_package('rabbitmq-server')
it 'creates a rabbitmq-server rpm in the cache path' do
expect(chef_run).to create_remote_file_if_missing('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not create_remote_file_if_missing('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
end

it 'installs the rabbitmq-server rpm_package with the default action' do
expect(chef_run).to install_rpm_package('/tmp/rabbitmq-server-3.4.3-1.noarch.rpm')
expect(chef_run).to_not install_rpm_package('/tmp/not-rabbitmq-server-3.4.3-1.noarch.rpm')
end

it 'includes the `yum-epel` recipe' do
expect(chef_run).to include_recipe('yum-epel')
end
it 'includes the `yum-erlang_solutions` recipe' do
expect(chef_run).to include_recipe('yum-erlang_solutions')
end

describe 'uses distro version' do
before do
node.set['rabbitmq']['use_distro_version'] = true
end

it 'should install rabbitmq-server package' do
expect(chef_run).to install_package('rabbitmq-server')
end
end
end

Expand Down
8 changes: 8 additions & 0 deletions spec/policy_management_spec.rb
Expand Up @@ -12,4 +12,12 @@
it 'includes the `default` recipe' do
expect(chef_run).to include_recipe('rabbitmq::default')
end

it 'sets a rabbitmq policy ha-all' do
expect(chef_run).to set_rabbitmq_policy('ha-all')
end

it 'sets a rabbitmq policy ha-two' do
expect(chef_run).to set_rabbitmq_policy('ha-two')
end
end
5 changes: 3 additions & 2 deletions spec/spec_helper.rb
Expand Up @@ -26,8 +26,9 @@
}
CENTOS_OPTS = {
:platform => 'centos',
:version => '6.5',
:log_level => LOG_LEVEL
:version => '7.0',
:log_level => LOG_LEVEL,
:file_cache_path => '/tmp'
}
FEDORA_OPTS = {
:platform => 'fedora',
Expand Down

0 comments on commit 3aad226

Please sign in to comment.