Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
uint64_t mkelvin;
int r = sk_disk_smart_get_temperature(device->disk, &mkelvin);
uint64_t mkelvin;
int r = sk_disk_smart_get_temperature(device->disk, &mkelvin);
+ if (r) {
+ // Temperature not available but SMART is supported
+ if (errno == ENOENT) {
+ PyErr_Format(PyExc_OSError, "Device does not have a temperature");
+ }
+
// Convert the temperature to Kelvin
return PyFloat_FromDouble((double)mkelvin / 1000.0);
// Convert the temperature to Kelvin
return PyFloat_FromDouble((double)mkelvin / 1000.0);
if not self.is_smart_supported():
return "NaN"
if not self.is_smart_supported():
return "NaN"
- return self.device.get_temperature()
+ try:
+ return self.device.get_temperature()
+ except OSError:
+ return "NaN"
def get_bad_sectors(self):
if not self.is_smart_supported():
def get_bad_sectors(self):
if not self.is_smart_supported():