From 4cf344a4c8c1106367729e22cf0c6bd79f0af0dd Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Thu, 18 Aug 2022 18:18:26 +0000 Subject: [PATCH 1/7] Added event --- scripts/disk_check.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/scripts/disk_check.py b/scripts/disk_check.py index 4fa8d69746..30a353ecb9 100644 --- a/scripts/disk_check.py +++ b/scripts/disk_check.py @@ -33,11 +33,19 @@ import sys import syslog import subprocess +from swsscommon.swsscommon import events_init_publisher, events_deinit_publisher, event_publish +from swsscommon.swsscommon import Logger, FieldValueMap +from sonic_py_common import logger UPPER_DIR = "/run/mount/upper" WORK_DIR = "/run/mount/work" MOUNTS_FILE = "/proc/mounts" +EVENTS_PUBLISHER_SOURCE = "sonic-events-host" +EVENTS_PUBLISHER_TAG = "event-disk" +events_handle = None + +Logger.setMinPrio(Logger.SWSS_INFO) chk_log_level = syslog.LOG_ERR def _log_msg(lvl, pfx, msg): @@ -45,6 +53,7 @@ def _log_msg(lvl, pfx, msg): print("{}: {}".format(pfx, msg)) syslog.syslog(lvl, msg) + def log_err(m): _log_msg(syslog.LOG_ERR, "Err", m) @@ -57,11 +66,19 @@ def log_debug(m): _log_msg(syslog.LOG_DEBUG, "Debug", m) +def event_pub(): + param_dict = FieldValueMap() + param_dict["fail_type"] = "read_only" + rc = event_publish(events_handle, EVENTS_PUBLISHER_TAG, param_dict) + print("DROP: event_publish rc={}".format(rc)) + + def test_writable(dirs): for d in dirs: rw = os.access(d, os.W_OK) if not rw: log_err("{} is not read-write".format(d)) + event_pub() return False else: log_debug("{} is Read-Write".format(d)) @@ -145,12 +162,13 @@ def do_check(skip_mount, dirs): # Check if mounted if (not ret) and is_mounted(dirs): log_err("READ-ONLY: Mounted {} to make Read-Write".format(dirs)) + event_pub() return ret def main(): - global chk_log_level + global chk_log_level, events_handle parser=argparse.ArgumentParser( description="check disk for Read-Write and mount etc & home as Read-Write") @@ -163,7 +181,12 @@ def main(): args = parser.parse_args() chk_log_level = args.loglvl + + events_handle = events_init_publisher(EVENTS_PUBLISHER_SOURCE) + ret = do_check(args.skip_mount, args.dirs.split(",")) + + events_deinit_publisher(events_handle) return ret From 5422632b85f4da568e0b4557b1566b3a47356604 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Thu, 18 Aug 2022 18:25:10 +0000 Subject: [PATCH 2/7] remove unused import --- scripts/disk_check.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/disk_check.py b/scripts/disk_check.py index 30a353ecb9..b0fe53e7b3 100644 --- a/scripts/disk_check.py +++ b/scripts/disk_check.py @@ -35,7 +35,6 @@ import subprocess from swsscommon.swsscommon import events_init_publisher, events_deinit_publisher, event_publish from swsscommon.swsscommon import Logger, FieldValueMap -from sonic_py_common import logger UPPER_DIR = "/run/mount/upper" WORK_DIR = "/run/mount/work" From 687fe7bf93a91be6ebf1b166398b07fde3bb25b0 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Thu, 18 Aug 2022 18:26:41 +0000 Subject: [PATCH 3/7] remove unused import --- scripts/disk_check.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/disk_check.py b/scripts/disk_check.py index b0fe53e7b3..905b810d27 100644 --- a/scripts/disk_check.py +++ b/scripts/disk_check.py @@ -69,7 +69,6 @@ def event_pub(): param_dict = FieldValueMap() param_dict["fail_type"] = "read_only" rc = event_publish(events_handle, EVENTS_PUBLISHER_TAG, param_dict) - print("DROP: event_publish rc={}".format(rc)) def test_writable(dirs): From e8edb2e93e41773d98289e2828d3a8069007422a Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Thu, 18 Aug 2022 20:57:13 +0000 Subject: [PATCH 4/7] LGTM warning fixed --- scripts/disk_check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/disk_check.py b/scripts/disk_check.py index 905b810d27..50dc8229bd 100644 --- a/scripts/disk_check.py +++ b/scripts/disk_check.py @@ -68,7 +68,7 @@ def log_debug(m): def event_pub(): param_dict = FieldValueMap() param_dict["fail_type"] = "read_only" - rc = event_publish(events_handle, EVENTS_PUBLISHER_TAG, param_dict) + event_publish(events_handle, EVENTS_PUBLISHER_TAG, param_dict) def test_writable(dirs): From d7176a05854e0bfd00f4711eda1d5574245e8c95 Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Thu, 8 Sep 2022 21:56:55 +0000 Subject: [PATCH 5/7] drop settig explicit log level --- scripts/disk_check.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/disk_check.py b/scripts/disk_check.py index 50dc8229bd..0f5f882400 100644 --- a/scripts/disk_check.py +++ b/scripts/disk_check.py @@ -34,7 +34,7 @@ import syslog import subprocess from swsscommon.swsscommon import events_init_publisher, events_deinit_publisher, event_publish -from swsscommon.swsscommon import Logger, FieldValueMap +from swsscommon.swsscommon import FieldValueMap UPPER_DIR = "/run/mount/upper" WORK_DIR = "/run/mount/work" @@ -44,7 +44,6 @@ EVENTS_PUBLISHER_TAG = "event-disk" events_handle = None -Logger.setMinPrio(Logger.SWSS_INFO) chk_log_level = syslog.LOG_ERR def _log_msg(lvl, pfx, msg): From d78c65ff3de183b8af5032b5afb956f668792afb Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Fri, 16 Sep 2022 17:32:57 +0000 Subject: [PATCH 6/7] Add CLI command to show stats --- show/main.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/show/main.py b/show/main.py index 9c07d92080..385f22a770 100755 --- a/show/main.py +++ b/show/main.py @@ -333,6 +333,32 @@ def vrf(vrf_name): body.append(["", intf]) click.echo(tabulate(body, header)) +# +# 'events' command ("show events") +# + +@cli.command() +def events(): + """Show events counter""" + # dump keys as formatted + counters_db = SonicV2Connector(host='127.0.0.1') + counters_db.connect(counters_db.COUNTERS_DB, retry_on=False) + + header = ['name', 'count'] + keys = counters_db.keys(counters_db.COUNTERS_DB, 'COUNTERS_EVENTS*') + table = [] + + for key in natsorted(keys): + key_list = key.split(':') + data_dict = counters_db.get_all(counters_db.COUNTERS_DB, key) + table.append((key_list[1], data_dict["value"])) + + if table: + click.echo(tabulate(table, header, tablefmt='simple', stralign='right')) + else: + click.echo('No data available in COUNTERS_EVENTS\n') + + # # 'arp' command ("show arp") # From 1a09f49f7344b010508676fea83ff9388bef863d Mon Sep 17 00:00:00 2001 From: Renuka Manavalan Date: Fri, 16 Sep 2022 17:37:22 +0000 Subject: [PATCH 7/7] name update --- show/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/show/main.py b/show/main.py index 385f22a770..fa86be59a3 100755 --- a/show/main.py +++ b/show/main.py @@ -334,11 +334,11 @@ def vrf(vrf_name): click.echo(tabulate(body, header)) # -# 'events' command ("show events") +# 'events' command ("show event-counters") # @cli.command() -def events(): +def event_counters(): """Show events counter""" # dump keys as formatted counters_db = SonicV2Connector(host='127.0.0.1')