From a0fdd5f06c9004c7c48216632ef8cd360791e4f4 Mon Sep 17 00:00:00 2001 From: bingwang Date: Tue, 20 Oct 2020 22:35:29 -0700 Subject: [PATCH 1/2] Disable rsyslog rate limit in pre_test and do a recover in post_test. Signed-off-by: bingwang --- tests/test_posttest.py | 20 ++++++++++++++++++++ tests/test_pretest.py | 21 ++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/tests/test_posttest.py b/tests/test_posttest.py index 68d34e64008..91f3e1104b3 100644 --- a/tests/test_posttest.py +++ b/tests/test_posttest.py @@ -3,6 +3,7 @@ import os.path import os import json +import time logger = logging.getLogger(__name__) @@ -54,3 +55,22 @@ def test_restore_container_autorestart(duthost): cmds_enable.append("config save -y") duthost.shell_cmds(cmds=cmds_enable) os.remove(state_file_name) + # Wait 30 seconds for snmp reloading + time.sleep(30) + +def test_recover_rsyslog_rate_limit(duthost): + features_dict, succeed = duthost.get_feature_status() + if not succeed: + # Something unexpected happened. + # We don't want to fail here because it's an util + return + cmd_disable_rate_limit = r"docker exec -i {} sed -i 's/^#\$SystemLogRateLimit/\$SystemLogRateLimit/g' /etc/rsyslog.conf" + cmd_reload = r"docker exec -i {} supervisorctl restart rsyslogd" + for feature_name, state in features_dict.items(): + if state == "disabled": + continue + cmds = [] + cmds.append(cmd_disable_rate_limit.format(feature_name)) + cmds.append(cmd_reload.format(feature_name)) + duthost.shell_cmds(cmds=cmds) + diff --git a/tests/test_pretest.py b/tests/test_pretest.py index 09b06797965..c3fea973914 100644 --- a/tests/test_pretest.py +++ b/tests/test_pretest.py @@ -1,12 +1,14 @@ import pytest import logging import json +import time logger = logging.getLogger(__name__) pytestmark = [ pytest.mark.pretest, - pytest.mark.topology('util') + pytest.mark.topology('util'), + pytest.mark.disable_loganalyzer ] def test_cleanup_testbed(duthost, request, ptfhost): @@ -45,5 +47,22 @@ def test_disable_container_autorestart(duthost): # Write into config_db cmds_disable.append("config save -y") duthost.shell_cmds(cmds=cmds_disable) + # Wait 30 seconds for snmp reloading + time.sleep(30) +def test_disable_rsyslog_rate_limit(duthost): + features_dict, succeed = duthost.get_feature_status() + if not succeed: + # Something unexpected happened. + # We don't want to fail here because it's an util + return + cmd_disable_rate_limit = r"docker exec -i {} sed -i 's/^\$SystemLogRateLimit/#\$SystemLogRateLimit/g' /etc/rsyslog.conf" + cmd_reload = r"docker exec -i {} supervisorctl restart rsyslogd" + for feature_name, state in features_dict.items(): + if state == "disabled": + continue + cmds = [] + cmds.append(cmd_disable_rate_limit.format(feature_name)) + cmds.append(cmd_reload.format(feature_name)) + duthost.shell_cmds(cmds=cmds) From 5af66aff8b9bcc6fbe6fe2b79a43b1625c5f8a6b Mon Sep 17 00:00:00 2001 From: bingwang Date: Wed, 21 Oct 2020 18:47:27 -0700 Subject: [PATCH 2/2] Cleanup code Signed-off-by: bingwang --- tests/test_posttest.py | 10 ++++++---- tests/test_pretest.py | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/test_posttest.py b/tests/test_posttest.py index 91f3e1104b3..705733e5f5d 100644 --- a/tests/test_posttest.py +++ b/tests/test_posttest.py @@ -55,22 +55,24 @@ def test_restore_container_autorestart(duthost): cmds_enable.append("config save -y") duthost.shell_cmds(cmds=cmds_enable) os.remove(state_file_name) - # Wait 30 seconds for snmp reloading - time.sleep(30) + # Wait sometime for snmp reloading + SNMP_RELOADING_TIME = 30 + time.sleep(SNMP_RELOADING_TIME) def test_recover_rsyslog_rate_limit(duthost): features_dict, succeed = duthost.get_feature_status() if not succeed: # Something unexpected happened. # We don't want to fail here because it's an util + logging.warn("Failed to retrieve feature status") return - cmd_disable_rate_limit = r"docker exec -i {} sed -i 's/^#\$SystemLogRateLimit/\$SystemLogRateLimit/g' /etc/rsyslog.conf" + cmd_enable_rate_limit = r"docker exec -i {} sed -i 's/^#\$SystemLogRateLimit/\$SystemLogRateLimit/g' /etc/rsyslog.conf" cmd_reload = r"docker exec -i {} supervisorctl restart rsyslogd" for feature_name, state in features_dict.items(): if state == "disabled": continue cmds = [] - cmds.append(cmd_disable_rate_limit.format(feature_name)) + cmds.append(cmd_enable_rate_limit.format(feature_name)) cmds.append(cmd_reload.format(feature_name)) duthost.shell_cmds(cmds=cmds) diff --git a/tests/test_pretest.py b/tests/test_pretest.py index c3fea973914..600a1d76837 100644 --- a/tests/test_pretest.py +++ b/tests/test_pretest.py @@ -47,14 +47,16 @@ def test_disable_container_autorestart(duthost): # Write into config_db cmds_disable.append("config save -y") duthost.shell_cmds(cmds=cmds_disable) - # Wait 30 seconds for snmp reloading - time.sleep(30) + # Wait sometime for snmp reloading + SNMP_RELOADING_TIME = 30 + time.sleep(SNMP_RELOADING_TIME) def test_disable_rsyslog_rate_limit(duthost): features_dict, succeed = duthost.get_feature_status() if not succeed: # Something unexpected happened. # We don't want to fail here because it's an util + logging.warn("Failed to retrieve feature status") return cmd_disable_rate_limit = r"docker exec -i {} sed -i 's/^\$SystemLogRateLimit/#\$SystemLogRateLimit/g' /etc/rsyslog.conf" cmd_reload = r"docker exec -i {} supervisorctl restart rsyslogd"