diff --git a/manifests/plugin/protocols.pp b/manifests/plugin/protocols.pp index fafa8d9a1..50b3e96d0 100644 --- a/manifests/plugin/protocols.pp +++ b/manifests/plugin/protocols.pp @@ -1,8 +1,8 @@ # See http://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_protocols class collectd::plugin::protocols ( - $ensure = 'present', - Boolean $ignoreselected = false, - Array $values = [] + $ensure = 'present', + Optional[Boolean] $ignoreselected = undef, + Array $values = [] ) { include collectd diff --git a/spec/classes/collectd_plugin_protocols_spec.rb b/spec/classes/collectd_plugin_protocols_spec.rb index 0e5d2efe0..57344de28 100644 --- a/spec/classes/collectd_plugin_protocols_spec.rb +++ b/spec/classes/collectd_plugin_protocols_spec.rb @@ -32,6 +32,30 @@ end end + describe 'ignoreselected' do + context ':ignoreselected => false' do + let :params do + { + values: %w[protocol1 protocol2], + ignoreselected: false + } + end + + it { is_expected.to contain_file('protocols.load').with_content(%r{\n\s*Value "protocol1"\n\s*Value "protocol2"\n\s*IgnoreSelected false\n}) } + end + + context ':ignoreselected => true' do + let :params do + { + values: %w[protocol1 protocol2], + ignoreselected: true + } + end + + it { is_expected.to contain_file('protocols.load').with_content(%r{\n\s*Value "protocol1"\n\s*Value "protocol2"\n\s*IgnoreSelected true\n}) } + end + end + context ':ensure => absent' do let :params do { ensure: 'absent' } diff --git a/templates/plugin/protocols.conf.erb b/templates/plugin/protocols.conf.erb index acdee21ca..90cad6ae9 100644 --- a/templates/plugin/protocols.conf.erb +++ b/templates/plugin/protocols.conf.erb @@ -1,16 +1,16 @@ <% if @values -%> -<% +<% if @values - @values.each do |value| + @values.each do |value| -%> Value "<%= value %>" <% end end -%> -<% if @ignore_selected != nil -%> - IgnoreSelected <%= @ignore_selected %> +<% unless @ignoreselected == nil -%> + IgnoreSelected <%= @ignoreselected %> <% end -%> <% end -%>