From c5bbeb25cd0b67c23cac5c03cdc46836cb7ef336 Mon Sep 17 00:00:00 2001 From: David Calavera Date: Fri, 11 Dec 2015 18:58:54 -0500 Subject: [PATCH] Move client version to the docker cli. This removes the dockerversion dependency from the client library. Signed-off-by: David Calavera Upstream-commit: 229d3bace8fbf1c077c063047710a6857ee2aaa6 Component: engine --- components/engine/api/client/client.go | 2 +- components/engine/api/client/lib/version.go | 26 ++++----------------- components/engine/api/client/version.go | 23 +++++++++++++++++- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/components/engine/api/client/client.go b/components/engine/api/client/client.go index 52dd4e5cd3..f452ad6187 100644 --- a/components/engine/api/client/client.go +++ b/components/engine/api/client/client.go @@ -68,7 +68,7 @@ type apiClient interface { NetworkList() ([]types.NetworkResource, error) NetworkRemove(networkID string) error RegistryLogin(auth cliconfig.AuthConfig) (types.AuthResponse, error) - SystemVersion() (types.VersionResponse, error) + ServerVersion() (types.Version, error) VolumeCreate(options types.VolumeCreateRequest) (types.Volume, error) VolumeInspect(volumeID string) (types.Volume, error) VolumeList(filter filters.Args) (types.VolumesListResponse, error) diff --git a/components/engine/api/client/lib/version.go b/components/engine/api/client/lib/version.go index c6d5cd4c7d..4101bfee0b 100644 --- a/components/engine/api/client/lib/version.go +++ b/components/engine/api/client/lib/version.go @@ -2,37 +2,19 @@ package lib import ( "encoding/json" - "runtime" - "github.com/docker/docker/api" "github.com/docker/docker/api/types" - "github.com/docker/docker/dockerversion" - "github.com/docker/docker/utils" ) -// SystemVersion returns information of the docker client and server host. -func (cli *Client) SystemVersion() (types.VersionResponse, error) { - client := &types.Version{ - Version: dockerversion.Version, - APIVersion: api.Version, - GoVersion: runtime.Version(), - GitCommit: dockerversion.GitCommit, - BuildTime: dockerversion.BuildTime, - Os: runtime.GOOS, - Arch: runtime.GOARCH, - Experimental: utils.ExperimentalBuild(), - } - +// ServerVersion returns information of the docker client and server host. +func (cli *Client) ServerVersion() (types.Version, error) { resp, err := cli.get("/version", nil, nil) if err != nil { - return types.VersionResponse{Client: client}, err + return types.Version{}, err } defer ensureReaderClosed(resp) var server types.Version err = json.NewDecoder(resp.body).Decode(&server) - if err != nil { - return types.VersionResponse{Client: client}, err - } - return types.VersionResponse{Client: client, Server: &server}, nil + return server, err } diff --git a/components/engine/api/client/version.go b/components/engine/api/client/version.go index 2f28feca3d..61125cecbc 100644 --- a/components/engine/api/client/version.go +++ b/components/engine/api/client/version.go @@ -1,11 +1,16 @@ package client import ( + "runtime" "text/template" "time" + "github.com/docker/docker/api" + "github.com/docker/docker/api/types" Cli "github.com/docker/docker/cli" + "github.com/docker/docker/dockerversion" flag "github.com/docker/docker/pkg/mflag" + "github.com/docker/docker/utils" ) var versionTemplate = `Client: @@ -49,7 +54,23 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) { Status: "Template parsing error: " + err.Error()} } - vd, err := cli.client.SystemVersion() + vd := types.VersionResponse{ + Client: &types.Version{ + Version: dockerversion.Version, + APIVersion: api.Version, + GoVersion: runtime.Version(), + GitCommit: dockerversion.GitCommit, + BuildTime: dockerversion.BuildTime, + Os: runtime.GOOS, + Arch: runtime.GOARCH, + Experimental: utils.ExperimentalBuild(), + }, + } + + serverVersion, err := cli.client.ServerVersion() + if err == nil { + vd.Server = &serverVersion + } // first we need to make BuildTime more human friendly t, errTime := time.Parse(time.RFC3339Nano, vd.Client.BuildTime)