From 2ccc3dfff019eb0534e9a60a7c30766b360e6d37 Mon Sep 17 00:00:00 2001 From: juniorsysadmin Date: Sun, 8 Apr 2018 12:36:16 +1000 Subject: [PATCH] collectd::plugin::amqp - Use data types - $manage_package must now be a Boolean and defaults to the value of $collectd::manage_package - $amqpport cannot be a String --- manifests/plugin/amqp.pp | 34 +++++++++++------------ spec/classes/collectd_plugin_amqp_spec.rb | 6 +++- types/amqp/format.pp | 2 ++ 3 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 types/amqp/format.pp diff --git a/manifests/plugin/amqp.pp b/manifests/plugin/amqp.pp index ecdbee887..85a169e1c 100644 --- a/manifests/plugin/amqp.pp +++ b/manifests/plugin/amqp.pp @@ -1,30 +1,28 @@ # https://collectd.org/wiki/index.php/Plugin:AMQP class collectd::plugin::amqp ( - $ensure = 'present', - $manage_package = undef, - $amqphost = 'localhost', - $amqpport = 5672, - $amqpvhost = 'graphite', - $amqpuser = 'graphite', - $amqppass = 'graphite', - $amqpformat = 'Graphite', - $amqpstorerates = false, - $amqpexchange = 'metrics', + Enum['present', 'absent'] $ensure = 'present', + Boolean $manage_package = $collectd::manage_package, + Stdlib::Host $amqphost = 'localhost', + Stdlib::Port $amqpport = 5672, + String $amqpvhost = 'graphite', + String $amqpuser = 'graphite', + String $amqppass = 'graphite', + Collectd::Amqp::Format $amqpformat = 'Graphite', + Boolean $amqpstorerates = false, + String $amqpexchange = 'metrics', Boolean $amqppersistent = true, - $amqproutingkey = 'collectd', - $graphiteprefix = 'collectd.', - $escapecharacter = '_', - $interval = undef, + String $amqproutingkey = 'collectd', + String $graphiteprefix = 'collectd.', + String[1] $escapecharacter = '_', + Optional[Integer[1]] $interval = undef, Boolean $graphiteseparateinstances = false, Boolean $graphitealwaysappendds = false, ) { - include ::collectd - - $_manage_package = pick($manage_package, $::collectd::manage_package) + include collectd if $facts['os']['family'] == 'RedHat' { - if $_manage_package { + if $manage_package { package { 'collectd-amqp': ensure => $ensure, } diff --git a/spec/classes/collectd_plugin_amqp_spec.rb b/spec/classes/collectd_plugin_amqp_spec.rb index 8f3dff1ef..0e925bb9a 100644 --- a/spec/classes/collectd_plugin_amqp_spec.rb +++ b/spec/classes/collectd_plugin_amqp_spec.rb @@ -7,6 +7,10 @@ facts end + let :pre_condition do + 'include collectd' + end + options = os_specific_options(facts) context ':ensure => present' do let :params do @@ -39,7 +43,7 @@ context 'overriding default parameters' do let(:params) do { amqphost: 'myhost', - amqpport: '5666', + amqpport: 5666, amqpvhost: 'amqp', amqpuser: 'user', amqppass: 'pass', diff --git a/types/amqp/format.pp b/types/amqp/format.pp new file mode 100644 index 000000000..614845026 --- /dev/null +++ b/types/amqp/format.pp @@ -0,0 +1,2 @@ +# https://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_amqp +type Collectd::Amqp::Format = Enum['Command', 'JSON', 'Graphite']