123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package builtins
- import (
- "runtime"
- "github.com/docker/docker/api"
- apiserver "github.com/docker/docker/api/server"
- "github.com/docker/docker/daemon/networkdriver/bridge"
- "github.com/docker/docker/dockerversion"
- "github.com/docker/docker/engine"
- "github.com/docker/docker/events"
- "github.com/docker/docker/pkg/parsers/kernel"
- )
- func Register(eng *engine.Engine) error {
- if err := daemon(eng); err != nil {
- return err
- }
- if err := remote(eng); err != nil {
- return err
- }
- if err := events.New().Install(eng); err != nil {
- return err
- }
- if err := eng.Register("version", dockerVersion); err != nil {
- return err
- }
- return nil
- }
- // remote: a RESTful api for cross-docker communication
- func remote(eng *engine.Engine) error {
- if err := eng.Register("serveapi", apiserver.ServeApi); err != nil {
- return err
- }
- return eng.Register("acceptconnections", apiserver.AcceptConnections)
- }
- // daemon: a default execution and storage backend for Docker on Linux,
- // with the following underlying components:
- //
- // * Pluggable storage drivers including aufs, vfs, lvm and btrfs.
- // * Pluggable execution drivers including lxc and chroot.
- //
- // In practice `daemon` still includes most core Docker components, including:
- //
- // * The reference registry client implementation
- // * Image management
- // * The build facility
- // * Logging
- //
- // These components should be broken off into plugins of their own.
- //
- 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.SetJson("Version", dockerversion.VERSION)
- v.SetJson("ApiVersion", api.APIVERSION)
- v.SetJson("GitCommit", dockerversion.GITCOMMIT)
- v.Set("GoVersion", runtime.Version())
- v.Set("Os", runtime.GOOS)
- v.Set("Arch", runtime.GOARCH)
- if kernelVersion, err := kernel.GetKernelVersion(); err == nil {
- v.Set("KernelVersion", kernelVersion.String())
- }
- if _, err := v.WriteTo(job.Stdout); err != nil {
- return job.Error(err)
- }
- return engine.StatusOK
- }
|