Fix golint warning on pkg/sysinfo

Signed-off-by: Hu Keping <hukeping@huawei.com>
This commit is contained in:
Hu Keping 2015-07-22 18:31:34 +08:00
Родитель 8f2dca5386
Коммит 7390cc5300
7 изменённых файлов: 47 добавлений и 26 удалений

Просмотреть файл

@ -166,12 +166,12 @@ func verifyPlatformContainerSettings(daemon *Daemon, hostConfig *runconfig.HostC
return warnings, fmt.Errorf("Invalid value: %v, valid memory swappiness range is 0-100.", swappiness) return warnings, fmt.Errorf("Invalid value: %v, valid memory swappiness range is 0-100.", swappiness)
} }
} }
if hostConfig.CPUPeriod > 0 && !daemon.SystemConfig().CpuCfsPeriod { if hostConfig.CPUPeriod > 0 && !daemon.SystemConfig().CPUCfsPeriod {
warnings = append(warnings, "Your kernel does not support CPU cfs period. Period discarded.") warnings = append(warnings, "Your kernel does not support CPU cfs period. Period discarded.")
logrus.Warnf("Your kernel does not support CPU cfs period. Period discarded.") logrus.Warnf("Your kernel does not support CPU cfs period. Period discarded.")
hostConfig.CPUPeriod = 0 hostConfig.CPUPeriod = 0
} }
if hostConfig.CPUQuota > 0 && !daemon.SystemConfig().CpuCfsQuota { if hostConfig.CPUQuota > 0 && !daemon.SystemConfig().CPUCfsQuota {
warnings = append(warnings, "Your kernel does not support CPU cfs quota. Quota discarded.") warnings = append(warnings, "Your kernel does not support CPU cfs quota. Quota discarded.")
logrus.Warnf("Your kernel does not support CPU cfs quota. Quota discarded.") logrus.Warnf("Your kernel does not support CPU cfs quota. Quota discarded.")
hostConfig.CPUQuota = 0 hostConfig.CPUQuota = 0

Просмотреть файл

@ -64,7 +64,7 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
DriverStatus: daemon.GraphDriver().Status(), DriverStatus: daemon.GraphDriver().Status(),
IPv4Forwarding: !daemon.SystemConfig().IPv4ForwardingDisabled, IPv4Forwarding: !daemon.SystemConfig().IPv4ForwardingDisabled,
BridgeNfIptables: !daemon.SystemConfig().BridgeNfCallIptablesDisabled, BridgeNfIptables: !daemon.SystemConfig().BridgeNfCallIptablesDisabled,
BridgeNfIp6tables: !daemon.SystemConfig().BridgeNfCallIp6tablesDisabled, BridgeNfIp6tables: !daemon.SystemConfig().BridgeNfCallIP6tablesDisabled,
Debug: os.Getenv("DEBUG") != "", Debug: os.Getenv("DEBUG") != "",
NFd: fileutils.GetTotalUsedFds(), NFd: fileutils.GetTotalUsedFds(),
NGoroutines: runtime.NumGoroutine(), NGoroutines: runtime.NumGoroutine(),
@ -93,8 +93,8 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
v.MemoryLimit = daemon.SystemConfig().MemoryLimit v.MemoryLimit = daemon.SystemConfig().MemoryLimit
v.SwapLimit = daemon.SystemConfig().SwapLimit v.SwapLimit = daemon.SystemConfig().SwapLimit
v.OomKillDisable = daemon.SystemConfig().OomKillDisable v.OomKillDisable = daemon.SystemConfig().OomKillDisable
v.CpuCfsPeriod = daemon.SystemConfig().CpuCfsPeriod v.CpuCfsPeriod = daemon.SystemConfig().CPUCfsPeriod
v.CpuCfsQuota = daemon.SystemConfig().CpuCfsQuota v.CpuCfsQuota = daemon.SystemConfig().CPUCfsQuota
} }
if httpProxy := os.Getenv("http_proxy"); httpProxy != "" { if httpProxy := os.Getenv("http_proxy"); httpProxy != "" {

Просмотреть файл

@ -65,6 +65,7 @@ packages=(
pkg/streamformatter pkg/streamformatter
pkg/stringid pkg/stringid
pkg/stringutils pkg/stringutils
pkg/sysinfo
pkg/systemd pkg/systemd
pkg/symlink pkg/symlink
pkg/tailfile pkg/tailfile

Просмотреть файл

@ -3,23 +3,43 @@ package sysinfo
// SysInfo stores information about which features a kernel supports. // SysInfo stores information about which features a kernel supports.
// TODO Windows: Factor out platform specific capabilities. // TODO Windows: Factor out platform specific capabilities.
type SysInfo struct { type SysInfo struct {
// Whether the kernel supports AppArmor or not
AppArmor bool AppArmor bool
*cgroupMemInfo *cgroupMemInfo
*cgroupCpuInfo *cgroupCPUInfo
// Whether IPv4 forwarding is supported or not, if this was disabled, networking will not work
IPv4ForwardingDisabled bool IPv4ForwardingDisabled bool
// Whether bridge-nf-call-iptables is supported or not
BridgeNfCallIptablesDisabled bool BridgeNfCallIptablesDisabled bool
BridgeNfCallIp6tablesDisabled bool
// Whether bridge-nf-call-ip6tables is supported or not
BridgeNfCallIP6tablesDisabled bool
// Whether the cgroup has the mountpoint of "devices" or not
CgroupDevicesEnabled bool CgroupDevicesEnabled bool
} }
type cgroupMemInfo struct { type cgroupMemInfo struct {
// Whether memory limit is supported or not
MemoryLimit bool MemoryLimit bool
// Whether swap limit is supported or not
SwapLimit bool SwapLimit bool
// Whether OOM killer disalbe is supported or not
OomKillDisable bool OomKillDisable bool
// Whether memory swappiness is supported or not
MemorySwappiness bool MemorySwappiness bool
} }
type cgroupCpuInfo struct { type cgroupCPUInfo struct {
CpuCfsPeriod bool // Whether CPU CFS(Completely Fair Scheduler) period is supported or not
CpuCfsQuota bool CPUCfsPeriod bool
// Whether CPU CFS(Completely Fair Scheduler) quota is supported or not
CPUCfsQuota bool
} }

Просмотреть файл

@ -1,6 +1,6 @@
package sysinfo package sysinfo
// TODO FreeBSD // New returns an empty SysInfo for freebsd for now.
func New(quiet bool) *SysInfo { func New(quiet bool) *SysInfo {
sysInfo := &SysInfo{} sysInfo := &SysInfo{}
return sysInfo return sysInfo

Просмотреть файл

@ -14,14 +14,14 @@ import (
func New(quiet bool) *SysInfo { func New(quiet bool) *SysInfo {
sysInfo := &SysInfo{} sysInfo := &SysInfo{}
sysInfo.cgroupMemInfo = checkCgroupMem(quiet) sysInfo.cgroupMemInfo = checkCgroupMem(quiet)
sysInfo.cgroupCpuInfo = checkCgroupCpu(quiet) sysInfo.cgroupCPUInfo = checkCgroupCPU(quiet)
_, err := cgroups.FindCgroupMountpoint("devices") _, err := cgroups.FindCgroupMountpoint("devices")
sysInfo.CgroupDevicesEnabled = err == nil sysInfo.CgroupDevicesEnabled = err == nil
sysInfo.IPv4ForwardingDisabled = !readProcBool("/proc/sys/net/ipv4/ip_forward") sysInfo.IPv4ForwardingDisabled = !readProcBool("/proc/sys/net/ipv4/ip_forward")
sysInfo.BridgeNfCallIptablesDisabled = !readProcBool("/proc/sys/net/bridge/bridge-nf-call-iptables") sysInfo.BridgeNfCallIptablesDisabled = !readProcBool("/proc/sys/net/bridge/bridge-nf-call-iptables")
sysInfo.BridgeNfCallIp6tablesDisabled = !readProcBool("/proc/sys/net/bridge/bridge-nf-call-ip6tables") sysInfo.BridgeNfCallIP6tablesDisabled = !readProcBool("/proc/sys/net/bridge/bridge-nf-call-ip6tables")
// Check if AppArmor is supported. // Check if AppArmor is supported.
if _, err := os.Stat("/sys/kernel/security/apparmor"); !os.IsNotExist(err) { if _, err := os.Stat("/sys/kernel/security/apparmor"); !os.IsNotExist(err) {
@ -58,8 +58,8 @@ func checkCgroupMem(quiet bool) *cgroupMemInfo {
return info return info
} }
func checkCgroupCpu(quiet bool) *cgroupCpuInfo { func checkCgroupCPU(quiet bool) *cgroupCPUInfo {
info := &cgroupCpuInfo{} info := &cgroupCPUInfo{}
mountPoint, err := cgroups.FindCgroupMountpoint("cpu") mountPoint, err := cgroups.FindCgroupMountpoint("cpu")
if err != nil { if err != nil {
if !quiet { if !quiet {
@ -68,13 +68,13 @@ func checkCgroupCpu(quiet bool) *cgroupCpuInfo {
return info return info
} }
info.CpuCfsPeriod = cgroupEnabled(mountPoint, "cpu.cfs_period_us") info.CPUCfsPeriod = cgroupEnabled(mountPoint, "cpu.cfs_period_us")
if !quiet && !info.CpuCfsPeriod { if !quiet && !info.CPUCfsPeriod {
logrus.Warn("Your kernel does not support cgroup cfs period") logrus.Warn("Your kernel does not support cgroup cfs period")
} }
info.CpuCfsQuota = cgroupEnabled(mountPoint, "cpu.cfs_quota_us") info.CPUCfsQuota = cgroupEnabled(mountPoint, "cpu.cfs_quota_us")
if !quiet && !info.CpuCfsQuota { if !quiet && !info.CPUCfsQuota {
logrus.Warn("Your kernel does not support cgroup cfs quotas") logrus.Warn("Your kernel does not support cgroup cfs quotas")
} }
return info return info

Просмотреть файл

@ -1,6 +1,6 @@
package sysinfo package sysinfo
// TODO Windows // New returns an empty SysInfo for windows for now.
func New(quiet bool) *SysInfo { func New(quiet bool) *SysInfo {
sysInfo := &SysInfo{} sysInfo := &SysInfo{}
return sysInfo return sysInfo