Browse code

Add CheckKernelVersion so we can check any specific version

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>

Qiang Huang authored on 2015/08/19 11:40:22
Showing 1 changed files
... ...
@@ -63,6 +63,17 @@ func parseSecurityOpt(container *Container, config *runconfig.HostConfig) error
63 63
 	return err
64 64
 }
65 65
 
66
+func CheckKernelVersion(k, major, minor int) bool {
67
+	if v, err := kernel.GetKernelVersion(); err != nil {
68
+		logrus.Warnf("%s", err)
69
+	} else {
70
+		if kernel.CompareKernelVersion(*v, kernel.VersionInfo{Kernel: k, Major: major, Minor: minor}) < 0 {
71
+			return false
72
+		}
73
+	}
74
+	return true
75
+}
76
+
66 77
 func checkKernel() error {
67 78
 	// Check for unsupported kernel versions
68 79
 	// FIXME: it would be cleaner to not test for specific versions, but rather
... ...
@@ -71,13 +82,10 @@ func checkKernel() error {
71 71
 	// without actually causing a kernel panic, so we need this workaround until
72 72
 	// the circumstances of pre-3.10 crashes are clearer.
73 73
 	// For details see https://github.com/docker/docker/issues/407
74
-	if k, err := kernel.GetKernelVersion(); err != nil {
75
-		logrus.Warnf("%s", err)
76
-	} else {
77
-		if kernel.CompareKernelVersion(*k, kernel.VersionInfo{Kernel: 3, Major: 10, Minor: 0}) < 0 {
78
-			if os.Getenv("DOCKER_NOWARN_KERNEL_VERSION") == "" {
79
-				logrus.Warnf("You are running linux kernel version %s, which might be unstable running docker. Please upgrade your kernel to 3.10.0.", k.String())
80
-			}
74
+	if !CheckKernelVersion(3, 10, 0) {
75
+		v, _ := kernel.GetKernelVersion()
76
+		if os.Getenv("DOCKER_NOWARN_KERNEL_VERSION") == "" {
77
+			logrus.Warnf("Your Linux kernel version %s can be unstable running docker. Please upgrade your kernel to 3.10.0.", v.String())
81 78
 		}
82 79
 	}
83 80
 	return nil