Maybe fix for missing mountpoint info

This commit is contained in:
Svilen Markov 2025-04-13 16:52:17 +01:00
parent 50dae22ff4
commit a3bc133bcb

View File

@ -227,22 +227,24 @@ func Collect(req *SystemInfoRequest) (*SystemInfo, []error) {
} }
} }
filesystems, err := disk.Partitions(false) addedMountpoints := map[string]struct{}{}
if err == nil { addMountpointInfo := func(requestedPath string, mpReq MointpointRequest) {
for _, fs := range filesystems { if _, exists := addedMountpoints[requestedPath]; exists {
mpReq, ok := req.Mountpoints[fs.Mountpoint] return
}
isHidden := req.HideMountpointsByDefault isHidden := req.HideMountpointsByDefault
if ok && mpReq.Hide != nil { if mpReq.Hide != nil {
isHidden = *mpReq.Hide isHidden = *mpReq.Hide
} }
if isHidden { if isHidden {
continue return
} }
usage, err := disk.Usage(fs.Mountpoint) usage, err := disk.Usage(requestedPath)
if err == nil { if err == nil {
mpInfo := MountpointInfo{ mpInfo := MountpointInfo{
Path: fs.Mountpoint, Path: requestedPath,
Name: mpReq.Name, Name: mpReq.Name,
TotalMB: usage.Total / 1024 / 1024, TotalMB: usage.Total / 1024 / 1024,
UsedMB: usage.Used / 1024 / 1024, UsedMB: usage.Used / 1024 / 1024,
@ -250,13 +252,26 @@ func Collect(req *SystemInfoRequest) (*SystemInfo, []error) {
} }
info.Mountpoints = append(info.Mountpoints, mpInfo) info.Mountpoints = append(info.Mountpoints, mpInfo)
addedMountpoints[requestedPath] = struct{}{}
} else { } else {
addErr(fmt.Errorf("getting filesystem usage for %s: %v", fs.Mountpoint, err)) addErr(fmt.Errorf("getting filesystem usage for %s: %v", requestedPath, err))
} }
} }
if !req.HideMountpointsByDefault {
filesystems, err := disk.Partitions(false)
if err == nil {
for _, fs := range filesystems {
addMountpointInfo(fs.Mountpoint, req.Mountpoints[fs.Mountpoint])
}
} else { } else {
addErr(fmt.Errorf("getting filesystems: %v", err)) addErr(fmt.Errorf("getting filesystems: %v", err))
} }
}
for mountpoint, mpReq := range req.Mountpoints {
addMountpointInfo(mountpoint, mpReq)
}
sort.Slice(info.Mountpoints, func(a, b int) bool { sort.Slice(info.Mountpoints, func(a, b int) bool {
return info.Mountpoints[a].UsedPercent > info.Mountpoints[b].UsedPercent return info.Mountpoints[a].UsedPercent > info.Mountpoints[b].UsedPercent