Skip to content

Commit 9202bef

Browse files
committed
cli/command/system: add platformInfo type, and fix "omitempty"
The Platform field was defined with omitempty, but would always be shown in the JSON output, because it was never nil. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 5d37acd commit 9202bef

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"Client":{"Platform":{"Name":""},"Version":"18.99.5-ce","ApiVersion":"1.38","DefaultAPIVersion":"1.38","GitCommit":"deadbeef","GoVersion":"go1.10.2","Os":"linux","Arch":"amd64","BuildTime":"Wed May 30 22:21:05 2018","Context":"my-context"},"Server":{"Platform":{"Name":"Docker Enterprise Edition (EE) 2.0"},"Components":[{"Name":"Engine","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 9 23:38:38 2018","Experimental":"false","GitCommit":"64ddfa6","GoVersion":"go1.8.7","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"Universal Control Plane","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 2 21:24:07 UTC 2018","GitCommit":"4513922","GoVersion":"go1.9.4","MinApiVersion":"1.20","Os":"linux","Version":"3.0.3-tp2"}},{"Name":"Kubernetes","Version":"1.8+","Details":{"buildDate":"2018-04-26T16:51:21Z","compiler":"gc","gitCommit":"8d637aedf46b9c21dde723e29c645b9f27106fa5","gitTreeState":"clean","gitVersion":"v1.8.11-docker-8d637ae","goVersion":"go1.8.3","major":"1","minor":"8+","platform":"linux/amd64"}},{"Name":"Calico","Version":"v3.0.8","Details":{"cni":"v2.0.6","kube-controllers":"v2.0.5","node":"v3.0.8"}}],"Version":"","ApiVersion":"","GitCommit":"","GoVersion":"","Os":"","Arch":""}}
1+
{"Client":{"Version":"18.99.5-ce","ApiVersion":"1.38","DefaultAPIVersion":"1.38","GitCommit":"deadbeef","GoVersion":"go1.10.2","Os":"linux","Arch":"amd64","BuildTime":"Wed May 30 22:21:05 2018","Context":"my-context"},"Server":{"Platform":{"Name":"Docker Enterprise Edition (EE) 2.0"},"Components":[{"Name":"Engine","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 9 23:38:38 2018","Experimental":"false","GitCommit":"64ddfa6","GoVersion":"go1.8.7","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"Universal Control Plane","Version":"17.06.2-ee-15","Details":{"ApiVersion":"1.30","Arch":"amd64","BuildTime":"Mon Jul 2 21:24:07 UTC 2018","GitCommit":"4513922","GoVersion":"go1.9.4","MinApiVersion":"1.20","Os":"linux","Version":"3.0.3-tp2"}},{"Name":"Kubernetes","Version":"1.8+","Details":{"buildDate":"2018-04-26T16:51:21Z","compiler":"gc","gitCommit":"8d637aedf46b9c21dde723e29c645b9f27106fa5","gitTreeState":"clean","gitVersion":"v1.8.11-docker-8d637ae","goVersion":"go1.8.3","major":"1","minor":"8+","platform":"linux/amd64"}},{"Name":"Calico","Version":"v3.0.8","Details":{"cni":"v2.0.6","kube-controllers":"v2.0.5","node":"v3.0.8"}}],"Version":"","ApiVersion":"","GitCommit":"","GoVersion":"","Os":"","Arch":""}}

cli/command/system/version.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
)
2424

2525
const defaultVersionTemplate = `{{with .Client -}}
26-
Client:{{if ne .Platform.Name ""}} {{.Platform.Name}}{{end}}
26+
Client:{{if ne .Platform nil}}{{if ne .Platform.Name ""}} {{.Platform.Name}}{{end}}{{end}}
2727
Version: {{.Version}}
2828
API version: {{.APIVersion}}{{if ne .APIVersion .DefaultAPIVersion}} (downgraded from {{.DefaultAPIVersion}}){{end}}
2929
Go version: {{.GoVersion}}
@@ -66,9 +66,12 @@ type versionInfo struct {
6666
Server *types.Version
6767
}
6868

69-
type clientVersion struct {
70-
Platform struct{ Name string } `json:",omitempty"`
69+
type platformInfo struct {
70+
Name string `json:"Name,omitempty"`
71+
}
7172

73+
type clientVersion struct {
74+
Platform *platformInfo `json:"Platform,omitempty"`
7275
Version string
7376
APIVersion string `json:"ApiVersion"`
7477
DefaultAPIVersion string `json:"DefaultAPIVersion,omitempty"`
@@ -128,7 +131,6 @@ func runVersion(dockerCli command.Cli, opts *versionOptions) error {
128131

129132
vd := versionInfo{
130133
Client: clientVersion{
131-
Platform: struct{ Name string }{version.PlatformName},
132134
Version: version.Version,
133135
APIVersion: dockerCli.CurrentVersion(),
134136
DefaultAPIVersion: dockerCli.DefaultVersion(),
@@ -140,6 +142,9 @@ func runVersion(dockerCli command.Cli, opts *versionOptions) error {
140142
Context: dockerCli.CurrentContext(),
141143
},
142144
}
145+
if version.PlatformName != "" {
146+
vd.Client.Platform = &platformInfo{Name: version.PlatformName}
147+
}
143148

144149
sv, err := dockerCli.Client().ServerVersion(context.Background())
145150
if err == nil {

0 commit comments

Comments
 (0)