@@ -38,6 +38,11 @@ PSU_INFO_TABLE = 'PSU_INFO'
38
38
PSU_INFO_KEY_TEMPLATE = 'PSU {}'
39
39
PSU_INFO_PRESENCE_FIELD = 'presence'
40
40
PSU_INFO_STATUS_FIELD = 'status'
41
+ PSU_INFO_TEMP_FIELD = 'temp'
42
+ PSU_INFO_TEMP_TH_FIELD = 'temp_threshold'
43
+ PSU_INFO_VOLTAGE_FIELD = 'voltage'
44
+ PSU_INFO_VOLTAGE_MAX_TH_FIELD = 'voltage_max_threshold'
45
+ PSU_INFO_VOLTAGE_MIN_TH_FIELD = 'voltage_min_threshold'
41
46
42
47
PSU_INFO_UPDATE_PERIOD_SECS = 3
43
48
@@ -247,7 +252,7 @@ class DaemonPsud(DaemonBase):
247
252
248
253
while not self .stop .wait (PSU_INFO_UPDATE_PERIOD_SECS ):
249
254
psu_db_update (psu_tbl , psu_num )
250
- self .update_psu_data ()
255
+ self .update_psu_data (psu_tbl )
251
256
self ._update_led_color (psu_tbl )
252
257
253
258
logger .log_info ("Stop daemon main loop" )
@@ -260,17 +265,17 @@ class DaemonPsud(DaemonBase):
260
265
261
266
logger .log_info ("Shutting down..." )
262
267
263
- def update_psu_data (self ):
268
+ def update_psu_data (self , psu_tbl ):
264
269
if not platform_chassis :
265
270
return
266
271
267
272
for index , psu in enumerate (platform_chassis .get_all_psus ()):
268
273
try :
269
- self ._update_single_psu_data (index + 1 , psu )
274
+ self ._update_single_psu_data (index + 1 , psu , psu_tbl )
270
275
except Exception as e :
271
276
logger .log_warning ("Failed to update PSU data - {}" .format (e ))
272
277
273
- def _update_single_psu_data (self , index , psu ):
278
+ def _update_single_psu_data (self , index , psu , psu_tbl ):
274
279
name = try_get (psu .get_name )
275
280
if not name :
276
281
name = PSU_INFO_KEY_TEMPLATE .format (index )
@@ -325,6 +330,16 @@ class DaemonPsud(DaemonBase):
325
330
if set_led :
326
331
self ._set_psu_led (psu , psu_status )
327
332
333
+ fvs = swsscommon .FieldValuePairs (
334
+ [(PSU_INFO_TEMP_FIELD , str (temperature )),
335
+ (PSU_INFO_TEMP_TH_FIELD , str (temperature_threshold )),
336
+ (PSU_INFO_VOLTAGE_FIELD , str (voltage )),
337
+ (PSU_INFO_VOLTAGE_MIN_TH_FIELD , str (voltage_low_threshold )),
338
+ (PSU_INFO_VOLTAGE_MAX_TH_FIELD , str (voltage_high_threshold )),
339
+ ])
340
+ psu_tbl .set (PSU_INFO_KEY_TEMPLATE .format (index ), fvs )
341
+
342
+
328
343
def _set_psu_led (self , psu , psu_status ):
329
344
try :
330
345
color = psu .STATUS_LED_COLOR_GREEN if psu_status .is_ok () else psu .STATUS_LED_COLOR_RED
0 commit comments