Merge pull request #1243 from dotcloud/add_lxc_version_docker_info

*Client: LXC and Kernel version to docker info in debug mode
This commit is contained in:
Victor Vieux 2013-07-24 07:44:23 -07:00
commit dfc076a123
4 changed files with 27 additions and 6 deletions

View File

@ -20,11 +20,13 @@ type APIInfo struct {
Debug bool Debug bool
Containers int Containers int
Images int Images int
NFd int `json:",omitempty"` NFd int `json:",omitempty"`
NGoroutines int `json:",omitempty"` NGoroutines int `json:",omitempty"`
MemoryLimit bool `json:",omitempty"` MemoryLimit bool `json:",omitempty"`
SwapLimit bool `json:",omitempty"` SwapLimit bool `json:",omitempty"`
NEventsListener int `json:",omitempty"` LXCVersion string `json:",omitempty"`
NEventsListener int `json:",omitempty"`
KernelVersion string `json:",omitempty"`
} }
type APITop struct { type APITop struct {

View File

@ -471,7 +471,9 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
fmt.Fprintf(cli.out, "Debug mode (client): %v\n", os.Getenv("DEBUG") != "") fmt.Fprintf(cli.out, "Debug mode (client): %v\n", os.Getenv("DEBUG") != "")
fmt.Fprintf(cli.out, "Fds: %d\n", out.NFd) fmt.Fprintf(cli.out, "Fds: %d\n", out.NFd)
fmt.Fprintf(cli.out, "Goroutines: %d\n", out.NGoroutines) fmt.Fprintf(cli.out, "Goroutines: %d\n", out.NGoroutines)
fmt.Fprintf(cli.out, "LXC Version: %s\n", out.LXCVersion)
fmt.Fprintf(cli.out, "EventsListeners: %d\n", out.NEventsListener) fmt.Fprintf(cli.out, "EventsListeners: %d\n", out.NEventsListener)
fmt.Fprintf(cli.out, "Kernel Version: %s\n", out.KernelVersion)
} }
if !out.MemoryLimit { if !out.MemoryLimit {
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n") fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")

View File

@ -989,7 +989,10 @@ Display system-wide information
"NFd": 11, "NFd": 11,
"NGoroutines":21, "NGoroutines":21,
"MemoryLimit":true, "MemoryLimit":true,
"SwapLimit":false "SwapLimit":false,
"EventsListeners":"0",
"LXCVersion":"0.7.5",
"KernelVersion":"3.8.0-19-generic"
} }
:statuscode 200: no error :statuscode 200: no error

View File

@ -252,6 +252,18 @@ func (srv *Server) DockerInfo() *APIInfo {
} else { } else {
imgcount = len(images) imgcount = len(images)
} }
lxcVersion := ""
if output, err := exec.Command("lxc-version").CombinedOutput(); err == nil {
outputStr := string(output)
if len(strings.SplitN(outputStr, ":", 2)) == 2 {
lxcVersion = strings.TrimSpace(strings.SplitN(string(output), ":", 2)[1])
}
}
kernelVersion := "<unknown>"
if kv, err := utils.GetKernelVersion(); err == nil {
kernelVersion = kv.String()
}
return &APIInfo{ return &APIInfo{
Containers: len(srv.runtime.List()), Containers: len(srv.runtime.List()),
Images: imgcount, Images: imgcount,
@ -260,7 +272,9 @@ func (srv *Server) DockerInfo() *APIInfo {
Debug: os.Getenv("DEBUG") != "", Debug: os.Getenv("DEBUG") != "",
NFd: utils.GetTotalUsedFds(), NFd: utils.GetTotalUsedFds(),
NGoroutines: runtime.NumGoroutine(), NGoroutines: runtime.NumGoroutine(),
LXCVersion: lxcVersion,
NEventsListener: len(srv.events), NEventsListener: len(srv.events),
KernelVersion: kernelVersion,
} }
} }