Skip to content

Commit

Permalink
Ensure python package on Debian when admin_enable and service_manage …
Browse files Browse the repository at this point in the history
…are set
  • Loading branch information
William Yardley committed Sep 8, 2017
1 parent b78ef7c commit b5f27b7
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
1 change: 1 addition & 0 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
String $package_name = $rabbitmq::params::package_name,
Optional[String] $package_source = undef,
Optional[String] $package_provider = undef,
Optional[String] $python_ensure = $rabbitmq::params::python_ensure,
Boolean $repos_ensure = $rabbitmq::params::repos_ensure,
$manage_repos = undef,
$rabbitmq_user = $rabbitmq::params::rabbitmq_user,
Expand Down
11 changes: 10 additions & 1 deletion manifests/install/rabbitmqadmin.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@

require '::archive'

# Newer versions of Ubuntu (16.04) ship with Python 3 only by default.
if $rabbitmq::python_ensure {
$python_ensure = $rabbitmq::python_ensure
ensure_packages($python_ensure)
$rabbitmqadmin_require = [Archive['rabbitmqadmin'], Package[$python_ensure]]
} else {
$rabbitmqadmin_require = Archive['rabbitmqadmin']
}

if($rabbitmq::ssl and $rabbitmq::management_ssl) {
$management_port = $rabbitmq::ssl_management_port
$protocol = 'https'
Expand Down Expand Up @@ -45,7 +54,7 @@
group => '0',
source => "${rabbitmq::rabbitmq_home}/rabbitmqadmin",
mode => '0755',
require => Archive['rabbitmqadmin'],
require => $rabbitmqadmin_require,
}

}
6 changes: 6 additions & 0 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
$rabbitmq_user = 'rabbitmq'
$rabbitmq_group = 'rabbitmq'
$rabbitmq_home = '/var/lib/rabbitmq'
$python_ensure = undef
}
'Debian': {
$package_ensure = 'installed'
Expand All @@ -20,6 +21,7 @@
$rabbitmq_user = 'rabbitmq'
$rabbitmq_group = 'rabbitmq'
$rabbitmq_home = '/var/lib/rabbitmq'
$python_ensure = 'python'
}
'OpenBSD': {
$package_ensure = 'installed'
Expand All @@ -28,6 +30,7 @@
$rabbitmq_user = '_rabbitmq'
$rabbitmq_group = '_rabbitmq'
$rabbitmq_home = '/var/rabbitmq'
$python_ensure = undef
}
'FreeBSD': {
$package_ensure = 'installed'
Expand All @@ -36,6 +39,7 @@
$rabbitmq_user = 'rabbitmq'
$rabbitmq_group = 'rabbitmq'
$rabbitmq_home = '/var/db/rabbitmq'
$python_ensure = undef
}
'RedHat': {
$package_ensure = 'installed'
Expand All @@ -44,6 +48,7 @@
$rabbitmq_user = 'rabbitmq'
$rabbitmq_group = 'rabbitmq'
$rabbitmq_home = '/var/lib/rabbitmq'
$python_ensure = undef
}
'SUSE': {
$package_ensure = 'installed'
Expand All @@ -52,6 +57,7 @@
$rabbitmq_user = 'rabbitmq'
$rabbitmq_group = 'rabbitmq'
$rabbitmq_home = '/var/lib/rabbitmq'
$python_ensure = undef
}
default: {
fail("The ${module_name} module is not supported on an ${facts['os']['family']} based system.")
Expand Down
15 changes: 10 additions & 5 deletions spec/classes/rabbitmq_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,9 @@

it {
is_expected.to contain_exec('rabbitmq-systemd-reload').with(
'command' => '/usr/bin/systemctl daemon-reload',
'notify' => 'Class[Rabbitmq::Service]',
'refreshonly' => true
command: '/usr/bin/systemctl daemon-reload',
notify: 'Class[Rabbitmq::Service]',
refreshonly: :true
)
}
end
Expand All @@ -197,18 +197,23 @@
it 'we enable the admin interface by default' do
is_expected.to contain_class('rabbitmq::install::rabbitmqadmin')
is_expected.to contain_rabbitmq_plugin('rabbitmq_management').with(
'notify' => 'Class[Rabbitmq::Service]'
notify: 'Class[Rabbitmq::Service]'
)
is_expected.to contain_archive('rabbitmqadmin').with_source('http://1.1.1.1:15672/cli/rabbitmqadmin')
end
if facts[:os]['family'] == 'Debian'
it 'python is in the catalog on Debian / Ubuntu' do
is_expected.to contain_package('python')
end
end
end
context 'with $management_ip_address undef and service_manage set to true' do
let(:params) { { admin_enable: true, management_ip_address: :undef } }

it 'we enable the admin interface by default' do
is_expected.to contain_class('rabbitmq::install::rabbitmqadmin')
is_expected.to contain_rabbitmq_plugin('rabbitmq_management').with(
'notify' => 'Class[Rabbitmq::Service]'
notify: 'Class[Rabbitmq::Service]'
)
is_expected.to contain_archive('rabbitmqadmin').with_source('http://127.0.0.1:15672/cli/rabbitmqadmin')
end
Expand Down

0 comments on commit b5f27b7

Please sign in to comment.