@@ -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