|
@@ -1,11 +1,16 @@
|
|
|
package builtins
|
|
|
|
|
|
import (
|
|
|
- api "github.com/dotcloud/docker/api/server"
|
|
|
+ "runtime"
|
|
|
+
|
|
|
+ "github.com/dotcloud/docker/api"
|
|
|
+ apiserver "github.com/dotcloud/docker/api/server"
|
|
|
"github.com/dotcloud/docker/daemon/networkdriver/bridge"
|
|
|
+ "github.com/dotcloud/docker/dockerversion"
|
|
|
"github.com/dotcloud/docker/engine"
|
|
|
"github.com/dotcloud/docker/registry"
|
|
|
"github.com/dotcloud/docker/server"
|
|
|
+ "github.com/dotcloud/docker/utils"
|
|
|
)
|
|
|
|
|
|
func Register(eng *engine.Engine) error {
|
|
@@ -15,12 +20,15 @@ func Register(eng *engine.Engine) error {
|
|
|
if err := remote(eng); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
+ if err := eng.Register("version", dockerVersion); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
return registry.NewService().Install(eng)
|
|
|
}
|
|
|
|
|
|
// remote: a RESTful api for cross-docker communication
|
|
|
func remote(eng *engine.Engine) error {
|
|
|
- return eng.Register("serveapi", api.ServeApi)
|
|
|
+ return eng.Register("serveapi", apiserver.ServeApi)
|
|
|
}
|
|
|
|
|
|
// daemon: a default execution and storage backend for Docker on Linux,
|
|
@@ -44,3 +52,21 @@ func daemon(eng *engine.Engine) error {
|
|
|
}
|
|
|
return eng.Register("init_networkdriver", bridge.InitDriver)
|
|
|
}
|
|
|
+
|
|
|
+// builtins jobs independent of any subsystem
|
|
|
+func dockerVersion(job *engine.Job) engine.Status {
|
|
|
+ v := &engine.Env{}
|
|
|
+ v.Set("Version", dockerversion.VERSION)
|
|
|
+ v.SetJson("ApiVersion", api.APIVERSION)
|
|
|
+ v.Set("GitCommit", dockerversion.GITCOMMIT)
|
|
|
+ v.Set("GoVersion", runtime.Version())
|
|
|
+ v.Set("Os", runtime.GOOS)
|
|
|
+ v.Set("Arch", runtime.GOARCH)
|
|
|
+ if kernelVersion, err := utils.GetKernelVersion(); err == nil {
|
|
|
+ v.Set("KernelVersion", kernelVersion.String())
|
|
|
+ }
|
|
|
+ if _, err := v.WriteTo(job.Stdout); err != nil {
|
|
|
+ return job.Error(err)
|
|
|
+ }
|
|
|
+ return engine.StatusOK
|
|
|
+}
|