@@ -203,37 +203,43 @@ class PsuChassisInfo(logger.Logger):
203203 fvs = swsscommon .FieldValuePairs (dict_len )
204204
205205 for index , psu in enumerate (self .chassis .get_all_psus ()):
206+ name = try_get (psu .get_name , 'PSU {}' .format (index + 1 ))
206207 presence = try_get (psu .get_presence )
207208 if not presence :
209+ chassis_tbl .hdel (CHASSIS_INFO_POWER_KEY_TEMPLATE .format (1 ), CHASSIS_INFO_POWER_SUPPLIER_FIELD .format (name ))
208210 continue
209211
210212 power_good = try_get (psu .get_powergood_status )
211213 if not power_good :
214+ supplied_power = 0.0
215+ fvs [dict_index ] = (CHASSIS_INFO_POWER_SUPPLIER_FIELD .format (name ), str (supplied_power ))
216+ dict_index += 1
212217 continue
213218
214- name = try_get (psu .get_name , 'PSU {}' .format (index + 1 ))
215219 supplied_power = try_get (psu .get_maximum_supplied_power , 0.0 )
216220 total_supplied_power = total_supplied_power + supplied_power
217221 fvs [dict_index ] = (CHASSIS_INFO_POWER_SUPPLIER_FIELD .format (name ), str (supplied_power ))
218222 dict_index += 1
219223
220224 for index , power_consumer in enumerate (self .chassis .get_all_fan_drawers ()):
221225 presence = try_get (power_consumer .get_presence )
226+ name = try_get (power_consumer .get_name , 'FAN-DRAWER {}' .format (index ))
222227 if not presence :
228+ chassis_tbl .hdel (CHASSIS_INFO_POWER_KEY_TEMPLATE .format (1 ), CHASSIS_INFO_POWER_CONSUMER_FIELD .format (name ))
223229 continue
224230
225- name = try_get (power_consumer .get_name , 'FAN-DRAWER {}' .format (index ))
226231 fan_drawer_power = try_get (power_consumer .get_maximum_consumed_power , 0.0 )
227232 total_fan_consumed_power = total_fan_consumed_power + fan_drawer_power
228233 fvs [dict_index ] = (CHASSIS_INFO_POWER_CONSUMER_FIELD .format (name ), str (fan_drawer_power ))
229234 dict_index += 1
230235
231236 for index , power_consumer in enumerate (self .chassis .get_all_modules ()):
232237 presence = try_get (power_consumer .get_presence )
238+ name = try_get (power_consumer .get_name , 'MODULE {}' .format (index ))
233239 if not presence :
240+ chassis_tbl .hdel (CHASSIS_INFO_POWER_KEY_TEMPLATE .format (1 ), CHASSIS_INFO_POWER_CONSUMER_FIELD .format (name ))
234241 continue
235242
236- name = try_get (power_consumer .get_name , 'MODULE {}' .format (index ))
237243 module_power = try_get (power_consumer .get_maximum_consumed_power , 0.0 )
238244 total_module_consumed_power = total_module_consumed_power + module_power
239245 fvs [dict_index ] = (CHASSIS_INFO_POWER_CONSUMER_FIELD .format (name ), str (module_power ))
0 commit comments