Parcourir la source

Merge pull request #1243 from dotcloud/add_lxc_version_docker_info

*Client: LXC and Kernel version to docker info in debug mode
Victor Vieux il y a 12 ans
Parent
commit
dfc076a123
4 fichiers modifiés avec 27 ajouts et 6 suppressions
  1. 7 5
      api_params.go
  2. 2 0
      commands.go
  3. 4 1
      docs/sources/api/docker_remote_api_v1.3.rst
  4. 14 0
      server.go

+ 7 - 5
api_params.go

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

+ 2 - 0
commands.go

@@ -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, "Fds: %d\n", out.NFd)
 		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, "Kernel Version: %s\n", out.KernelVersion)
 	}
 	if !out.MemoryLimit {
 		fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")

+ 4 - 1
docs/sources/api/docker_remote_api_v1.3.rst

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

+ 14 - 0
server.go

@@ -252,6 +252,18 @@ func (srv *Server) DockerInfo() *APIInfo {
 	} else {
 		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{
 		Containers:      len(srv.runtime.List()),
 		Images:          imgcount,
@@ -260,7 +272,9 @@ func (srv *Server) DockerInfo() *APIInfo {
 		Debug:           os.Getenv("DEBUG") != "",
 		NFd:             utils.GetTotalUsedFds(),
 		NGoroutines:     runtime.NumGoroutine(),
+		LXCVersion:      lxcVersion,
 		NEventsListener: len(srv.events),
+		KernelVersion:   kernelVersion,
 	}
 }