65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
package collector
|
|
|
|
import "strings"
|
|
|
|
const (
|
|
statusOK = "OK"
|
|
statusWarning = "Warning"
|
|
statusCritical = "Critical"
|
|
statusUnknown = "Unknown"
|
|
statusEmpty = "Empty"
|
|
)
|
|
|
|
func mapPCIeDeviceClass(raw string) string {
|
|
normalized := strings.ToLower(strings.TrimSpace(raw))
|
|
switch {
|
|
case normalized == "":
|
|
return ""
|
|
case strings.Contains(normalized, "ethernet controller"):
|
|
return "EthernetController"
|
|
case strings.Contains(normalized, "fibre channel"):
|
|
return "FibreChannelController"
|
|
case strings.Contains(normalized, "network controller"), strings.Contains(normalized, "infiniband controller"):
|
|
return "NetworkController"
|
|
case strings.Contains(normalized, "serial attached scsi"), strings.Contains(normalized, "storage controller"):
|
|
return "StorageController"
|
|
case strings.Contains(normalized, "raid"), strings.Contains(normalized, "mass storage"):
|
|
return "MassStorageController"
|
|
case strings.Contains(normalized, "display controller"):
|
|
return "DisplayController"
|
|
case strings.Contains(normalized, "vga"), strings.Contains(normalized, "3d controller"), strings.Contains(normalized, "video controller"):
|
|
return "VideoController"
|
|
case strings.Contains(normalized, "processing accelerators"), strings.Contains(normalized, "processing accelerator"):
|
|
return "ProcessingAccelerator"
|
|
default:
|
|
return raw
|
|
}
|
|
}
|
|
|
|
func isNICClass(class string) bool {
|
|
switch strings.TrimSpace(class) {
|
|
case "EthernetController", "NetworkController":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func isGPUClass(class string) bool {
|
|
switch strings.TrimSpace(class) {
|
|
case "VideoController", "DisplayController", "ProcessingAccelerator":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func isRAIDClass(class string) bool {
|
|
switch strings.TrimSpace(class) {
|
|
case "MassStorageController", "StorageController":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|