Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Canread
Gopsutil
提交
955c9d23
G
Gopsutil
项目概览
Canread
/
Gopsutil
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gopsutil
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
955c9d23
编写于
5月 16, 2014
作者:
S
Shirou WAKAYAMA
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
go fmt
上级
4b7a2b29
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
37 deletion
+35
-37
host.go
host.go
+4
-4
host_linux.go
host_linux.go
+30
-32
host_test.go
host_test.go
+1
-1
未找到文件。
host.go
浏览文件 @
955c9d23
...
...
@@ -9,10 +9,10 @@ import (
type
HostInfoStat
struct
{
Hostname
string
`json:"hostname"`
Uptime
int64
`json:"uptime"`
Procs
uint64
`json:"procs"`
// number of processes
OS
string
`json:"os"`
// ex: freebsd, linux
Platform
string
`json:"platform"`
// ex: ubuntu, linuxmint
PlatformFamily
string
`json:"platformFamily"`
// ex: debian, rhel
Procs
uint64
`json:"procs"`
// number of processes
OS
string
`json:"os"`
// ex: freebsd, linux
Platform
string
`json:"platform"`
// ex: ubuntu, linuxmint
PlatformFamily
string
`json:"platformFamily"`
// ex: debian, rhel
PlatformVersion
string
`json:"platformVersion"`
}
...
...
host_linux.go
浏览文件 @
955c9d23
...
...
@@ -9,9 +9,9 @@ import (
"os"
"os/exec"
"runtime"
"strings"
"syscall"
"unsafe"
"strings"
)
type
LSB
struct
{
...
...
@@ -33,13 +33,12 @@ func HostInfo() (*HostInfoStat, error) {
}
platform
,
family
,
version
,
err
:=
getPlatformInformation
()
if
err
==
nil
{
if
err
==
nil
{
ret
.
Platform
=
platform
ret
.
PlatformFamily
=
family
ret
.
PlatformVersion
=
version
}
return
ret
,
nil
}
...
...
@@ -162,36 +161,36 @@ func getPlatformInformation() (string, string, string, error) {
version
,
_
=
getRedhatishVersion
(
contents
)
}
}
else
if
pathExists
(
"/etc/debian_version"
)
{
if
lsb
.
ID
==
"Ubuntu"
{
platform
=
"ubuntu"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"LinuxMint"
{
platform
=
"linuxmint"
version
=
lsb
.
Release
}
else
{
if
pathExists
(
"/usr/bin/raspi-config"
)
{
platform
=
"raspbian"
}
else
{
platform
=
"debian"
}
contents
,
err
:=
readLines
(
"/etc/debian_version"
)
if
err
==
nil
{
version
=
contents
[
0
]
}
if
lsb
.
ID
==
"Ubuntu"
{
platform
=
"ubuntu"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"LinuxMint"
{
platform
=
"linuxmint"
version
=
lsb
.
Release
}
else
{
if
pathExists
(
"/usr/bin/raspi-config"
)
{
platform
=
"raspbian"
}
else
{
platform
=
"debian"
}
contents
,
err
:=
readLines
(
"/etc/debian_version"
)
if
err
==
nil
{
version
=
contents
[
0
]
}
}
}
else
if
pathExists
(
"/etc/redhat-release"
){
}
else
if
pathExists
(
"/etc/redhat-release"
)
{
contents
,
err
:=
readLines
(
"/etc/redhat-release"
)
if
err
==
nil
{
version
,
_
=
getRedhatishVersion
(
contents
)
platform
,
_
=
getRedhatishPlatform
(
contents
)
}
}
else
if
pathExists
(
"/etc/system-release"
){
}
else
if
pathExists
(
"/etc/system-release"
)
{
contents
,
err
:=
readLines
(
"/etc/system-release"
)
if
err
==
nil
{
version
,
_
=
getRedhatishVersion
(
contents
)
platform
,
_
=
getRedhatishPlatform
(
contents
)
}
}
else
if
pathExists
(
"/etc/gentoo-release"
){
}
else
if
pathExists
(
"/etc/gentoo-release"
)
{
platform
=
"gentoo"
contents
,
err
:=
readLines
(
"/etc/gentoo-release"
)
if
err
==
nil
{
...
...
@@ -199,27 +198,26 @@ func getPlatformInformation() (string, string, string, error) {
}
// TODO: suse detection
// TODO: slackware detecion
}
else
if
pathExists
(
"/etc/arch-release"
)
{
}
else
if
pathExists
(
"/etc/arch-release"
)
{
platform
=
"arch"
// TODO: exherbo detection
}
else
if
lsb
.
ID
==
"RedHat"
{
}
else
if
lsb
.
ID
==
"RedHat"
{
platform
=
"redhat"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"Amazon"
{
}
else
if
lsb
.
ID
==
"Amazon"
{
platform
=
"amazon"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"ScientificSL"
{
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"ScientificSL"
{
platform
=
"scientific"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"XenServer"
{
version
=
lsb
.
Release
}
else
if
lsb
.
ID
==
"XenServer"
{
platform
=
"xenserver"
version
=
lsb
.
Release
}
else
if
lsb
.
ID
!=
""
{
version
=
lsb
.
Release
}
else
if
lsb
.
ID
!=
""
{
platform
=
strings
.
ToLower
(
lsb
.
ID
)
version
=
lsb
.
Release
}
switch
platform
{
case
"debian"
,
"ubuntu"
,
"linuxmint"
,
"raspbian"
:
family
=
"debian"
...
...
host_test.go
浏览文件 @
955c9d23
...
...
@@ -44,7 +44,7 @@ func TestHostInfoStat_String(t *testing.T) {
Hostname
:
"test"
,
Uptime
:
3000
,
Procs
:
100
,
OS
:
"linux"
,
OS
:
"linux"
,
Platform
:
"ubuntu"
,
}
e
:=
`{"hostname":"test","uptime":3000,"procs":100,"os":"linux","platform":"ubuntu","platformFamily":"","platformVersion":""}`
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录