Browse code

Fix version detection for docker-init

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>

Kenfe-Mickael Laventure authored on 2016/11/12 01:02:44
Showing 1 changed files
... ...
@@ -169,22 +169,35 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
169 169
 					v.RuncCommit.ID = strings.TrimSpace(parts[1])
170 170
 				}
171 171
 			}
172
+
173
+			if v.RuncCommit.ID == "" {
174
+				logrus.Warnf("failed to retrieve %s version: unknown output format: %s", DefaultRuntimeBinary, string(rv))
175
+				v.RuncCommit.ID = "N/A"
176
+			}
172 177
 		} else {
173 178
 			logrus.Warnf("failed to retrieve %s version: %v", DefaultRuntimeBinary, err)
174 179
 			v.RuncCommit.ID = "N/A"
175 180
 		}
176
-		if v.RuncCommit.ID == "" {
177
-			logrus.Warnf("failed to retrieve %s version: unknown output format", DefaultRuntimeBinary)
178
-			v.RuncCommit.ID = "N/A"
179
-		}
180 181
 
181 182
 		v.InitCommit.Expected = dockerversion.InitCommitID
182 183
 		if rv, err := exec.Command(DefaultInitBinary, "--version").Output(); err == nil {
183
-			parts := strings.Split(string(rv), " ")
184
-			if len(parts) == 3 {
185
-				v.InitCommit.ID = strings.TrimSpace(parts[2])
186
-			} else {
187
-				logrus.Warnf("failed to retrieve %s version: unknown output format", DefaultInitBinary)
184
+			parts := strings.Split(strings.TrimSpace(string(rv)), " - ")
185
+			if len(parts) == 2 {
186
+				if dockerversion.InitCommitID[0] == 'v' {
187
+					vs := strings.TrimPrefix(parts[0], "tini version ")
188
+					v.InitCommit.ID = "v" + vs
189
+				} else {
190
+					// Get the sha1
191
+					gitParts := strings.Split(parts[1], ".")
192
+					if len(gitParts) == 2 && gitParts[0] == "git" {
193
+						v.InitCommit.ID = gitParts[1]
194
+						v.InitCommit.Expected = dockerversion.InitCommitID[0:len(gitParts[1])]
195
+					}
196
+				}
197
+			}
198
+
199
+			if v.InitCommit.ID == "" {
200
+				logrus.Warnf("failed to retrieve %s version: unknown output format: %s", DefaultInitBinary, string(rv))
188 201
 				v.InitCommit.ID = "N/A"
189 202
 			}
190 203
 		} else {