3333import sys
3434import syslog
3535import subprocess
36+ from swsscommon .swsscommon import events_init_publisher , events_deinit_publisher , event_publish
37+ from swsscommon .swsscommon import FieldValueMap
3638
3739UPPER_DIR = "/run/mount/upper"
3840WORK_DIR = "/run/mount/work"
3941MOUNTS_FILE = "/proc/mounts"
4042
43+ EVENTS_PUBLISHER_SOURCE = "sonic-events-host"
44+ EVENTS_PUBLISHER_TAG = "event-disk"
45+ events_handle = None
46+
4147chk_log_level = syslog .LOG_ERR
4248
4349def _log_msg (lvl , pfx , msg ):
4450 if lvl <= chk_log_level :
4551 print ("{}: {}" .format (pfx , msg ))
4652 syslog .syslog (lvl , msg )
4753
54+
4855def 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+
6073def 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
152167def 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