Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions lib/cisco_node_utils/cmd_ref/syslog_settings.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,22 @@ console:
get_value: '/^(no)?\s*logging console\s*(\d)?/'
set_value: '<state> logging console <severity>'

logfile_name:
get_command: "show running-config all | include 'logging'"
# Returns <state> and <name>
get_value: '/^(no)?\s*logging logfile\s(\S*)\s*?/'
set_value: '<state> logging logfile <logname> <severity> <size>'

logfile_severity_level:
get_command: "show running-config all | include 'logging'"
# Returns <state> and <severity>
get_value: '/^(no)?\s*logging logfile\s\S*\s*(\d)?/'

logfile_size:
get_command: "show running-config all | include 'logging'"
# Returns <state> and <size>
get_value: '/^(no)?\s*logging logfile.*size\s(\d*)/'

monitor:
default_value: 5
get_command: "show running-config all | include 'logging'"
Expand Down
44 changes: 43 additions & 1 deletion lib/cisco_node_utils/syslog_settings.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Syslog Settings provider class
#
# August 2018
# Jonathan Tripathy et al., September 2015
#
# Copyright (c) 2014-2017 Cisco and/or its affiliates.
# Copyright (c) 2014-2018 Cisco and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -126,6 +127,47 @@ def timestamp=(val)
units: val)
end

def logfile_severity_level
logfile_severity_level =
config_get('syslog_settings', 'logfile_severity_level')
if logfile_severity_level.is_a?(Array)
if logfile_severity_level[0] == 'no'
logfile_severity_level = nil
else
logfile_severity_level = logfile_severity_level[1]
end
end
logfile_severity_level
end

def logfile_name=(logname, severity, size)
if logname
config_set(
'syslog_settings', 'logfile_name',
state: '', logname: logname, severity: severity, size: size)
else
config_set(
'syslog_settings', 'logfile_name',
state: 'no', logname: logname, severity: severity, size: size)
end
end

def logfile_name
logfile_name = config_get('syslog_settings', 'logfile_name')
if logfile_name.is_a?(Array)
logfile_name = (logfile_name[0] == 'no') ? 'unset' : logfile_name[1]
end
logfile_name
end

def logfile_size
logfile_size = config_get('syslog_settings', 'logfile_size')
if logfile_size.is_a?(Array)
logfile_size = (logfile_size[0] == 'no') ? nil : logfile_size[1]
end
logfile_size
end

alias_method :time_stamp_units, :timestamp
alias_method :time_stamp_units=, :timestamp=
end # class
Expand Down
17 changes: 16 additions & 1 deletion tests/test_syslog_settings.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ def default_syslogsettings
config('no logging timestamp seconds',
'logging console 2',
'logging monitor 5',
'no logging source-interface')
'no logging source-interface',
'no logging logfile')
end

# TESTS
Expand Down Expand Up @@ -105,4 +106,18 @@ def test_source_interface
syslog_setting.source_interface = nil
assert_nil(syslog_setting.source_interface)
end

def test_logfile
syslog_setting = Cisco::SyslogSettings.new('default')

assert_equal('unset', syslog_setting.logfile_name)
syslog_setting.send('logfile_name=', 'testlog', 5, 'size 4097')
assert_equal('testlog', syslog_setting.logfile_name)
assert_equal('5', syslog_setting.logfile_severity_level)
assert_equal('4097', syslog_setting.logfile_size)
syslog_setting.send('logfile_name=', nil, nil, nil)
assert_equal('unset', syslog_setting.logfile_name)
assert_nil(syslog_setting.logfile_severity_level)
assert_nil(syslog_setting.logfile_size)
end
end