mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
9b795c3e50
The "quiet" argument was only used in a single place (at daemon startup), and every other use had to pass "false" to prevent this function from logging warnings. Now that SysInfo contains the warnings that occurred when collecting the system information, we can make leave it up to the caller to use those warnings (and log them if wanted). Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
89 lines
1.7 KiB
Go
89 lines
1.7 KiB
Go
// +build !windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"os/exec"
|
|
"strings"
|
|
|
|
"github.com/docker/docker/pkg/sysinfo"
|
|
)
|
|
|
|
var (
|
|
// SysInfo stores information about which features a kernel supports.
|
|
SysInfo *sysinfo.SysInfo
|
|
)
|
|
|
|
func cpuCfsPeriod() bool {
|
|
return testEnv.DaemonInfo.CPUCfsPeriod
|
|
}
|
|
|
|
func cpuCfsQuota() bool {
|
|
return testEnv.DaemonInfo.CPUCfsQuota
|
|
}
|
|
|
|
func cpuShare() bool {
|
|
return testEnv.DaemonInfo.CPUShares
|
|
}
|
|
|
|
func oomControl() bool {
|
|
return testEnv.DaemonInfo.OomKillDisable
|
|
}
|
|
|
|
func pidsLimit() bool {
|
|
return SysInfo.PidsLimit
|
|
}
|
|
|
|
func memoryLimitSupport() bool {
|
|
return testEnv.DaemonInfo.MemoryLimit
|
|
}
|
|
|
|
func memoryReservationSupport() bool {
|
|
return SysInfo.MemoryReservation
|
|
}
|
|
|
|
func swapMemorySupport() bool {
|
|
return testEnv.DaemonInfo.SwapLimit
|
|
}
|
|
|
|
func memorySwappinessSupport() bool {
|
|
return testEnv.IsLocalDaemon() && SysInfo.MemorySwappiness
|
|
}
|
|
|
|
func blkioWeight() bool {
|
|
return testEnv.IsLocalDaemon() && SysInfo.BlkioWeight
|
|
}
|
|
|
|
func cgroupCpuset() bool {
|
|
return testEnv.DaemonInfo.CPUSet
|
|
}
|
|
|
|
func seccompEnabled() bool {
|
|
return supportsSeccomp && SysInfo.Seccomp
|
|
}
|
|
|
|
func bridgeNfIptables() bool {
|
|
return !SysInfo.BridgeNFCallIPTablesDisabled
|
|
}
|
|
|
|
func unprivilegedUsernsClone() bool {
|
|
content, err := ioutil.ReadFile("/proc/sys/kernel/unprivileged_userns_clone")
|
|
return err != nil || !strings.Contains(string(content), "0")
|
|
}
|
|
|
|
func overlayFSSupported() bool {
|
|
cmd := exec.Command(dockerBinary, "run", "--rm", "busybox", "/bin/sh", "-c", "cat /proc/filesystems")
|
|
out, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return bytes.Contains(out, []byte("overlay\n"))
|
|
}
|
|
|
|
func init() {
|
|
if testEnv.IsLocalDaemon() {
|
|
SysInfo = sysinfo.New()
|
|
}
|
|
}
|