Skip to content

Commit b61e999

Browse files
committed
add support for parsing nvme ssd model, health and temperature
Signed-off-by: Kebo Liu <[email protected]>
1 parent 5da31e1 commit b61e999

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

sonic_platform_base/sonic_ssd/ssd_generic.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,17 @@ def fetch_generic_ssd_info(self, diskdev):
7474

7575
# Health and temperature values may be overwritten with vendor specific data
7676
def parse_generic_ssd_info(self):
77-
self.model = self._parse_re('Device Model:\s*(.+?)\n', self.ssd_info)
77+
if "nvme" in self.dev:
78+
self.model = self._parse_re('Model Number:\s*(.+?)\n', self.ssd_info)
79+
health_raw = self._parse_re('Percentage Used\s*(.+?)\n', self.ssd_info).split()[-1]
80+
self.health = 100 - float(health_raw.strip('%'))
81+
self.temperature = float(self._parse_re('Temperature\s*(.+?)\n', self.ssd_info).split()[-2])
82+
else:
83+
self.model = self._parse_re('Device Model:\s*(.+?)\n', self.ssd_info)
84+
self.health = self._parse_re('Remaining_Lifetime_Perc\s*(.+?)\n', self.ssd_info).split()[-1]
85+
self.temperature = self._parse_re('Temperature_Celsius\s*(.+?)\n', self.ssd_info).split()[-6]
7886
self.serial = self._parse_re('Serial Number:\s*(.+?)\n', self.ssd_info)
7987
self.firmware = self._parse_re('Firmware Version:\s*(.+?)\n', self.ssd_info)
80-
self.health = self._parse_re('Remaining_Lifetime_Perc\s*(.+?)\n', self.ssd_info).split()[-1]
81-
self.temperature = self._parse_re('Temperature_Celsius\s*(.+?)\n', self.ssd_info).split()[-6]
8288

8389
def parse_innodisk_info(self):
8490
self.health = self._parse_re('Health:\s*(.+?)%', self.vendor_ssd_info)

0 commit comments

Comments
 (0)