Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
| ... | ... |
@@ -1,11 +1,16 @@ |
| 1 | 1 |
package builtins |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
- api "github.com/dotcloud/docker/api/server" |
|
| 4 |
+ "runtime" |
|
| 5 |
+ |
|
| 6 |
+ "github.com/dotcloud/docker/api" |
|
| 7 |
+ apiserver "github.com/dotcloud/docker/api/server" |
|
| 5 | 8 |
"github.com/dotcloud/docker/daemon/networkdriver/bridge" |
| 9 |
+ "github.com/dotcloud/docker/dockerversion" |
|
| 6 | 10 |
"github.com/dotcloud/docker/engine" |
| 7 | 11 |
"github.com/dotcloud/docker/registry" |
| 8 | 12 |
"github.com/dotcloud/docker/server" |
| 13 |
+ "github.com/dotcloud/docker/utils" |
|
| 9 | 14 |
) |
| 10 | 15 |
|
| 11 | 16 |
func Register(eng *engine.Engine) error {
|
| ... | ... |
@@ -15,12 +20,15 @@ func Register(eng *engine.Engine) error {
|
| 15 | 15 |
if err := remote(eng); err != nil {
|
| 16 | 16 |
return err |
| 17 | 17 |
} |
| 18 |
+ if err := eng.Register("version", dockerVersion); err != nil {
|
|
| 19 |
+ return err |
|
| 20 |
+ } |
|
| 18 | 21 |
return registry.NewService().Install(eng) |
| 19 | 22 |
} |
| 20 | 23 |
|
| 21 | 24 |
// remote: a RESTful api for cross-docker communication |
| 22 | 25 |
func remote(eng *engine.Engine) error {
|
| 23 |
- return eng.Register("serveapi", api.ServeApi)
|
|
| 26 |
+ return eng.Register("serveapi", apiserver.ServeApi)
|
|
| 24 | 27 |
} |
| 25 | 28 |
|
| 26 | 29 |
// daemon: a default execution and storage backend for Docker on Linux, |
| ... | ... |
@@ -44,3 +52,21 @@ func daemon(eng *engine.Engine) error {
|
| 44 | 44 |
} |
| 45 | 45 |
return eng.Register("init_networkdriver", bridge.InitDriver)
|
| 46 | 46 |
} |
| 47 |
+ |
|
| 48 |
+// builtins jobs independent of any subsystem |
|
| 49 |
+func dockerVersion(job *engine.Job) engine.Status {
|
|
| 50 |
+ v := &engine.Env{}
|
|
| 51 |
+ v.Set("Version", dockerversion.VERSION)
|
|
| 52 |
+ v.SetJson("ApiVersion", api.APIVERSION)
|
|
| 53 |
+ v.Set("GitCommit", dockerversion.GITCOMMIT)
|
|
| 54 |
+ v.Set("GoVersion", runtime.Version())
|
|
| 55 |
+ v.Set("Os", runtime.GOOS)
|
|
| 56 |
+ v.Set("Arch", runtime.GOARCH)
|
|
| 57 |
+ if kernelVersion, err := utils.GetKernelVersion(); err == nil {
|
|
| 58 |
+ v.Set("KernelVersion", kernelVersion.String())
|
|
| 59 |
+ } |
|
| 60 |
+ if _, err := v.WriteTo(job.Stdout); err != nil {
|
|
| 61 |
+ return job.Error(err) |
|
| 62 |
+ } |
|
| 63 |
+ return engine.StatusOK |
|
| 64 |
+} |
| ... | ... |
@@ -41,7 +41,6 @@ import ( |
| 41 | 41 |
"syscall" |
| 42 | 42 |
"time" |
| 43 | 43 |
|
| 44 |
- "github.com/dotcloud/docker/api" |
|
| 45 | 44 |
"github.com/dotcloud/docker/archive" |
| 46 | 45 |
"github.com/dotcloud/docker/daemon" |
| 47 | 46 |
"github.com/dotcloud/docker/daemonconfig" |
| ... | ... |
@@ -128,7 +127,6 @@ func InitServer(job *engine.Job) engine.Status {
|
| 128 | 128 |
"logs": srv.ContainerLogs, |
| 129 | 129 |
"changes": srv.ContainerChanges, |
| 130 | 130 |
"top": srv.ContainerTop, |
| 131 |
- "version": srv.DockerVersion, |
|
| 132 | 131 |
"load": srv.ImageLoad, |
| 133 | 132 |
"build": srv.Build, |
| 134 | 133 |
"pull": srv.ImagePull, |
| ... | ... |
@@ -807,23 +805,6 @@ func (srv *Server) DockerInfo(job *engine.Job) engine.Status {
|
| 807 | 807 |
return engine.StatusOK |
| 808 | 808 |
} |
| 809 | 809 |
|
| 810 |
-func (srv *Server) DockerVersion(job *engine.Job) engine.Status {
|
|
| 811 |
- v := &engine.Env{}
|
|
| 812 |
- v.Set("Version", dockerversion.VERSION)
|
|
| 813 |
- v.SetJson("ApiVersion", api.APIVERSION)
|
|
| 814 |
- v.Set("GitCommit", dockerversion.GITCOMMIT)
|
|
| 815 |
- v.Set("GoVersion", runtime.Version())
|
|
| 816 |
- v.Set("Os", runtime.GOOS)
|
|
| 817 |
- v.Set("Arch", runtime.GOARCH)
|
|
| 818 |
- if kernelVersion, err := utils.GetKernelVersion(); err == nil {
|
|
| 819 |
- v.Set("KernelVersion", kernelVersion.String())
|
|
| 820 |
- } |
|
| 821 |
- if _, err := v.WriteTo(job.Stdout); err != nil {
|
|
| 822 |
- return job.Error(err) |
|
| 823 |
- } |
|
| 824 |
- return engine.StatusOK |
|
| 825 |
-} |
|
| 826 |
- |
|
| 827 | 810 |
func (srv *Server) ImageHistory(job *engine.Job) engine.Status {
|
| 828 | 811 |
if n := len(job.Args); n != 1 {
|
| 829 | 812 |
return job.Errorf("Usage: %s IMAGE", job.Name)
|