Skip to content

Commit b024923

Browse files
[ssd_generic]Fix ssd no model information
modify ssd get health .
1 parent e601d0e commit b024923

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

sonic_platform_base/sonic_ssd/ssd_generic.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,16 @@ def parse_innodisk_info(self):
125125
self.temperature = temp_raw.split()[-6]
126126

127127
def parse_virtium_info(self):
128-
self.temperature = self._parse_re('Temperature_Celsius\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
129-
self.health = self._parse_re('Remaining_Life_Left\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
130-
if self.health == NOT_AVAILABLE:
131-
nand_endurance = self._parse_re('NAND_Endurance\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
132-
avg_erase_count = self._parse_re('Average_Erase_Count\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
133-
try:
134-
self.health = 100 - (float(avg_erase_count) * 100 / float(nand_endurance))
135-
except ValueError:
136-
pass
128+
if self.vendor_ssd_info:
129+
self.temperature = self._parse_re('Temperature_Celsius\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
130+
self.health = self._parse_re('Remaining_Life_Left\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
131+
if self.health == NOT_AVAILABLE:
132+
nand_endurance = self._parse_re('NAND_Endurance\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
133+
avg_erase_count = self._parse_re('Average_Erase_Count\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info)
134+
try:
135+
self.health = 100 - (float(avg_erase_count) * 100 / float(nand_endurance))
136+
except (ValueError, ZeroDivisionError):
137+
pass
137138

138139
def fetch_vendor_ssd_info(self, diskdev, model):
139140
self.vendor_ssd_info = self._execute_shell(self.vendor_ssd_utility[model]["utility"].format(diskdev))

0 commit comments

Comments
 (0)