Skip to content

Commit 2d344b2

Browse files
committed
Remove containerizedengine package dependency from docker/cli/command…
… this removes a whole lot of dependencies from people depending on docker/cli… Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 8ec2156 commit 2d344b2

29 files changed

Lines changed: 283 additions & 262 deletions

cli/command/cli.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import (
1919
manifeststore "github.com/docker/cli/cli/manifest/store"
2020
registryclient "github.com/docker/cli/cli/registry/client"
2121
"github.com/docker/cli/cli/trust"
22-
"github.com/docker/cli/internal/containerizedengine"
2322
dopts "github.com/docker/cli/opts"
23+
clitypes "github.com/docker/cli/types"
2424
"github.com/docker/docker/api"
2525
"github.com/docker/docker/api/types"
2626
registrytypes "github.com/docker/docker/api/types/registry"
@@ -55,20 +55,21 @@ type Cli interface {
5555
ManifestStore() manifeststore.Store
5656
RegistryClient(bool) registryclient.RegistryClient
5757
ContentTrustEnabled() bool
58-
NewContainerizedEngineClient(sockPath string) (containerizedengine.Client, error)
58+
NewContainerizedEngineClient(sockPath string) (clitypes.ContainerizedClient, error)
5959
}
6060

6161
// DockerCli is an instance the docker command line client.
6262
// Instances of the client can be returned from NewDockerCli.
6363
type DockerCli struct {
64-
configFile *configfile.ConfigFile
65-
in *InStream
66-
out *OutStream
67-
err io.Writer
68-
client client.APIClient
69-
serverInfo ServerInfo
70-
clientInfo ClientInfo
71-
contentTrust bool
64+
configFile *configfile.ConfigFile
65+
in *InStream
66+
out *OutStream
67+
err io.Writer
68+
client client.APIClient
69+
serverInfo ServerInfo
70+
clientInfo ClientInfo
71+
contentTrust bool
72+
newContainerizeClient func(string) (clitypes.ContainerizedClient, error)
7273
}
7374

7475
// DefaultVersion returns api.defaultVersion or DOCKER_API_VERSION if specified.
@@ -233,8 +234,8 @@ func (cli *DockerCli) NotaryClient(imgRefAndAuth trust.ImageRefAndAuth, actions
233234
}
234235

235236
// NewContainerizedEngineClient returns a containerized engine client
236-
func (cli *DockerCli) NewContainerizedEngineClient(sockPath string) (containerizedengine.Client, error) {
237-
return containerizedengine.NewClient(sockPath)
237+
func (cli *DockerCli) NewContainerizedEngineClient(sockPath string) (clitypes.ContainerizedClient, error) {
238+
return cli.newContainerizeClient(sockPath)
238239
}
239240

240241
// ServerInfo stores details about the supported features and platform of the
@@ -252,8 +253,8 @@ type ClientInfo struct {
252253
}
253254

254255
// NewDockerCli returns a DockerCli instance with IO output and error streams set by in, out and err.
255-
func NewDockerCli(in io.ReadCloser, out, err io.Writer, isTrusted bool) *DockerCli {
256-
return &DockerCli{in: NewInStream(in), out: NewOutStream(out), err: err, contentTrust: isTrusted}
256+
func NewDockerCli(in io.ReadCloser, out, err io.Writer, isTrusted bool, containerizedFn func(string) (clitypes.ContainerizedClient, error)) *DockerCli {
257+
return &DockerCli{in: NewInStream(in), out: NewOutStream(out), err: err, contentTrust: isTrusted, newContainerizeClient: containerizedFn}
257258
}
258259

259260
// NewAPIClientFromFlags creates a new APIClient from command line flags

cli/command/engine/activate.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66

77
"github.com/docker/cli/cli/command"
88
"github.com/docker/cli/cli/command/formatter"
9-
"github.com/docker/cli/internal/containerizedengine"
109
"github.com/docker/cli/internal/licenseutils"
10+
clitypes "github.com/docker/cli/types"
1111
"github.com/docker/docker/api/types"
1212
"github.com/docker/licensing/model"
1313
"github.com/pkg/errors"
@@ -57,7 +57,7 @@ https://hub.docker.com/ then specify the file with the '--license' flag.
5757
flags.StringVar(&options.licenseFile, "license", "", "License File")
5858
flags.StringVar(&options.version, "version", "", "Specify engine version (default is to use currently running version)")
5959
flags.StringVar(&options.registryPrefix, "registry-prefix", "docker.io/docker", "Override the default location where engine images are pulled")
60-
flags.StringVar(&options.image, "engine-image", containerizedengine.EnterpriseEngineImage, "Specify engine image")
60+
flags.StringVar(&options.image, "engine-image", clitypes.EnterpriseEngineImage, "Specify engine image")
6161
flags.StringVar(&options.format, "format", "", "Pretty-print licenses using a Go template")
6262
flags.BoolVar(&options.displayOnly, "display-only", false, "only display the available licenses and exit")
6363
flags.BoolVar(&options.quiet, "quiet", false, "Only display available licenses by ID")
@@ -98,7 +98,7 @@ func runActivate(cli command.Cli, options activateOptions) error {
9898
return err
9999
}
100100

101-
opts := containerizedengine.EngineInitOptions{
101+
opts := clitypes.EngineInitOptions{
102102
RegistryPrefix: options.registryPrefix,
103103
EngineImage: options.image,
104104
EngineVersion: options.version,

cli/command/engine/activate_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import (
44
"fmt"
55
"testing"
66

7-
"github.com/docker/cli/internal/containerizedengine"
7+
"github.com/docker/cli/types"
88
"gotest.tools/assert"
99
)
1010

1111
func TestActivateNoContainerd(t *testing.T) {
1212
testCli.SetContainerizedEngineClient(
13-
func(string) (containerizedengine.Client, error) {
13+
func(string) (types.ContainerizedClient, error) {
1414
return nil, fmt.Errorf("some error")
1515
},
1616
)
@@ -24,7 +24,7 @@ func TestActivateNoContainerd(t *testing.T) {
2424

2525
func TestActivateBadLicense(t *testing.T) {
2626
testCli.SetContainerizedEngineClient(
27-
func(string) (containerizedengine.Client, error) {
27+
func(string) (types.ContainerizedClient, error) {
2828
return &fakeContainerizedEngineClient{}, nil
2929
},
3030
)

cli/command/engine/check.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/docker/cli/cli"
88
"github.com/docker/cli/cli/command"
99
"github.com/docker/cli/cli/command/formatter"
10-
"github.com/docker/cli/internal/containerizedengine"
10+
clitypes "github.com/docker/cli/types"
1111
"github.com/pkg/errors"
1212
"github.com/spf13/cobra"
1313
)
@@ -72,7 +72,7 @@ func runCheck(dockerCli command.Cli, options checkOptions) error {
7272
return err
7373
}
7474

75-
availUpdates := []containerizedengine.Update{
75+
availUpdates := []clitypes.Update{
7676
{Type: "current", Version: currentVersion},
7777
}
7878
if len(versions.Patches) > 0 {
@@ -115,14 +115,14 @@ func runCheck(dockerCli command.Cli, options checkOptions) error {
115115

116116
func processVersions(currentVersion, verType string,
117117
includePrerelease bool,
118-
versions []containerizedengine.DockerVersion) []containerizedengine.Update {
119-
availUpdates := []containerizedengine.Update{}
118+
versions []clitypes.DockerVersion) []clitypes.Update {
119+
availUpdates := []clitypes.Update{}
120120
for _, ver := range versions {
121121
if !includePrerelease && ver.Prerelease() != "" {
122122
continue
123123
}
124124
if ver.Tag != currentVersion {
125-
availUpdates = append(availUpdates, containerizedengine.Update{
125+
availUpdates = append(availUpdates, clitypes.Update{
126126
Type: verType,
127127
Version: ver.Tag,
128128
Notes: fmt.Sprintf("%s/%s", releaseNotePrefix, ver.Tag),

cli/command/engine/check_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"testing"
77

88
registryclient "github.com/docker/cli/cli/registry/client"
9-
"github.com/docker/cli/internal/containerizedengine"
109
"github.com/docker/cli/internal/test"
10+
clitypes "github.com/docker/cli/types"
1111
"github.com/docker/docker/client"
1212
ver "github.com/hashicorp/go-version"
1313
"gotest.tools/assert"
@@ -20,7 +20,7 @@ var (
2020

2121
func TestCheckForUpdatesNoContainerd(t *testing.T) {
2222
testCli.SetContainerizedEngineClient(
23-
func(string) (containerizedengine.Client, error) {
23+
func(string) (clitypes.ContainerizedClient, error) {
2424
return nil, fmt.Errorf("some error")
2525
},
2626
)
@@ -33,11 +33,11 @@ func TestCheckForUpdatesNoContainerd(t *testing.T) {
3333

3434
func TestCheckForUpdatesNoCurrentVersion(t *testing.T) {
3535
retErr := fmt.Errorf("some failure")
36-
getCurrentEngineVersionFunc := func(ctx context.Context) (containerizedengine.EngineInitOptions, error) {
37-
return containerizedengine.EngineInitOptions{}, retErr
36+
getCurrentEngineVersionFunc := func(ctx context.Context) (clitypes.EngineInitOptions, error) {
37+
return clitypes.EngineInitOptions{}, retErr
3838
}
3939
testCli.SetContainerizedEngineClient(
40-
func(string) (containerizedengine.Client, error) {
40+
func(string) (clitypes.ContainerizedClient, error) {
4141
return &fakeContainerizedEngineClient{
4242
getCurrentEngineVersionFunc: getCurrentEngineVersionFunc,
4343
}, nil
@@ -54,11 +54,11 @@ func TestCheckForUpdatesGetEngineVersionsFail(t *testing.T) {
5454
retErr := fmt.Errorf("some failure")
5555
getEngineVersionsFunc := func(ctx context.Context,
5656
registryClient registryclient.RegistryClient,
57-
currentVersion, imageName string) (containerizedengine.AvailableVersions, error) {
58-
return containerizedengine.AvailableVersions{}, retErr
57+
currentVersion, imageName string) (clitypes.AvailableVersions, error) {
58+
return clitypes.AvailableVersions{}, retErr
5959
}
6060
testCli.SetContainerizedEngineClient(
61-
func(string) (containerizedengine.Client, error) {
61+
func(string) (clitypes.ContainerizedClient, error) {
6262
return &fakeContainerizedEngineClient{
6363
getEngineVersionsFunc: getEngineVersionsFunc,
6464
}, nil
@@ -72,23 +72,23 @@ func TestCheckForUpdatesGetEngineVersionsFail(t *testing.T) {
7272
}
7373

7474
func TestCheckForUpdatesGetEngineVersionsHappy(t *testing.T) {
75-
getCurrentEngineVersionFunc := func(ctx context.Context) (containerizedengine.EngineInitOptions, error) {
76-
return containerizedengine.EngineInitOptions{
75+
getCurrentEngineVersionFunc := func(ctx context.Context) (clitypes.EngineInitOptions, error) {
76+
return clitypes.EngineInitOptions{
7777
EngineImage: "current engine",
7878
EngineVersion: "1.1.0",
7979
}, nil
8080
}
8181
getEngineVersionsFunc := func(ctx context.Context,
8282
registryClient registryclient.RegistryClient,
83-
currentVersion, imageName string) (containerizedengine.AvailableVersions, error) {
84-
return containerizedengine.AvailableVersions{
83+
currentVersion, imageName string) (clitypes.AvailableVersions, error) {
84+
return clitypes.AvailableVersions{
8585
Downgrades: parseVersions(t, "1.0.1", "1.0.2", "1.0.3-beta1"),
8686
Patches: parseVersions(t, "1.1.1", "1.1.2", "1.1.3-beta1"),
8787
Upgrades: parseVersions(t, "1.2.0", "2.0.0", "2.1.0-beta1"),
8888
}, nil
8989
}
9090
testCli.SetContainerizedEngineClient(
91-
func(string) (containerizedengine.Client, error) {
91+
func(string) (clitypes.ContainerizedClient, error) {
9292
return &fakeContainerizedEngineClient{
9393
getEngineVersionsFunc: getEngineVersionsFunc,
9494
getCurrentEngineVersionFunc: getCurrentEngineVersionFunc,
@@ -128,14 +128,14 @@ func TestCheckForUpdatesGetEngineVersionsHappy(t *testing.T) {
128128
golden.Assert(t, testCli.OutBuffer().String(), "check-patches-only.golden")
129129
}
130130

131-
func makeVersion(t *testing.T, tag string) containerizedengine.DockerVersion {
131+
func makeVersion(t *testing.T, tag string) clitypes.DockerVersion {
132132
v, err := ver.NewVersion(tag)
133133
assert.NilError(t, err)
134-
return containerizedengine.DockerVersion{Version: *v, Tag: tag}
134+
return clitypes.DockerVersion{Version: *v, Tag: tag}
135135
}
136136

137-
func parseVersions(t *testing.T, tags ...string) []containerizedengine.DockerVersion {
138-
ret := make([]containerizedengine.DockerVersion, len(tags))
137+
func parseVersions(t *testing.T, tags ...string) []clitypes.DockerVersion {
138+
ret := make([]clitypes.DockerVersion, len(tags))
139139
for i, tag := range tags {
140140
ret[i] = makeVersion(t, tag)
141141
}

cli/command/engine/client_test.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,36 @@ import (
55

66
"github.com/containerd/containerd"
77
registryclient "github.com/docker/cli/cli/registry/client"
8-
"github.com/docker/cli/internal/containerizedengine"
8+
clitypes "github.com/docker/cli/types"
99
"github.com/docker/docker/api/types"
1010
)
1111

1212
type (
1313
fakeContainerizedEngineClient struct {
1414
closeFunc func() error
1515
activateEngineFunc func(ctx context.Context,
16-
opts containerizedengine.EngineInitOptions,
17-
out containerizedengine.OutStream,
16+
opts clitypes.EngineInitOptions,
17+
out clitypes.OutStream,
1818
authConfig *types.AuthConfig,
1919
healthfn func(context.Context) error) error
2020
initEngineFunc func(ctx context.Context,
21-
opts containerizedengine.EngineInitOptions,
22-
out containerizedengine.OutStream,
21+
opts clitypes.EngineInitOptions,
22+
out clitypes.OutStream,
2323
authConfig *types.AuthConfig,
2424
healthfn func(context.Context) error) error
2525
doUpdateFunc func(ctx context.Context,
26-
opts containerizedengine.EngineInitOptions,
27-
out containerizedengine.OutStream,
26+
opts clitypes.EngineInitOptions,
27+
out clitypes.OutStream,
2828
authConfig *types.AuthConfig,
2929
healthfn func(context.Context) error) error
3030
getEngineVersionsFunc func(ctx context.Context,
3131
registryClient registryclient.RegistryClient,
3232
currentVersion,
33-
imageName string) (containerizedengine.AvailableVersions, error)
33+
imageName string) (clitypes.AvailableVersions, error)
3434

3535
getEngineFunc func(ctx context.Context) (containerd.Container, error)
36-
removeEngineFunc func(ctx context.Context, engine containerd.Container) error
37-
getCurrentEngineVersionFunc func(ctx context.Context) (containerizedengine.EngineInitOptions, error)
36+
removeEngineFunc func(ctx context.Context) error
37+
getCurrentEngineVersionFunc func(ctx context.Context) (clitypes.EngineInitOptions, error)
3838
}
3939
)
4040

@@ -46,8 +46,8 @@ func (w *fakeContainerizedEngineClient) Close() error {
4646
}
4747

4848
func (w *fakeContainerizedEngineClient) ActivateEngine(ctx context.Context,
49-
opts containerizedengine.EngineInitOptions,
50-
out containerizedengine.OutStream,
49+
opts clitypes.EngineInitOptions,
50+
out clitypes.OutStream,
5151
authConfig *types.AuthConfig,
5252
healthfn func(context.Context) error) error {
5353
if w.activateEngineFunc != nil {
@@ -56,8 +56,8 @@ func (w *fakeContainerizedEngineClient) ActivateEngine(ctx context.Context,
5656
return nil
5757
}
5858
func (w *fakeContainerizedEngineClient) InitEngine(ctx context.Context,
59-
opts containerizedengine.EngineInitOptions,
60-
out containerizedengine.OutStream,
59+
opts clitypes.EngineInitOptions,
60+
out clitypes.OutStream,
6161
authConfig *types.AuthConfig,
6262
healthfn func(context.Context) error) error {
6363
if w.initEngineFunc != nil {
@@ -66,8 +66,8 @@ func (w *fakeContainerizedEngineClient) InitEngine(ctx context.Context,
6666
return nil
6767
}
6868
func (w *fakeContainerizedEngineClient) DoUpdate(ctx context.Context,
69-
opts containerizedengine.EngineInitOptions,
70-
out containerizedengine.OutStream,
69+
opts clitypes.EngineInitOptions,
70+
out clitypes.OutStream,
7171
authConfig *types.AuthConfig,
7272
healthfn func(context.Context) error) error {
7373
if w.doUpdateFunc != nil {
@@ -77,12 +77,12 @@ func (w *fakeContainerizedEngineClient) DoUpdate(ctx context.Context,
7777
}
7878
func (w *fakeContainerizedEngineClient) GetEngineVersions(ctx context.Context,
7979
registryClient registryclient.RegistryClient,
80-
currentVersion, imageName string) (containerizedengine.AvailableVersions, error) {
80+
currentVersion, imageName string) (clitypes.AvailableVersions, error) {
8181

8282
if w.getEngineVersionsFunc != nil {
8383
return w.getEngineVersionsFunc(ctx, registryClient, currentVersion, imageName)
8484
}
85-
return containerizedengine.AvailableVersions{}, nil
85+
return clitypes.AvailableVersions{}, nil
8686
}
8787

8888
func (w *fakeContainerizedEngineClient) GetEngine(ctx context.Context) (containerd.Container, error) {
@@ -91,15 +91,15 @@ func (w *fakeContainerizedEngineClient) GetEngine(ctx context.Context) (containe
9191
}
9292
return nil, nil
9393
}
94-
func (w *fakeContainerizedEngineClient) RemoveEngine(ctx context.Context, engine containerd.Container) error {
94+
func (w *fakeContainerizedEngineClient) RemoveEngine(ctx context.Context) error {
9595
if w.removeEngineFunc != nil {
96-
return w.removeEngineFunc(ctx, engine)
96+
return w.removeEngineFunc(ctx)
9797
}
9898
return nil
9999
}
100-
func (w *fakeContainerizedEngineClient) GetCurrentEngineVersion(ctx context.Context) (containerizedengine.EngineInitOptions, error) {
100+
func (w *fakeContainerizedEngineClient) GetCurrentEngineVersion(ctx context.Context) (clitypes.EngineInitOptions, error) {
101101
if w.getCurrentEngineVersionFunc != nil {
102102
return w.getCurrentEngineVersionFunc(ctx)
103103
}
104-
return containerizedengine.EngineInitOptions{}, nil
104+
return clitypes.EngineInitOptions{}, nil
105105
}

cli/command/engine/init.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import (
55

66
"github.com/docker/cli/cli"
77
"github.com/docker/cli/cli/command"
8-
"github.com/docker/cli/internal/containerizedengine"
8+
clitypes "github.com/docker/cli/types"
99
"github.com/pkg/errors"
1010
"github.com/spf13/cobra"
1111
)
1212

1313
type extendedEngineInitOptions struct {
14-
containerizedengine.EngineInitOptions
14+
clitypes.EngineInitOptions
1515
sockPath string
1616
}
1717

@@ -34,7 +34,7 @@ file on the host and may be pre-created before running the 'init' command.
3434
}
3535
flags := cmd.Flags()
3636
flags.StringVar(&options.EngineVersion, "version", cli.Version, "Specify engine version")
37-
flags.StringVar(&options.EngineImage, "engine-image", containerizedengine.CommunityEngineImage, "Specify engine image")
37+
flags.StringVar(&options.EngineImage, "engine-image", clitypes.CommunityEngineImage, "Specify engine image")
3838
flags.StringVar(&options.RegistryPrefix, "registry-prefix", "docker.io/docker", "Override the default location where engine images are pulled")
3939
flags.StringVar(&options.ConfigFile, "config-file", "/etc/docker/daemon.json", "Specify the location of the daemon configuration file on the host")
4040
flags.StringVar(&options.sockPath, "containerd", "", "override default location of containerd endpoint")

0 commit comments

Comments
 (0)