summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrare-magma <nun0@posteo.co>2022-06-15 23:01:53 +0200
committerrare-magma <nun0@posteo.co>2022-06-15 23:01:53 +0200
commitcd44aab61f0b59302708cfb519fb3b5fb395f0da (patch)
tree408a5b58b1b821b87538a7cbae6f91a77069de89
parent3c148a4d97d0f54f1d6f464ddc64b03fda1ad5fa (diff)
handle smart errors, use ParseAsTemperature()
-rw-r--r--devices/temp_nix.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/devices/temp_nix.go b/devices/temp_nix.go
index dcb8ed4..e6d3f57 100644
--- a/devices/temp_nix.go
+++ b/devices/temp_nix.go
@@ -48,18 +48,23 @@ func getTemps(temps map[string]int) map[string]error {
switch sm := dev.(type) {
case *smart.SataDevice:
- data, _ := sm.ReadSMARTData()
+ data, err := sm.ReadSMARTData()
if err != nil {
- log.Print("error getting smart data")
+ log.Print("error getting smart data for " + disk.Name + "_" + disk.Model)
return nil
}
if attr, ok := data.Attrs[194]; ok {
- temps[disk.Name+"_"+disk.Model] = int(attr.Value)
+ val, _, _, _, err := attr.ParseAsTemperature()
+ if err != nil {
+ log.Print("error parsing temperature smart data for " + disk.Name + "_" + disk.Model)
+ return nil
+ }
+ temps[disk.Name+"_"+disk.Model] = int(val)
}
case *smart.NVMeDevice:
- data, _ := sm.ReadSMART()
+ data, err := sm.ReadSMART()
if err != nil {
- log.Print("error getting smart data")
+ log.Print("error getting smart data for " + disk.Name + "_" + disk.Model)
return nil
}
temps[disk.Name+"_"+disk.Model] = int(data.Temperature)