Browse code

Move "info" to daemon/info.go

Signed-off-by: Solomon Hykes <solomon@docker.com>

Solomon Hykes authored on 2014/08/08 12:01:55
Showing 4 changed files
... ...
@@ -118,6 +118,7 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
118 118
 		"create":            daemon.ContainerCreate,
119 119
 		"delete":            daemon.ContainerDestroy,
120 120
 		"export":            daemon.ContainerExport,
121
+		"info":              daemon.CmdInfo,
121 122
 		"kill":              daemon.ContainerKill,
122 123
 		"logs":              daemon.ContainerLogs,
123 124
 		"pause":             daemon.ContainerPause,
124 125
new file mode 100644
... ...
@@ -0,0 +1,74 @@
0
+package daemon
1
+
2
+import (
3
+	"os"
4
+	"runtime"
5
+
6
+	"github.com/docker/docker/dockerversion"
7
+	"github.com/docker/docker/engine"
8
+	"github.com/docker/docker/pkg/parsers/kernel"
9
+	"github.com/docker/docker/pkg/parsers/operatingsystem"
10
+	"github.com/docker/docker/registry"
11
+	"github.com/docker/docker/utils"
12
+)
13
+
14
+func (daemon *Daemon) CmdInfo(job *engine.Job) engine.Status {
15
+	images, _ := daemon.Graph().Map()
16
+	var imgcount int
17
+	if images == nil {
18
+		imgcount = 0
19
+	} else {
20
+		imgcount = len(images)
21
+	}
22
+	kernelVersion := "<unknown>"
23
+	if kv, err := kernel.GetKernelVersion(); err == nil {
24
+		kernelVersion = kv.String()
25
+	}
26
+
27
+	operatingSystem := "<unknown>"
28
+	if s, err := operatingsystem.GetOperatingSystem(); err == nil {
29
+		operatingSystem = s
30
+	}
31
+	if inContainer, err := operatingsystem.IsContainerized(); err != nil {
32
+		utils.Errorf("Could not determine if daemon is containerized: %v", err)
33
+		operatingSystem += " (error determining if containerized)"
34
+	} else if inContainer {
35
+		operatingSystem += " (containerized)"
36
+	}
37
+
38
+	// if we still have the original dockerinit binary from before we copied it locally, let's return the path to that, since that's more intuitive (the copied path is trivial to derive by hand given VERSION)
39
+	initPath := utils.DockerInitPath("")
40
+	if initPath == "" {
41
+		// if that fails, we'll just return the path from the daemon
42
+		initPath = daemon.SystemInitPath()
43
+	}
44
+
45
+	cjob := job.Eng.Job("subscribers_count")
46
+	env, _ := cjob.Stdout.AddEnv()
47
+	if err := cjob.Run(); err != nil {
48
+		return job.Error(err)
49
+	}
50
+	v := &engine.Env{}
51
+	v.SetInt("Containers", len(daemon.List()))
52
+	v.SetInt("Images", imgcount)
53
+	v.Set("Driver", daemon.GraphDriver().String())
54
+	v.SetJson("DriverStatus", daemon.GraphDriver().Status())
55
+	v.SetBool("MemoryLimit", daemon.SystemConfig().MemoryLimit)
56
+	v.SetBool("SwapLimit", daemon.SystemConfig().SwapLimit)
57
+	v.SetBool("IPv4Forwarding", !daemon.SystemConfig().IPv4ForwardingDisabled)
58
+	v.SetBool("Debug", os.Getenv("DEBUG") != "")
59
+	v.SetInt("NFd", utils.GetTotalUsedFds())
60
+	v.SetInt("NGoroutines", runtime.NumGoroutine())
61
+	v.Set("ExecutionDriver", daemon.ExecutionDriver().Name())
62
+	v.SetInt("NEventsListener", env.GetInt("count"))
63
+	v.Set("KernelVersion", kernelVersion)
64
+	v.Set("OperatingSystem", operatingSystem)
65
+	v.Set("IndexServerAddress", registry.IndexServerAddress())
66
+	v.Set("InitSha1", dockerversion.INITSHA1)
67
+	v.Set("InitPath", initPath)
68
+	v.SetList("Sockets", daemon.Sockets)
69
+	if _, err := v.WriteTo(job.Stdout); err != nil {
70
+		return job.Error(err)
71
+	}
72
+	return engine.StatusOK
73
+}
... ...
@@ -86,7 +86,6 @@ func InitServer(job *engine.Job) engine.Status {
86 86
 	job.Eng.Hack_SetGlobalVar("httpapi.daemon", srv.daemon)
87 87
 
88 88
 	for name, handler := range map[string]engine.Handler{
89
-		"info":  srv.DockerInfo,
90 89
 		"build": srv.Build,
91 90
 		"pull":  srv.ImagePull,
92 91
 		"push":  srv.ImagePush,
... ...
@@ -22,81 +22,13 @@
22 22
 package server
23 23
 
24 24
 import (
25
-	"os"
26
-	"runtime"
27 25
 	"sync"
28 26
 	"time"
29 27
 
30 28
 	"github.com/docker/docker/daemon"
31
-	"github.com/docker/docker/dockerversion"
32 29
 	"github.com/docker/docker/engine"
33
-	"github.com/docker/docker/pkg/parsers/kernel"
34
-	"github.com/docker/docker/pkg/parsers/operatingsystem"
35
-	"github.com/docker/docker/registry"
36
-	"github.com/docker/docker/utils"
37 30
 )
38 31
 
39
-func (srv *Server) DockerInfo(job *engine.Job) engine.Status {
40
-	images, _ := srv.daemon.Graph().Map()
41
-	var imgcount int
42
-	if images == nil {
43
-		imgcount = 0
44
-	} else {
45
-		imgcount = len(images)
46
-	}
47
-	kernelVersion := "<unknown>"
48
-	if kv, err := kernel.GetKernelVersion(); err == nil {
49
-		kernelVersion = kv.String()
50
-	}
51
-
52
-	operatingSystem := "<unknown>"
53
-	if s, err := operatingsystem.GetOperatingSystem(); err == nil {
54
-		operatingSystem = s
55
-	}
56
-	if inContainer, err := operatingsystem.IsContainerized(); err != nil {
57
-		utils.Errorf("Could not determine if daemon is containerized: %v", err)
58
-		operatingSystem += " (error determining if containerized)"
59
-	} else if inContainer {
60
-		operatingSystem += " (containerized)"
61
-	}
62
-
63
-	// if we still have the original dockerinit binary from before we copied it locally, let's return the path to that, since that's more intuitive (the copied path is trivial to derive by hand given VERSION)
64
-	initPath := utils.DockerInitPath("")
65
-	if initPath == "" {
66
-		// if that fails, we'll just return the path from the daemon
67
-		initPath = srv.daemon.SystemInitPath()
68
-	}
69
-
70
-	cjob := job.Eng.Job("subscribers_count")
71
-	env, _ := cjob.Stdout.AddEnv()
72
-	if err := cjob.Run(); err != nil {
73
-		return job.Error(err)
74
-	}
75
-	v := &engine.Env{}
76
-	v.SetInt("Containers", len(srv.daemon.List()))
77
-	v.SetInt("Images", imgcount)
78
-	v.Set("Driver", srv.daemon.GraphDriver().String())
79
-	v.SetJson("DriverStatus", srv.daemon.GraphDriver().Status())
80
-	v.SetBool("MemoryLimit", srv.daemon.SystemConfig().MemoryLimit)
81
-	v.SetBool("SwapLimit", srv.daemon.SystemConfig().SwapLimit)
82
-	v.SetBool("IPv4Forwarding", !srv.daemon.SystemConfig().IPv4ForwardingDisabled)
83
-	v.SetBool("Debug", os.Getenv("DEBUG") != "")
84
-	v.SetInt("NFd", utils.GetTotalUsedFds())
85
-	v.SetInt("NGoroutines", runtime.NumGoroutine())
86
-	v.Set("ExecutionDriver", srv.daemon.ExecutionDriver().Name())
87
-	v.SetInt("NEventsListener", env.GetInt("count"))
88
-	v.Set("KernelVersion", kernelVersion)
89
-	v.Set("OperatingSystem", operatingSystem)
90
-	v.Set("IndexServerAddress", registry.IndexServerAddress())
91
-	v.Set("InitSha1", dockerversion.INITSHA1)
92
-	v.Set("InitPath", initPath)
93
-	v.SetList("Sockets", srv.daemon.Sockets)
94
-	if _, err := v.WriteTo(job.Stdout); err != nil {
95
-		return job.Error(err)
96
-	}
97
-	return engine.StatusOK
98
-}
99
-
100 32
 func (srv *Server) SetRunning(status bool) {
101 33
 	srv.Lock()
102 34
 	defer srv.Unlock()