| From 324e7be4b252c13002bca6a9d82e7b2e43664634 Mon Sep 17 00:00:00 2001 |
| From: Christian Stewart <christian@paral.in> |
| Date: Mon, 26 Nov 2018 22:59:32 -0800 |
| Subject: [PATCH] Fix faulty runc version commit scrape |
| |
| This commit replaces faulty logic to determine the runc version commit hash. |
| |
| The original logic takes the second line of the output of "runc --version" and |
| does not work if there are a different number of lines printed from the command |
| than expected. The buildroot version of runc outputs two lines instead of the |
| expected three, causing the error: |
| |
| unknown output format: runc version commit: ... |
| |
| This patch replaces this logic with a simple scan of the "runc --version" |
| output, searching for the "runc version commit" prefixed line. |
| |
| Signed-off-by: Christian Stewart <christian@paral.in> |
| --- |
| daemon/info_unix.go | 9 +++++---- |
| 1 file changed, 5 insertions(+), 4 deletions(-) |
| |
| diff --git a/daemon/info_unix.go b/daemon/info_unix.go |
| index 60b2f99870..688a510796 100644 |
| --- a/daemon/info_unix.go |
| +++ b/daemon/info_unix.go |
| @@ -32,10 +32,11 @@ func (daemon *Daemon) fillPlatformInfo(v *types.Info, sysInfo *sysinfo.SysInfo) |
| defaultRuntimeBinary := daemon.configStore.GetRuntime(v.DefaultRuntime).Path |
| if rv, err := exec.Command(defaultRuntimeBinary, "--version").Output(); err == nil { |
| parts := strings.Split(strings.TrimSpace(string(rv)), "\n") |
| - if len(parts) == 3 { |
| - parts = strings.Split(parts[1], ": ") |
| - if len(parts) == 2 { |
| - v.RuncCommit.ID = strings.TrimSpace(parts[1]) |
| + for _, pt := range parts { |
| + ptKv := strings.Split(pt, ":") |
| + if strings.HasSuffix(strings.TrimSpace(ptKv[0]), "commit") { |
| + v.RuncCommit.ID = strings.TrimSpace(ptKv[1]) |
| + break |
| } |
| } |
| |
| -- |
| 2.18.1 |
| |