Skip to content

Commit a220f68

Browse files
renukamanavalanpreetham-singh
authored andcommitted
disk_check: Publish event for RO state (sonic-net#2320)
Added disk_check failure as event.
1 parent c26927e commit a220f68

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

scripts/disk_check.py

+21-1
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,25 @@
3333
import sys
3434
import syslog
3535
import subprocess
36+
from swsscommon.swsscommon import events_init_publisher, events_deinit_publisher, event_publish
37+
from swsscommon.swsscommon import FieldValueMap
3638

3739
UPPER_DIR = "/run/mount/upper"
3840
WORK_DIR = "/run/mount/work"
3941
MOUNTS_FILE = "/proc/mounts"
4042

43+
EVENTS_PUBLISHER_SOURCE = "sonic-events-host"
44+
EVENTS_PUBLISHER_TAG = "event-disk"
45+
events_handle = None
46+
4147
chk_log_level = syslog.LOG_ERR
4248

4349
def _log_msg(lvl, pfx, msg):
4450
if lvl <= chk_log_level:
4551
print("{}: {}".format(pfx, msg))
4652
syslog.syslog(lvl, msg)
4753

54+
4855
def log_err(m):
4956
_log_msg(syslog.LOG_ERR, "Err", m)
5057

@@ -57,11 +64,18 @@ def log_debug(m):
5764
_log_msg(syslog.LOG_DEBUG, "Debug", m)
5865

5966

67+
def event_pub():
68+
param_dict = FieldValueMap()
69+
param_dict["fail_type"] = "read_only"
70+
event_publish(events_handle, EVENTS_PUBLISHER_TAG, param_dict)
71+
72+
6073
def test_writable(dirs):
6174
for d in dirs:
6275
rw = os.access(d, os.W_OK)
6376
if not rw:
6477
log_err("{} is not read-write".format(d))
78+
event_pub()
6579
return False
6680
else:
6781
log_debug("{} is Read-Write".format(d))
@@ -145,12 +159,13 @@ def do_check(skip_mount, dirs):
145159
# Check if mounted
146160
if (not ret) and is_mounted(dirs):
147161
log_err("READ-ONLY: Mounted {} to make Read-Write".format(dirs))
162+
event_pub()
148163

149164
return ret
150165

151166

152167
def main():
153-
global chk_log_level
168+
global chk_log_level, events_handle
154169

155170
parser=argparse.ArgumentParser(
156171
description="check disk for Read-Write and mount etc & home as Read-Write")
@@ -163,7 +178,12 @@ def main():
163178
args = parser.parse_args()
164179

165180
chk_log_level = args.loglvl
181+
182+
events_handle = events_init_publisher(EVENTS_PUBLISHER_SOURCE)
183+
166184
ret = do_check(args.skip_mount, args.dirs.split(","))
185+
186+
events_deinit_publisher(events_handle)
167187
return ret
168188

169189

0 commit comments

Comments
 (0)