diff --git a/api/client/commands.go b/api/client/commands.go index c4ce5e01f..3d860bae7 100644 --- a/api/client/commands.go +++ b/api/client/commands.go @@ -514,6 +514,9 @@ func (cli *DockerCli) CmdInfo(args ...string) error { if remoteInfo.Exists("Images") { fmt.Fprintf(cli.out, "Images: %d\n", remoteInfo.GetInt("Images")) } + if remoteInfo.Exists("Plugins") { + fmt.Fprintf(cli.out, "Plugins: %d\n", remoteInfo.GetInt("Plugins")) + } if remoteInfo.Exists("Driver") { fmt.Fprintf(cli.out, "Storage Driver: %s\n", remoteInfo.Get("Driver")) } diff --git a/daemon/info.go b/daemon/info.go index 8eb4358f4..a0f61654f 100644 --- a/daemon/info.go +++ b/daemon/info.go @@ -10,6 +10,7 @@ import ( "github.com/docker/docker/pkg/parsers/kernel" "github.com/docker/docker/pkg/parsers/operatingsystem" "github.com/docker/docker/pkg/system" + "github.com/docker/docker/plugins" "github.com/docker/docker/registry" "github.com/docker/docker/utils" ) @@ -67,6 +68,7 @@ func (daemon *Daemon) CmdInfo(job *engine.Job) engine.Status { v := &engine.Env{} v.SetJson("ID", daemon.ID) v.SetInt("Containers", len(daemon.List())) + v.SetInt("Plugins", plugins.Repo.CountPlugins()) v.SetInt("Images", imgcount) v.Set("Driver", daemon.GraphDriver().String()) v.SetJson("DriverStatus", daemon.GraphDriver().Status()) diff --git a/plugins/repository.go b/plugins/repository.go index 7e00e1ab4..7dd1c947a 100644 --- a/plugins/repository.go +++ b/plugins/repository.go @@ -38,6 +38,12 @@ func NewRepository() *Repository { } } +func (repository *Repository) CountPlugins() int { + // TODO: expand this to include other supported types + plugins, _ := repository.GetPlugins("volume") + return len(plugins) +} + func (repository *Repository) RegisterPlugin(addr string) error { plugin := &Plugin{addr: addr} resp, err := plugin.handshake()