When running against a remote daemon, we cannot use the local
filesystem to determine configuration.
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
| ... | ... |
@@ -677,7 +677,7 @@ func (s *DockerSuite) TestRunWithSwappinessInvalid(c *check.C) {
|
| 677 | 677 |
} |
| 678 | 678 |
|
| 679 | 679 |
func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
|
| 680 |
- testRequires(c, memoryReservationSupport) |
|
| 680 |
+ testRequires(c, SameHostDaemon, memoryReservationSupport) |
|
| 681 | 681 |
|
| 682 | 682 |
file := "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes" |
| 683 | 683 |
out, _ := dockerCmd(c, "run", "--memory-reservation", "200M", "--name", "test", "busybox", "cat", file) |
| ... | ... |
@@ -689,7 +689,7 @@ func (s *DockerSuite) TestRunWithMemoryReservation(c *check.C) {
|
| 689 | 689 |
|
| 690 | 690 |
func (s *DockerSuite) TestRunWithMemoryReservationInvalid(c *check.C) {
|
| 691 | 691 |
testRequires(c, memoryLimitSupport) |
| 692 |
- testRequires(c, memoryReservationSupport) |
|
| 692 |
+ testRequires(c, SameHostDaemon, memoryReservationSupport) |
|
| 693 | 693 |
out, _, err := dockerCmdWithError("run", "-m", "500M", "--memory-reservation", "800M", "busybox", "true")
|
| 694 | 694 |
c.Assert(err, check.NotNil) |
| 695 | 695 |
expected := "Minimum memory limit can not be less than memory reservation limit" |
| ... | ... |
@@ -1401,7 +1401,7 @@ func (s *DockerSuite) TestRunDeviceSymlink(c *check.C) {
|
| 1401 | 1401 |
|
| 1402 | 1402 |
// TestRunPIDsLimit makes sure the pids cgroup is set with --pids-limit |
| 1403 | 1403 |
func (s *DockerSuite) TestRunPIDsLimit(c *check.C) {
|
| 1404 |
- testRequires(c, pidsLimit) |
|
| 1404 |
+ testRequires(c, SameHostDaemon, pidsLimit) |
|
| 1405 | 1405 |
|
| 1406 | 1406 |
file := "/sys/fs/cgroup/pids/pids.max" |
| 1407 | 1407 |
out, _ := dockerCmd(c, "run", "--name", "skittles", "--pids-limit", "4", "busybox", "cat", file) |
| ... | ... |
@@ -14,7 +14,6 @@ import ( |
| 14 | 14 |
"github.com/docker/docker/client" |
| 15 | 15 |
"github.com/docker/docker/integration-cli/checker" |
| 16 | 16 |
"github.com/docker/docker/integration-cli/request" |
| 17 |
- "github.com/docker/docker/pkg/parsers/kernel" |
|
| 18 | 17 |
"github.com/go-check/check" |
| 19 | 18 |
"github.com/kr/pty" |
| 20 | 19 |
) |
| ... | ... |
@@ -139,7 +138,7 @@ func (s *DockerSuite) TestUpdateKernelMemory(c *check.C) {
|
| 139 | 139 |
func (s *DockerSuite) TestUpdateKernelMemoryUninitialized(c *check.C) {
|
| 140 | 140 |
testRequires(c, DaemonIsLinux, kernelMemorySupport) |
| 141 | 141 |
|
| 142 |
- isNewKernel := kernel.CheckKernelVersion(4, 6, 0) |
|
| 142 |
+ isNewKernel := CheckKernelVersion(4, 6, 0) |
|
| 143 | 143 |
name := "test-update-container" |
| 144 | 144 |
dockerCmd(c, "run", "-d", "--name", name, "busybox", "top") |
| 145 | 145 |
_, _, err := dockerCmdWithError("update", "--kernel-memory", "100M", name)
|
| ... | ... |
@@ -18,19 +18,19 @@ var ( |
| 18 | 18 |
) |
| 19 | 19 |
|
| 20 | 20 |
func cpuCfsPeriod() bool {
|
| 21 |
- return SysInfo.CPUCfsPeriod |
|
| 21 |
+ return testEnv.DaemonInfo.CPUCfsPeriod |
|
| 22 | 22 |
} |
| 23 | 23 |
|
| 24 | 24 |
func cpuCfsQuota() bool {
|
| 25 |
- return SysInfo.CPUCfsQuota |
|
| 25 |
+ return testEnv.DaemonInfo.CPUCfsQuota |
|
| 26 | 26 |
} |
| 27 | 27 |
|
| 28 | 28 |
func cpuShare() bool {
|
| 29 |
- return SysInfo.CPUShares |
|
| 29 |
+ return testEnv.DaemonInfo.CPUShares |
|
| 30 | 30 |
} |
| 31 | 31 |
|
| 32 | 32 |
func oomControl() bool {
|
| 33 |
- return SysInfo.OomKillDisable |
|
| 33 |
+ return testEnv.DaemonInfo.OomKillDisable |
|
| 34 | 34 |
} |
| 35 | 35 |
|
| 36 | 36 |
func pidsLimit() bool {
|
| ... | ... |
@@ -38,11 +38,11 @@ func pidsLimit() bool {
|
| 38 | 38 |
} |
| 39 | 39 |
|
| 40 | 40 |
func kernelMemorySupport() bool {
|
| 41 |
- return SysInfo.KernelMemory |
|
| 41 |
+ return testEnv.DaemonInfo.KernelMemory |
|
| 42 | 42 |
} |
| 43 | 43 |
|
| 44 | 44 |
func memoryLimitSupport() bool {
|
| 45 |
- return SysInfo.MemoryLimit |
|
| 45 |
+ return testEnv.DaemonInfo.MemoryLimit |
|
| 46 | 46 |
} |
| 47 | 47 |
|
| 48 | 48 |
func memoryReservationSupport() bool {
|
| ... | ... |
@@ -50,19 +50,19 @@ func memoryReservationSupport() bool {
|
| 50 | 50 |
} |
| 51 | 51 |
|
| 52 | 52 |
func swapMemorySupport() bool {
|
| 53 |
- return SysInfo.SwapLimit |
|
| 53 |
+ return testEnv.DaemonInfo.SwapLimit |
|
| 54 | 54 |
} |
| 55 | 55 |
|
| 56 | 56 |
func memorySwappinessSupport() bool {
|
| 57 |
- return SysInfo.MemorySwappiness |
|
| 57 |
+ return SameHostDaemon() && SysInfo.MemorySwappiness |
|
| 58 | 58 |
} |
| 59 | 59 |
|
| 60 | 60 |
func blkioWeight() bool {
|
| 61 |
- return SysInfo.BlkioWeight |
|
| 61 |
+ return SameHostDaemon() && SysInfo.BlkioWeight |
|
| 62 | 62 |
} |
| 63 | 63 |
|
| 64 | 64 |
func cgroupCpuset() bool {
|
| 65 |
- return SysInfo.Cpuset |
|
| 65 |
+ return testEnv.DaemonInfo.CPUSet |
|
| 66 | 66 |
} |
| 67 | 67 |
|
| 68 | 68 |
func seccompEnabled() bool {
|
| ... | ... |
@@ -111,5 +111,7 @@ func overlay2Supported() bool {
|
| 111 | 111 |
} |
| 112 | 112 |
|
| 113 | 113 |
func init() {
|
| 114 |
- SysInfo = sysinfo.New(true) |
|
| 114 |
+ if SameHostDaemon() {
|
|
| 115 |
+ SysInfo = sysinfo.New(true) |
|
| 116 |
+ } |
|
| 115 | 117 |
} |
| ... | ... |
@@ -9,6 +9,7 @@ import ( |
| 9 | 9 |
|
| 10 | 10 |
"github.com/docker/docker/api/types" |
| 11 | 11 |
"github.com/docker/docker/client" |
| 12 |
+ "github.com/docker/docker/pkg/parsers/kernel" |
|
| 12 | 13 |
"github.com/docker/docker/pkg/stringutils" |
| 13 | 14 |
"github.com/go-check/check" |
| 14 | 15 |
"github.com/gotestyourself/gotestyourself/icmd" |
| ... | ... |
@@ -194,3 +195,19 @@ func NewEnvClientWithVersion(version string) (*client.Client, error) {
|
| 194 | 194 |
cli.NegotiateAPIVersionPing(types.Ping{APIVersion: version})
|
| 195 | 195 |
return cli, nil |
| 196 | 196 |
} |
| 197 |
+ |
|
| 198 |
+// GetKernelVersion gets the current kernel version. |
|
| 199 |
+func GetKernelVersion() *kernel.VersionInfo {
|
|
| 200 |
+ v, _ := kernel.ParseRelease(testEnv.DaemonInfo.KernelVersion) |
|
| 201 |
+ return v |
|
| 202 |
+} |
|
| 203 |
+ |
|
| 204 |
+// CheckKernelVersion checks if current kernel is newer than (or equal to) |
|
| 205 |
+// the given version. |
|
| 206 |
+func CheckKernelVersion(k, major, minor int) bool {
|
|
| 207 |
+ v := GetKernelVersion() |
|
| 208 |
+ if kernel.CompareKernelVersion(*v, kernel.VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 {
|
|
| 209 |
+ return false |
|
| 210 |
+ } |
|
| 211 |
+ return true |
|
| 212 |
+} |