From 12f9bdf93aa248309fae16883c27f69de4cdc338 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Thu, 7 Nov 2024 22:04:42 +0100 Subject: smoketest: T6719: use read_file() over 'sudo cat FILENAME' --- smoketest/scripts/cli/test_system_syslog.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'smoketest') diff --git a/smoketest/scripts/cli/test_system_syslog.py b/smoketest/scripts/cli/test_system_syslog.py index c802ceeeb..d9e16eef8 100755 --- a/smoketest/scripts/cli/test_system_syslog.py +++ b/smoketest/scripts/cli/test_system_syslog.py @@ -20,7 +20,6 @@ import unittest from base_vyostest_shim import VyOSUnitTestSHIM from vyos.utils.file import read_file -from vyos.utils.process import cmd from vyos.utils.process import process_named_running PROCESS_NAME = 'rsyslogd' @@ -80,20 +79,22 @@ class TestRSYSLOGService(VyOSUnitTestSHIM.TestCase): self.assertTrue(process_named_running(PROCESS_NAME)) def test_syslog_global(self): - self.cli_set(['system', 'host-name', 'vyos']) - self.cli_set(['system', 'domain-name', 'example.local']) + hostname = 'vyos123' + domainname = 'example.local' + self.cli_set(['system', 'host-name', hostname]) + self.cli_set(['system', 'domain-name', domainname]) self.cli_set(base_path + ['global', 'marker', 'interval', '600']) self.cli_set(base_path + ['global', 'preserve-fqdn']) self.cli_set(base_path + ['global', 'facility', 'kern', 'level', 'err']) self.cli_commit() - config = cmd(f'sudo cat {RSYSLOG_CONF}') + config = read_file(RSYSLOG_CONF) expected = [ '$MarkMessagePeriod 600', '$PreserveFQDN on', 'kern.err', - '$LocalHostName vyos.example.local', + f'$LocalHostName {hostname}.{domainname}', ] for e in expected: -- cgit v1.2.3 From 9ba81b263f4e0dd7b5dbf2e766702eedff96538b Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Thu, 7 Nov 2024 22:05:00 +0100 Subject: syslog: T6858: bugfix remote syslog using TCP Commit 042be39cc ("syslog: T5367: add format option to include timezone in message") added an invalid, outer if-statement when rendering the rsyslog configuration option for TCP. Remote hosts only got added when the format option "octet-counting" was defined in addition to the TCP protocol. This has been fix and now TCP transport is decoupled from octet-counting mode. --- data/templates/rsyslog/rsyslog.conf.j2 | 2 -- smoketest/scripts/cli/test_system_syslog.py | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'smoketest') diff --git a/data/templates/rsyslog/rsyslog.conf.j2 b/data/templates/rsyslog/rsyslog.conf.j2 index 7fd592d1f..253a4bee2 100644 --- a/data/templates/rsyslog/rsyslog.conf.j2 +++ b/data/templates/rsyslog/rsyslog.conf.j2 @@ -57,9 +57,7 @@ $outchannel {{ file_name }},/var/log/user/{{ file_name }},{{ file_options.archiv {% endfor %} {% endif %} {% if host_options.protocol is vyos_defined('tcp') %} -{% if host_options.format.octet_counted is vyos_defined %} {{ tmp | join(';') }} @@{{ '(o)' if host_options.format.octet_counted is vyos_defined }}{{ host_name | bracketize_ipv6 }}:{{ host_options.port }}{{ ';RSYSLOG_SyslogProtocol23Format' if host_options.format.include_timezone is vyos_defined }} -{% endif %} {% else %} {{ tmp | join(';') }} @{{ host_name | bracketize_ipv6 }}:{{ host_options.port }}{{ ';RSYSLOG_SyslogProtocol23Format' if host_options.format.include_timezone is vyos_defined }} {% endif %} diff --git a/smoketest/scripts/cli/test_system_syslog.py b/smoketest/scripts/cli/test_system_syslog.py index d9e16eef8..a86711119 100755 --- a/smoketest/scripts/cli/test_system_syslog.py +++ b/smoketest/scripts/cli/test_system_syslog.py @@ -21,6 +21,7 @@ from base_vyostest_shim import VyOSUnitTestSHIM from vyos.utils.file import read_file from vyos.utils.process import process_named_running +from vyos.xml_ref import default_value PROCESS_NAME = 'rsyslogd' RSYSLOG_CONF = '/etc/rsyslog.d/00-vyos.conf' @@ -102,6 +103,29 @@ class TestRSYSLOGService(VyOSUnitTestSHIM.TestCase): # Check for running process self.assertTrue(process_named_running(PROCESS_NAME)) + def test_syslog_remote(self): + rhost = '169.254.0.1' + default_port = default_value(base_path + ['host', rhost, 'port']) + + self.cli_set(base_path + ['global', 'facility', 'all', 'level', 'info']) + self.cli_set(base_path + ['global', 'facility', 'local7', 'level', 'debug']) + self.cli_set(base_path + ['host', rhost, 'facility', 'all', 'level', 'all']) + self.cli_set(base_path + ['host', rhost, 'protocol', 'tcp']) + + self.cli_commit() + + config = read_file(RSYSLOG_CONF) + self.assertIn(f'*.* @@{rhost}:{default_port}', config) + + # Change default port and enable "octet-counting" mode + port = '10514' + self.cli_set(base_path + ['host', rhost, 'port', port]) + self.cli_set(base_path + ['host', rhost, 'format', 'octet-counted']) + self.cli_commit() + + config = read_file(RSYSLOG_CONF) + self.assertIn(f'*.* @@(o){rhost}:{port}', config) + if __name__ == '__main__': unittest.main(verbosity=2) -- cgit v1.2.3