diff --git a/host/host_darwin.go b/host/host_darwin.go index 1e6e3c6..0a0e462 100644 --- a/host/host_darwin.go +++ b/host/host_darwin.go @@ -23,10 +23,9 @@ func HostInfo() (*HostInfoStat, error) { } hostname, err := os.Hostname() - if err != nil { - return ret, err + if err == nil { + ret.Hostname = hostname } - ret.Hostname = hostname platform, family, version, err := GetPlatformInformation() if err == nil { @@ -46,9 +45,8 @@ func HostInfo() (*HostInfoStat, error) { v := strings.Replace(values[2], ",", "", 1) t, err := strconv.ParseUint(v, 10, 64) if err != nil { - return ret, err + ret.Uptime = t } - ret.Uptime = t } return ret, nil diff --git a/host/host_freebsd.go b/host/host_freebsd.go index edbd5dd..edff5b7 100644 --- a/host/host_freebsd.go +++ b/host/host_freebsd.go @@ -29,10 +29,9 @@ func HostInfo() (*HostInfoStat, error) { } hostname, err := os.Hostname() - if err != nil { - return ret, err + if err == nil { + ret.Hostname = hostname } - ret.Hostname = hostname platform, family, version, err := GetPlatformInformation() if err == nil { @@ -51,10 +50,9 @@ func HostInfo() (*HostInfoStat, error) { // ex: { sec = 1392261637, usec = 627534 } Thu Feb 13 12:20:37 2014 v := strings.Replace(values[2], ",", "", 1) t, err := strconv.ParseUint(v, 10, 64) - if err != nil { - return ret, err + if err == nil { + ret.Uptime = t } - ret.Uptime = t } return ret, nil diff --git a/host/host_linux.go b/host/host_linux.go index 7f4db2b..518987f 100644 --- a/host/host_linux.go +++ b/host/host_linux.go @@ -26,14 +26,13 @@ type LSB struct { } func HostInfo() (*HostInfoStat, error) { - hostname, err := os.Hostname() - if err != nil { - return nil, err + ret := &HostInfoStat{ + OS: runtime.GOOS, } - ret := &HostInfoStat{ - Hostname: hostname, - OS: runtime.GOOS, + hostname, err := os.Hostname() + if err == nil { + ret.Hostname = hostname } platform, family, version, err := GetPlatformInformation() diff --git a/host/host_windows.go b/host/host_windows.go index 4e1d44f..eecbdf0 100644 --- a/host/host_windows.go +++ b/host/host_windows.go @@ -3,11 +3,11 @@ package host import ( - "os" "fmt" - "time" + "os" "runtime" "strings" + "time" "github.com/StackExchange/wmi" @@ -17,26 +17,25 @@ import ( var ( procGetSystemTimeAsFileTime = common.Modkernel32.NewProc("GetSystemTimeAsFileTime") - osInfo *Win32_OperatingSystem + osInfo *Win32_OperatingSystem ) type Win32_OperatingSystem struct { - Version string - Caption string - ProductType uint32 - BuildNumber string + Version string + Caption string + ProductType uint32 + BuildNumber string LastBootUpTime time.Time } func HostInfo() (*HostInfoStat, error) { - hostname, err := os.Hostname() - if err != nil { - return nil, err + ret := &HostInfoStat{ + OS: runtime.GOOS, } - ret := &HostInfoStat{ - Hostname: hostname, - OS: runtime.GOOS, + hostname, err := os.Hostname() + if err == nil { + ret.Hostname = hostname } platform, family, version, err := GetPlatformInformation() @@ -44,15 +43,13 @@ func HostInfo() (*HostInfoStat, error) { ret.Platform = platform ret.PlatformFamily = family ret.PlatformVersion = version - } else { - return ret, err } - + ret.Uptime, err = BootTime() if err != nil { return ret, err } - + procs, err := process.Pids() if err != nil { return ret, err @@ -70,9 +67,9 @@ func GetOSInfo() (Win32_OperatingSystem, error) { if err != nil { return Win32_OperatingSystem{}, err } - + osInfo = &dst[0] - + return dst[0], nil } @@ -98,7 +95,7 @@ func GetPlatformInformation() (platform string, family string, version string, e // Platform platform = strings.Trim(osInfo.Caption, " ") - + // PlatformFamily switch osInfo.ProductType { case 1: @@ -108,7 +105,7 @@ func GetPlatformInformation() (platform string, family string, version string, e case 3: family = "Server" } - + // Platform Version version = fmt.Sprintf("%s Build %s", osInfo.Version, osInfo.BuildNumber)