mirror of
https://github.com/containers/podman.git
synced 2025-05-20 00:27:03 +08:00

Podman adds an Error: to every error message. So starting an error message with "error" ends up being reported to the user as Error: error ... This patch removes the stutter. Also ioutil.ReadFile errors report the Path, so wrapping the err message with the path causes a stutter. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
41 lines
1000 B
Go
41 lines
1000 B
Go
package libpod
|
|
|
|
import (
|
|
"fmt"
|
|
"unsafe"
|
|
|
|
"github.com/containers/podman/v4/libpod/define"
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func (r *Runtime) setPlatformHostInfo(info *define.HostInfo) error {
|
|
return nil
|
|
}
|
|
|
|
func timeToPercent(time uint64, total uint64) float64 {
|
|
return 100.0 * float64(time) / float64(total)
|
|
}
|
|
|
|
// getCPUUtilization Returns a CPUUsage object that summarizes CPU
|
|
// usage for userspace, system, and idle time.
|
|
func getCPUUtilization() (*define.CPUUsage, error) {
|
|
buf, err := unix.SysctlRaw("kern.cp_time")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("reading sysctl kern.cp_time: %w", err)
|
|
}
|
|
|
|
var total uint64 = 0
|
|
var times [unix.CPUSTATES]uint64
|
|
|
|
for i := 0; i < unix.CPUSTATES; i++ {
|
|
val := *(*uint64)(unsafe.Pointer(&buf[8*i]))
|
|
times[i] = val
|
|
total += val
|
|
}
|
|
return &define.CPUUsage{
|
|
UserPercent: timeToPercent(times[unix.CP_USER], total),
|
|
SystemPercent: timeToPercent(times[unix.CP_SYS], total),
|
|
IdlePercent: timeToPercent(times[unix.CP_IDLE], total),
|
|
}, nil
|
|
}
|