Skip to content
Merged
Changes from 1 commit
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
58 changes: 58 additions & 0 deletions tests/syslog/test_syslog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import time
import logging
import pytest
from common.helpers.assertions import pytest_assert

logger = logging.getLogger(__name__)

@pytest.fixture(scope="module")
def config_syslog_srv(ptfhost):
logger.info( "Configuring the syslog srver")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix typo

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in the latest commit


# add the imudp configuration if not present
ptfhost.shell('sed -ni \'/module/!p;$a module(load="imudp")\' /etc/rsyslog.conf')
ptfhost.shell('sed -i \'/input(type/!p;$a input(type="imudp" port="514")\' /etc/rsyslog.conf')

#Remove local /var/log/syslog
ptfhost.shell("rm -rf /var/log/syslog")

#restart Syslog Daemon
ptfhost.shell("service rsyslog restart")

#Wait a little bit for service to start
time.sleep(30)

yield

@pytest.fixture(scope="module")
def config_dut(testbed, duthost):
logger.info( "Configuring the DUT")
local_syslog_srv_ip = testbed['ptf_ip']
logger.info("test_syslog_srv_ip {}".format(local_syslog_srv_ip))

#Add Rsyslog destination for testing
duthost.shell("sudo config syslog add {}".format(local_syslog_srv_ip))

yield

#remove the syslog configuration
duthost.shell("sudo config syslog del {}".format(local_syslog_srv_ip))

def test_syslog(duthost, ptfhost, config_dut, config_syslog_srv):
logger.info( "Starting syslog tests")
test_message = "Basic Test Message"

#generate a syslog from the DUT
duthost.shell(" logger --priority INFO {}".format(test_message))

#Check syslog messages for the test message
result = ptfhost.shell("grep {} /var/log/syslog | grep \"{}\" | grep -v ansible".format(duthost.hostname, test_message))['stdout_lines']
pytest_assert(result is not None, "Test syslog not seen on the server")