From b17ea26272b9f3a49f017c0c213974153dd91810 Mon Sep 17 00:00:00 2001 From: Will Meek Date: Fri, 10 Aug 2018 15:01:19 +0100 Subject: [PATCH] (NETDEV-44) Add logfile and buffered fields to syslog_settings --- README.md | 20 ++++++ lib/puppet/type/syslog_settings.rb | 70 +++++++++++++++++++ spec/unit/puppet/type/syslog_settings_spec.rb | 28 ++++++++ 3 files changed, 118 insertions(+) diff --git a/README.md b/README.md index 23548ff..9872fe7 100755 --- a/README.md +++ b/README.md @@ -1057,6 +1057,26 @@ The unit to log time values in. The VRF associated with source_interface (array of strings for multiple). +###### `logfile_severity_level` + +Logfile severity level [0-7] or 'unset' + +###### `logfile_name` + +Logfile file name to use or 'unset' + +###### `logfile_size` + +Logging file maximum size or 'unset' + +###### `buffered_severity_level` + +Buffered log severity level [0-7] or 'unset' + +###### `buffered_size` + +Logging buffer size or 'unset' + ##### Parameters The following parameters are available in the `syslog_settings` type. diff --git a/lib/puppet/type/syslog_settings.rb b/lib/puppet/type/syslog_settings.rb index aa04248..a41ac8b 100644 --- a/lib/puppet/type/syslog_settings.rb +++ b/lib/puppet/type/syslog_settings.rb @@ -74,6 +74,56 @@ end end end + + newproperty(:logfile_severity_level) do + desc "Logfile severity level [0-7] or 'unset'" + + validate do |value| + if value.to_s.match('^[0-7]$') || value == 'unset' then super(value) + else raise "value #{value.inspect} is invalid, must be 0-7 or 'unset'" + end + end + end + + newproperty(:logfile_name) do + desc "Logfile file name to use or 'unset'" + + validate do |value| + if value.is_a? String then super(value) + else raise "value #{value.inspect} is invalid, must be a String." + end + end + end + + newproperty(:logfile_size) do + desc "Logging file maximum size or 'unset'" + + validate do |value| + if value.to_s.match('^\d+$') || value == 'unset' then super(value) + else raise "value #{value.inspect} is invalid, must be a valid integer or 'unset'" + end + end + end + + newproperty(:buffered_severity_level) do + desc "Buffered log severity level [0-7] or 'unset'" + + validate do |value| + if value.to_s.match('^[0-7]$') || value == 'unset' then super(value) + else raise "value #{value.inspect} is invalid, must be 0-7 or 'unset'" + end + end + end + + newproperty(:buffered_size) do + desc "Logging buffer size or 'unset'" + + validate do |value| + if value.to_s.match('^\d+$') || value == 'unset' then super(value) + else raise "value #{value.inspect} is invalid, must be a valid integer or 'unset'" + end + end + end end else require 'puppet/resource_api' @@ -115,6 +165,26 @@ vrf: { type: 'Optional[Array[String]]', desc: 'The VRF associated with source_interface (array of strings for multiple).' + }, + logfile_severity_level: { + type: 'Optional[Variant[Integer[0,7], Enum["unset"]]]', + desc: "Logfile severity level [0-7] or 'unset'" + }, + logfile_name: { + type: 'Optional[String]', + desc: "Logfile file name to use or 'unset'" + }, + logfile_size: { + type: 'Optional[Integer]', + desc: 'Logging file maximum size' + }, + buffered_severity_level: { + type: 'Optional[Variant[Integer[0,7], Enum["unset"]]]', + desc: "Buffered log severity level [0-7] or 'unset'" + }, + buffered_size: { + type: 'Optional[Integer]', + desc: 'Logging buffer size' } } ) diff --git a/spec/unit/puppet/type/syslog_settings_spec.rb b/spec/unit/puppet/type/syslog_settings_spec.rb index a4d2427..e95f1d7 100644 --- a/spec/unit/puppet/type/syslog_settings_spec.rb +++ b/spec/unit/puppet/type/syslog_settings_spec.rb @@ -14,6 +14,7 @@ it_behaves_like 'it has a string property', :facility it_behaves_like 'array of strings property', attribute: :source_interface it_behaves_like 'array of strings property', attribute: :vrf + it_behaves_like 'it has a string property', :logfile_name describe 'console' do let(:attribute) { :console } @@ -35,6 +36,33 @@ include_examples 'accepts values', %w[seconds milliseconds] include_examples 'rejects values', %w[foo bar baz] end + + describe 'logfile_severity_level' do + let(:attribute) { :logfile_severity_level } + include_examples '#doc Documentation' + include_examples 'accepts values without munging', %w[0 unset] + include_examples 'rejects values', %w[foo -1 9] end + + describe 'logfile_size' do + let(:attribute) { :logfile_size } + include_examples '#doc Documentation' + include_examples 'accepts values without munging', %w[4096 unset] + include_examples 'rejects values', %w[foo -1 bar] + end + + describe 'buffered_severity_level' do + let(:attribute) { :buffered_severity_level } + include_examples '#doc Documentation' + include_examples 'accepts values without munging', %w[0 unset] + include_examples 'rejects values', %w[foo -1 9] + end + + describe 'buffered_size' do + let(:attribute) { :buffered_size } + include_examples '#doc Documentation' + include_examples 'accepts values without munging', %w[4096 unset] + include_examples 'rejects values', %w[foo -1 bar] + end end end describe 'resource-api' do