@@ -129,13 +129,15 @@ def check_smart(drive, error_items, warn_temp, crit_temp, warn_spare):
129129
130130 if not dot_get (smart , 'smart_status.passed' ):
131131 return STATUS_CRIT , 'CRIT: serial=%s smart_status not OK' % serial_num
132- if temperature > crit_temp :
133- return STATUS_CRIT , 'CRIT: %s serial=%s temp=%d exceeds threshold' % (
134- drive , serial_num , temperature )
135- elif temperature > warn_temp :
136- status = STATUS_WARN
137- message = 'WARN: %s serial=%s, temp=%d exceeds threshold' % (
138- drive , serial_num , temperature )
132+ if temperature :
133+ if temperature > crit_temp :
134+ return STATUS_CRIT , \
135+ 'CRIT: %s serial=%s temp=%d exceeds threshold' % (
136+ drive , serial_num , temperature )
137+ elif temperature > warn_temp :
138+ status = STATUS_WARN
139+ message = 'WARN: %s serial=%s, temp=%d exceeds threshold' % (
140+ drive , serial_num , temperature )
139141 if nvme_log :
140142 spare_threshold = max (nvme_log .get ('available_spare_threshold' , 0 ),
141143 warn_spare )
@@ -158,8 +160,9 @@ def check_smart(drive, error_items, warn_temp, crit_temp, warn_spare):
158160 'CRIT' if status == STATUS_CRIT else 'WARN' ,
159161 drive , serial_num , key , item ['val' ])
160162 if status == STATUS_OK :
161- message = '%s OK: temp=%d serial=%s cap=%.3fT' % (
162- drive , temperature , serial_num , capacity / 1e12 )
163+ message = '%s OK:%s serial=%s cap=%.3fT' % (
164+ drive , ' temp=%s' % temperature if temperature else '' , serial_num ,
165+ capacity / 1e12 )
163166 return status , message
164167
165168
0 commit comments