Skip to content

Commit 9657a26

Browse files
authored
[thermalctld] fix some redundant removal of state DB tables (sonic-net#315)
1 parent 56046dc commit 9657a26

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

sonic-thermalctld/scripts/thermalctld

+2-12
Original file line numberDiff line numberDiff line change
@@ -561,21 +561,13 @@ class TemperatureUpdater(logger.Logger):
561561
table_keys = self.table.getKeys()
562562
for tk in table_keys:
563563
self.table._del(tk)
564+
if self.is_chassis_system and self.chassis_table is not None:
565+
self.chassis_table._del(tk)
564566
if self.phy_entity_table:
565567
phy_entity_keys = self.phy_entity_table.getKeys()
566568
for pek in phy_entity_keys:
567569
self.phy_entity_table._del(pek)
568570

569-
def deinit(self):
570-
"""
571-
Deinitializer of TemperatureUpdater
572-
:return:
573-
"""
574-
for name in self.temperature_status_dict.keys():
575-
self.table._del(name)
576-
if self.is_chassis_system and self.chassis_table is not None:
577-
self.chassis_table._del(name)
578-
579571
def _log_on_status_changed(self, normal_status, normal_log, abnormal_log):
580572
"""
581573
Log when any status changed
@@ -794,8 +786,6 @@ class ThermalMonitor(ProcessTaskBase):
794786
while not self.task_stopping_event.wait(self.wait_time):
795787
self.main()
796788

797-
self.temperature_updater.deinit()
798-
799789
self.logger.log_info("Stop thermal monitoring loop")
800790

801791

sonic-thermalctld/tests/test_thermalctld.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from sonic_py_common import daemon_base
2626

2727
from .mock_platform import MockChassis, MockFan, MockPsu, MockSfp, MockThermal
28+
from .mock_swsscommon import Table
2829

2930
daemon_base.db_connect = mock.MagicMock()
3031

@@ -414,13 +415,21 @@ def test_deinit(self):
414415
chassis = MockChassis()
415416
temp_updater = thermalctld.TemperatureUpdater(chassis, multiprocessing.Event())
416417
temp_updater.temperature_status_dict = {'key1': 'value1', 'key2': 'value2'}
418+
temp_updater.table = Table("STATE_DB", "xtable")
417419
temp_updater.table._del = mock.MagicMock()
418-
419-
temp_updater.deinit()
420+
temp_updater.table.getKeys = mock.MagicMock(return_value=['key1','key2'])
421+
temp_updater.phy_entity_table = Table("STATE_DB", "ytable")
422+
temp_updater.phy_entity_table._del = mock.MagicMock()
423+
temp_updater.phy_entity_table.getKeys = mock.MagicMock(return_value=['key1','key2'])
424+
temp_updater.chassis_table = Table("STATE_DB", "ctable")
425+
temp_updater.chassis_table._del = mock.MagicMock()
426+
temp_updater.is_chassis_system = True
427+
428+
temp_updater.__del__()
429+
assert temp_updater.table.getKeys.call_count == 1
420430
assert temp_updater.table._del.call_count == 2
421431
expected_calls = [mock.call('key1'), mock.call('key2')]
422432
temp_updater.table._del.assert_has_calls(expected_calls, any_order=True)
423-
424433

425434
def test_over_temper(self):
426435
chassis = MockChassis()

0 commit comments

Comments
 (0)