Skip to content

Commit

Permalink
Merge pull request #577 from Yuav/rabbitmq_plugin_fix
Browse files Browse the repository at this point in the history
Rabbitmq plugin fix
  • Loading branch information
bastelfreak committed Dec 1, 2016
2 parents 4a3843c + ff40dd1 commit 975daf3
Show file tree
Hide file tree
Showing 80 changed files with 494 additions and 272 deletions.
5 changes: 5 additions & 0 deletions lib/facter/python_dir.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Facter.add(:python_dir) do
setcode do
Facter::Util::Resolution.exec('python -c "import site; print(site.getsitepackages()[0])"')
end
end
199 changes: 101 additions & 98 deletions manifests/params.pp
Original file line number Diff line number Diff line change
@@ -1,128 +1,131 @@
#
class collectd::params {

$fqdnlookup = true
$collectd_hostname = $::hostname
$conf_content = undef
$interval = 10
$include = []
$internal_stats = false
$purge = undef
$purge_config = false
$recurse = undef
$read_threads = 5
$write_threads = 5
$timeout = 2
$typesdb = []
$write_queue_limit_high = undef
$write_queue_limit_low = undef
$package_ensure = 'present'
$service_ensure = 'running'
$service_enable = true
$minimum_version = '4.8'
$manage_package = true
$manage_repo = true
$manage_service = true
$package_install_options = undef
$plugin_conf_dir_mode = '0750'
$fqdnlookup = true
$collectd_hostname = $::hostname
$conf_content = undef
$interval = 10
$include = []
$internal_stats = false
$purge = undef
$purge_config = false
$recurse = undef
$read_threads = 5
$write_threads = 5
$timeout = 2
$typesdb = []
$write_queue_limit_high = undef
$write_queue_limit_low = undef
$package_ensure = 'present'
$service_ensure = 'running'
$service_enable = true
$minimum_version = '4.8'
$manage_package = true
$manage_repo = true
$manage_service = true
$package_install_options = undef
$plugin_conf_dir_mode = '0750'

case getvar('::kernel') {
'OpenBSD': { $has_wordexp = false }
default: { $has_wordexp = true }
'OpenBSD': { $has_wordexp = false }
default: { $has_wordexp = true }
}

case $::osfamily {
'Debian': {
$package_name = [ 'collectd', 'collectd-core' ]
$package_provider = 'apt'
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = "${collectd_dir}/conf.d"
$service_name = 'collectd'
$config_file = "${collectd_dir}/collectd.conf"
$root_group = 'root'
$java_dir = '/usr/share/collectd/java'
$python_dir = '/usr/share/collectd/python'
$package_name = [ 'collectd', 'collectd-core' ]
$package_provider = 'apt'
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = "${collectd_dir}/conf.d"
$service_name = 'collectd'
$config_file = "${collectd_dir}/collectd.conf"
$root_group = 'root'
$java_dir = '/usr/share/collectd/java'
$default_python_dir = '/usr/local/lib/python2.7/dist-packages'
}
'Solaris': {
$package_name = 'CSWcollectd'
$package_provider = 'pkgutil'
$collectd_dir = '/etc/opt/csw/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'cswcollectd'
$config_file = '/etc/opt/csw/collectd.conf'
$root_group = 'root'
$java_dir = undef
$python_dir = '/opt/csw/share/collectd/python'
$package_name = 'CSWcollectd'
$package_provider = 'pkgutil'
$collectd_dir = '/etc/opt/csw/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'cswcollectd'
$config_file = '/etc/opt/csw/collectd.conf'
$root_group = 'root'
$java_dir = undef
$default_python_dir = '/opt/csw/share/collectd/python'
}
'Redhat': {
$package_name = 'collectd'
$package_provider = 'yum'
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'root'
$java_dir = '/usr/share/collectd/java'
$python_dir = '/usr/share/collectd/python'
$package_name = 'collectd'
$package_provider = 'yum'
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'root'
$java_dir = '/usr/share/collectd/java'
$default_python_dir = '/usr/lib64/python2.7/site-packages'
}
'Suse': {
$package_name = 'collectd'
$package_provider = 'zypper'
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'root'
$java_dir = undef
$python_dir = '/usr/share/collectd/python'
$package_name = 'collectd'
$package_provider = 'zypper'
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'root'
$java_dir = undef
$default_python_dir = '/usr/share/collectd/python'
}
'FreeBSD': {
$package_name = 'collectd5'
$package_provider = undef
$collectd_dir = '/usr/local/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/usr/local/etc/collectd.conf'
$root_group = 'wheel'
$java_dir = undef
$python_dir = '/usr/local/share/collectd/python'
$package_name = 'collectd5'
$package_provider = undef
$collectd_dir = '/usr/local/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/usr/local/etc/collectd.conf'
$root_group = 'wheel'
$java_dir = undef
$default_python_dir = '/usr/local/share/collectd/python'
}
'OpenBSD': {
$package_name = 'collectd'
$package_provider = undef
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = '_collectd'
$java_dir = undef
$python_dir = '/usr/local/share/collectd/python'
$package_name = 'collectd'
$package_provider = undef
$collectd_dir = '/etc/collectd'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = '_collectd'
$java_dir = undef
$default_python_dir = '/usr/local/share/collectd/python'
}
'Archlinux': {
$package_name = 'collectd'
$package_provider = undef
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'wheel'
$java_dir = undef
$python_dir = '/usr/share/collectd/python'
$package_name = 'collectd'
$package_provider = undef
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'wheel'
$java_dir = undef
$default_python_dir = '/usr/share/collectd/python'
}
'Gentoo': {
$package_name = 'app-admin/collectd'
$package_provider = 'portage'
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'collectd'
$java_dir = undef
$python_dir = '/usr/share/collectd/python'
$package_name = 'app-admin/collectd'
$package_provider = 'portage'
$collectd_dir = '/etc/collectd.d'
$plugin_conf_dir = $collectd_dir
$service_name = 'collectd'
$config_file = '/etc/collectd.conf'
$root_group = 'collectd'
$java_dir = undef
$default_python_dir = '/usr/share/collectd/python'
}

default: {
fail("${::osfamily} is not supported.")
}
}

# Override with custom fact value (present only if python is installed)
$python_dir = pick($::python_dir, $default_python_dir)
}
27 changes: 24 additions & 3 deletions manifests/plugin/rabbitmq.pp
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,38 @@

$_manage_package = pick($manage_package, $::collectd::manage_package)

if ($_manage_package) {
if (!defined(Package['python-pip'])) {
package { 'python-pip': ensure => 'present', }

Package[$package_name] {
require => Package['python-pip'],
}

if $::osfamily == 'RedHat' {
# Epel is installed in install.pp if manage_repo is true
# python-pip doesn't exist in base for RedHat. Need epel installed first
if (defined(Yum::Install['epel-release'])) {
Package['python-pip'] {
require => Yum::Install['epel-release'],
}
}
}
}
}

if ($_manage_package) and ($provider_proxy) {
$install_options = [{'--proxy' => $provider_proxy}]
}
else {
} else {
$install_options = undef
}

package { $package_name:
ensure => $ensure,
provider => $package_provider,
install_options => $install_options,
}
}

collectd::plugin::python::module { 'collectd_rabbitmq.collectd_plugin':
ensure => $ensure,
config => $config,
Expand Down
4 changes: 3 additions & 1 deletion spec/acceptance/class_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ class { 'collectd': }
end
end

context 'install memory plugin' do
context 'install plugins' do
it 'works idemptontently' do
pp = <<-EOS
class { '::collectd': }
class { '::collectd::plugin::memory': }
class { '::collectd::plugin::rabbitmq': }
EOS

# Run it twice and test for idempotency
Expand Down
12 changes: 8 additions & 4 deletions spec/classes/collectd_plugin_ceph_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
{
osfamily: 'RedHat',
collectd_version: '5.5',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end

Expand Down Expand Up @@ -56,7 +57,8 @@
{
osfamily: 'RedHat',
collectd_version: '5.5',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end

Expand All @@ -77,7 +79,8 @@
{
osfamily: 'RedHat',
collectd_version: '5.5',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end

Expand All @@ -97,7 +100,8 @@
{
osfamily: 'RedHat',
collectd_version: '5.4',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end

Expand Down
12 changes: 8 additions & 4 deletions spec/classes/collectd_plugin_cgroups_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@
{
osfamily: 'RedHat',
collectd_version: '5.4.0',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end
context ':ensure => present, default params' do
let :facts do
{
osfamily: 'RedHat',
collectd_version: '5.4.0',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end
it 'Will create /etc/collectd.d/10-cgroups.conf' do
Expand All @@ -29,7 +31,8 @@
{
osfamily: 'Redhat',
collectd_version: '5.4.0',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end
let :params do
Expand All @@ -53,7 +56,8 @@
{
osfamily: 'RedHat',
collectd_version: '5.5.0',
operatingsystemmajrelease: '7'
operatingsystemmajrelease: '7',
python_dir: '/usr/local/lib/python2.7/dist-packages'
}
end

Expand Down
Loading

0 comments on commit 975daf3

Please sign in to comment.