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 <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2021-06-15 13:03:01 +02:00
parent c61452c580
commit 257f6149ba
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
4 changed files with 2 additions and 59 deletions

View File

@ -52,7 +52,6 @@ type Cli interface {
Apply(ops ...DockerCliOption) error Apply(ops ...DockerCliOption) error
ConfigFile() *configfile.ConfigFile ConfigFile() *configfile.ConfigFile
ServerInfo() ServerInfo ServerInfo() ServerInfo
ClientInfo() ClientInfo
NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error) NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error)
DefaultVersion() string DefaultVersion() string
ManifestStore() manifeststore.Store ManifestStore() manifeststore.Store
@ -73,7 +72,6 @@ type DockerCli struct {
err io.Writer err io.Writer
client client.APIClient client client.APIClient
serverInfo ServerInfo serverInfo ServerInfo
clientInfo *ClientInfo
contentTrust bool contentTrust bool
contextStore store.Store contextStore store.Store
currentContext string currentContext string
@ -81,9 +79,9 @@ type DockerCli struct {
contextStoreConfig store.Config contextStoreConfig store.Config
} }
// DefaultVersion returns api.defaultVersion or DOCKER_API_VERSION if specified. // DefaultVersion returns api.defaultVersion.
func (cli *DockerCli) DefaultVersion() string { func (cli *DockerCli) DefaultVersion() string {
return cli.ClientInfo().DefaultVersion return api.DefaultVersion
} }
// Client returns the APIClient // Client returns the APIClient
@ -138,30 +136,6 @@ func (cli *DockerCli) ServerInfo() ServerInfo {
return cli.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 // ContentTrustEnabled returns whether content trust has been enabled by an
// environment variable. // environment variable.
func (cli *DockerCli) ContentTrustEnabled() bool { func (cli *DockerCli) ContentTrustEnabled() bool {
@ -260,11 +234,6 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize
} }
} }
cli.initializeFromClient() cli.initializeFromClient()
if err := cli.loadClientInfo(); err != nil {
return err
}
return nil return nil
} }
@ -410,14 +379,6 @@ type ServerInfo struct {
BuildkitVersion types.BuilderVersion 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. // NewDockerCli returns a DockerCli instance with all operators applied on it.
// It applies by default the standard streams, and the content trust from // It applies by default the standard streams, and the content trust from
// environment. // environment.

View File

@ -202,8 +202,6 @@ func TestExperimentalCLI(t *testing.T) {
cliconfig.SetDir(dir.Path()) cliconfig.SetDir(dir.Path())
err := cli.Initialize(flags.NewClientOptions()) err := cli.Initialize(flags.NewClientOptions())
assert.NilError(t, err) assert.NilError(t, err)
// For backward-compatibility, HasExperimental will always be "true"
assert.Equal(t, cli.ClientInfo().HasExperimental, true)
}) })
} }
} }

View File

@ -278,7 +278,6 @@ func main() {
type versionDetails interface { type versionDetails interface {
Client() client.APIClient Client() client.APIClient
ClientInfo() command.ClientInfo
ServerInfo() command.ServerInfo ServerInfo() command.ServerInfo
} }

View File

@ -20,7 +20,6 @@ import (
// NotaryClientFuncType defines a function that returns a fake notary client // NotaryClientFuncType defines a function that returns a fake notary client
type NotaryClientFuncType func(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error) type NotaryClientFuncType func(imgRefAndAuth trust.ImageRefAndAuth, actions []string) (notaryclient.Repository, error)
type clientInfoFuncType func() command.ClientInfo
// FakeCli emulates the default DockerCli // FakeCli emulates the default DockerCli
type FakeCli struct { type FakeCli struct {
@ -32,7 +31,6 @@ type FakeCli struct {
err *bytes.Buffer err *bytes.Buffer
in *streams.In in *streams.In
server command.ServerInfo server command.ServerInfo
clientInfoFunc clientInfoFuncType
notaryClientFunc NotaryClientFuncType notaryClientFunc NotaryClientFuncType
manifestStore manifeststore.Store manifestStore manifeststore.Store
registryClient registryclient.RegistryClient registryClient registryclient.RegistryClient
@ -143,19 +141,6 @@ func (c *FakeCli) ServerInfo() command.ServerInfo {
return c.server 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 // OutBuffer returns the stdout buffer
func (c *FakeCli) OutBuffer() *bytes.Buffer { func (c *FakeCli) OutBuffer() *bytes.Buffer {
return c.outBuffer return c.outBuffer