func Info() (*InfoStat, error) { ret := &InfoStat{ OS: runtime.GOOS, } hostname, err := os.Hostname() if err == nil { ret.Hostname = hostname } platform, family, version, err := PlatformInformation() if err == nil { ret.Platform = platform ret.PlatformFamily = family ret.PlatformVersion = version } system, role, err := Virtualization() if err == nil { ret.VirtualizationSystem = system ret.VirtualizationRole = role } boot, err := BootTime() if err == nil { ret.BootTime = boot ret.Uptime = uptime(boot) } if numProcs, err := common.NumProcs(); err == nil { ret.Procs = numProcs } return ret, nil }
func Info() (*InfoStat, error) { ret := &InfoStat{ OS: runtime.GOOS, } hostname, err := os.Hostname() if err == nil { ret.Hostname = hostname } platform, family, version, err := PlatformInformation() if err == nil { ret.Platform = platform ret.PlatformFamily = family ret.PlatformVersion = version } kernelVersion, err := KernelVersion() if err == nil { ret.KernelVersion = kernelVersion } system, role, err := Virtualization() if err == nil { ret.VirtualizationSystem = system ret.VirtualizationRole = role } boot, err := BootTime() if err == nil { ret.BootTime = boot ret.Uptime = uptime(boot) } if numProcs, err := common.NumProcs(); err == nil { ret.Procs = numProcs } sysProductUUID := common.HostSys("class/dmi/id/product_uuid") switch { case common.PathExists(sysProductUUID): lines, err := common.ReadLines(sysProductUUID) if err == nil && len(lines) > 0 && lines[0] != "" { ret.HostID = lines[0] break } fallthrough default: values, err := common.DoSysctrl("kernel.random.boot_id") if err == nil && len(values) == 1 && values[0] != "" { ret.HostID = values[0] } } return ret, nil }