Skip to content

Commit f743d7c

Browse files
authored
PSUD-Delete or update CHASSIS_INFO table PSU/Modules data if added or… (sonic-net#351)
* PSUD-Delete or update CHASSIS_INFO table PSU/Modules data if added or removed. Signed-off-by: prem-nokia <[email protected]> * fix swsscommon.py hdel function. * implemented code optimization. Signed-off-by: premsara <[email protected]> --------- Signed-off-by: prem-nokia <[email protected]> Signed-off-by: premsara <[email protected]>
1 parent 95c7670 commit f743d7c

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

sonic-psud/scripts/psud

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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))

sonic-psud/tests/mocked_libs/swsscommon/swsscommon.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ def _del(self, key):
1616
del self.mock_dict[key]
1717
pass
1818

19+
def hdel(self, key, value):
20+
del self.mock_dict[key]
21+
pass
22+
1923
def set(self, key, fvs):
2024
self.mock_dict[key] = fvs.fv_dict
2125
pass

0 commit comments

Comments
 (0)