|
1 | 1 | package daemon
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "context" |
4 | 5 | "os"
|
| 6 | + "os/exec" |
5 | 7 | "runtime"
|
| 8 | + "strings" |
6 | 9 | "sync/atomic"
|
7 | 10 | "time"
|
8 | 11 |
|
@@ -147,6 +150,47 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
|
147 | 150 | v.CPUSet = sysInfo.Cpuset
|
148 | 151 | v.Runtimes = daemon.configStore.GetAllRuntimes()
|
149 | 152 | v.DefaultRuntime = daemon.configStore.GetDefaultRuntimeName()
|
| 153 | + v.InitBinary = daemon.configStore.GetInitPath() |
| 154 | + |
| 155 | + v.ContainerdCommit.Expected = dockerversion.ContainerdCommitID |
| 156 | + if sv, err := daemon.containerd.GetServerVersion(context.Background()); err == nil { |
| 157 | + v.ContainerdCommit.ID = sv.Revision |
| 158 | + } else { |
| 159 | + logrus.Warnf("failed to retrieve containerd version: %v", err) |
| 160 | + v.ContainerdCommit.ID = "N/A" |
| 161 | + } |
| 162 | + |
| 163 | + v.RuncCommit.Expected = dockerversion.RuncCommitID |
| 164 | + if rv, err := exec.Command(DefaultRuntimeBinary, "--version").Output(); err == nil { |
| 165 | + parts := strings.Split(strings.TrimSpace(string(rv)), "\n") |
| 166 | + if len(parts) == 3 { |
| 167 | + parts = strings.Split(parts[1], ": ") |
| 168 | + if len(parts) == 2 { |
| 169 | + v.RuncCommit.ID = strings.TrimSpace(parts[1]) |
| 170 | + } |
| 171 | + } |
| 172 | + } else { |
| 173 | + logrus.Warnf("failed to retrieve %s version: %v", DefaultRuntimeBinary, err) |
| 174 | + v.RuncCommit.ID = "N/A" |
| 175 | + } |
| 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 | + v.InitCommit.Expected = dockerversion.InitCommitID |
| 182 | + 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) |
| 188 | + v.InitCommit.ID = "N/A" |
| 189 | + } |
| 190 | + } else { |
| 191 | + logrus.Warnf("failed to retrieve %s version", DefaultInitBinary) |
| 192 | + v.InitCommit.ID = "N/A" |
| 193 | + } |
150 | 194 | }
|
151 | 195 |
|
152 | 196 | hostname := ""
|
|
0 commit comments