Merge pull request #18616 from calavera/move_client_version_to_docker_cli

Move client version to the docker cli.
This commit is contained in:
Antonio Murdaca 2015-12-14 11:43:01 +01:00
commit 5fd9a8f603
3 changed files with 27 additions and 24 deletions

View File

@ -68,7 +68,7 @@ type apiClient interface {
NetworkList() ([]types.NetworkResource, error) NetworkList() ([]types.NetworkResource, error)
NetworkRemove(networkID string) error NetworkRemove(networkID string) error
RegistryLogin(auth cliconfig.AuthConfig) (types.AuthResponse, error) RegistryLogin(auth cliconfig.AuthConfig) (types.AuthResponse, error)
SystemVersion() (types.VersionResponse, error) ServerVersion() (types.Version, error)
VolumeCreate(options types.VolumeCreateRequest) (types.Volume, error) VolumeCreate(options types.VolumeCreateRequest) (types.Volume, error)
VolumeInspect(volumeID string) (types.Volume, error) VolumeInspect(volumeID string) (types.Volume, error)
VolumeList(filter filters.Args) (types.VolumesListResponse, error) VolumeList(filter filters.Args) (types.VolumesListResponse, error)

View File

@ -2,37 +2,19 @@ package lib
import ( import (
"encoding/json" "encoding/json"
"runtime"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types" "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. // ServerVersion returns information of the docker client and server host.
func (cli *Client) SystemVersion() (types.VersionResponse, error) { func (cli *Client) ServerVersion() (types.Version, 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(),
}
resp, err := cli.get("/version", nil, nil) resp, err := cli.get("/version", nil, nil)
if err != nil { if err != nil {
return types.VersionResponse{Client: client}, err return types.Version{}, err
} }
defer ensureReaderClosed(resp) defer ensureReaderClosed(resp)
var server types.Version var server types.Version
err = json.NewDecoder(resp.body).Decode(&server) err = json.NewDecoder(resp.body).Decode(&server)
if err != nil { return server, err
return types.VersionResponse{Client: client}, err
}
return types.VersionResponse{Client: client, Server: &server}, nil
} }

View File

@ -1,11 +1,16 @@
package client package client
import ( import (
"runtime"
"text/template" "text/template"
"time" "time"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli" Cli "github.com/docker/docker/cli"
"github.com/docker/docker/dockerversion"
flag "github.com/docker/docker/pkg/mflag" flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils"
) )
var versionTemplate = `Client: var versionTemplate = `Client:
@ -49,7 +54,23 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) {
Status: "Template parsing error: " + 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 // first we need to make BuildTime more human friendly
t, errTime := time.Parse(time.RFC3339Nano, vd.Client.BuildTime) t, errTime := time.Parse(time.RFC3339Nano, vd.Client.BuildTime)