From 257f6149ba08d86fd9195d7a728316436ef690c3 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 15 Jun 2021 13:03:01 +0200 Subject: [PATCH] Remove ClientInfo as it is not practically used. The information in this struct was basically fixed (there's some discrepancy around the "DefaultVersion" which, probably, should never vary, and always be set to the Default (maximum) API version supported by the client. Experimental is now always enabled, so this information did not require any dynamic info as well. Signed-off-by: Sebastiaan van Stijn --- cli/command/cli.go | 43 ++--------------------------------------- cli/command/cli_test.go | 2 -- cmd/docker/docker.go | 1 - internal/test/cli.go | 15 -------------- 4 files changed, 2 insertions(+), 59 deletions(-) diff --git a/cli/command/cli.go b/cli/command/cli.go index cfa43921b3..1aed6811b6 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -52,7 +52,6 @@ type Cli interface { Apply(ops ...DockerCliOption) error ConfigFile() *configfile.ConfigFile ServerInfo() ServerInfo - ClientInfo() ClientInfo NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error) DefaultVersion() string ManifestStore() manifeststore.Store @@ -73,7 +72,6 @@ type DockerCli struct { err io.Writer client client.APIClient serverInfo ServerInfo - clientInfo *ClientInfo contentTrust bool contextStore store.Store currentContext string @@ -81,9 +79,9 @@ type DockerCli struct { contextStoreConfig store.Config } -// DefaultVersion returns api.defaultVersion or DOCKER_API_VERSION if specified. +// DefaultVersion returns api.defaultVersion. func (cli *DockerCli) DefaultVersion() string { - return cli.ClientInfo().DefaultVersion + return api.DefaultVersion } // Client returns the APIClient @@ -138,30 +136,6 @@ func (cli *DockerCli) ServerInfo() ServerInfo { return cli.serverInfo } -// ClientInfo returns the client details for the cli -func (cli *DockerCli) ClientInfo() ClientInfo { - if cli.clientInfo == nil { - if err := cli.loadClientInfo(); err != nil { - panic(err) - } - } - return *cli.clientInfo -} - -func (cli *DockerCli) loadClientInfo() error { - var v string - if cli.client != nil { - v = cli.client.ClientVersion() - } else { - v = api.DefaultVersion - } - cli.clientInfo = &ClientInfo{ - DefaultVersion: v, - HasExperimental: true, - } - return nil -} - // ContentTrustEnabled returns whether content trust has been enabled by an // environment variable. func (cli *DockerCli) ContentTrustEnabled() bool { @@ -260,11 +234,6 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize } } cli.initializeFromClient() - - if err := cli.loadClientInfo(); err != nil { - return err - } - return nil } @@ -410,14 +379,6 @@ type ServerInfo struct { BuildkitVersion types.BuilderVersion } -// ClientInfo stores details about the supported features of the client -type ClientInfo struct { - // Deprecated: experimental CLI features always enabled. This field is kept - // for backward-compatibility, and is always "true". - HasExperimental bool - DefaultVersion string -} - // NewDockerCli returns a DockerCli instance with all operators applied on it. // It applies by default the standard streams, and the content trust from // environment. diff --git a/cli/command/cli_test.go b/cli/command/cli_test.go index 656f6e97ce..3012e01404 100644 --- a/cli/command/cli_test.go +++ b/cli/command/cli_test.go @@ -202,8 +202,6 @@ func TestExperimentalCLI(t *testing.T) { cliconfig.SetDir(dir.Path()) err := cli.Initialize(flags.NewClientOptions()) assert.NilError(t, err) - // For backward-compatibility, HasExperimental will always be "true" - assert.Equal(t, cli.ClientInfo().HasExperimental, true) }) } } diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index acd094fd95..e28b95a3f4 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -278,7 +278,6 @@ func main() { type versionDetails interface { Client() client.APIClient - ClientInfo() command.ClientInfo ServerInfo() command.ServerInfo } diff --git a/internal/test/cli.go b/internal/test/cli.go index ea56f4dfdb..62bf6351e7 100644 --- a/internal/test/cli.go +++ b/internal/test/cli.go @@ -20,7 +20,6 @@ import ( // NotaryClientFuncType defines a function that returns a fake notary client type NotaryClientFuncType func(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error) -type clientInfoFuncType func() command.ClientInfo // FakeCli emulates the default DockerCli type FakeCli struct { @@ -32,7 +31,6 @@ type FakeCli struct { err *bytes.Buffer in *streams.In server command.ServerInfo - clientInfoFunc clientInfoFuncType notaryClientFunc NotaryClientFuncType manifestStore manifeststore.Store registryClient registryclient.RegistryClient @@ -143,19 +141,6 @@ func (c *FakeCli) ServerInfo() command.ServerInfo { return c.server } -// ClientInfo returns client information -func (c *FakeCli) ClientInfo() command.ClientInfo { - if c.clientInfoFunc != nil { - return c.clientInfoFunc() - } - return c.DockerCli.ClientInfo() -} - -// SetClientInfo sets the internal getter for retrieving a ClientInfo -func (c *FakeCli) SetClientInfo(clientInfoFunc clientInfoFuncType) { - c.clientInfoFunc = clientInfoFunc -} - // OutBuffer returns the stdout buffer func (c *FakeCli) OutBuffer() *bytes.Buffer { return c.outBuffer