Skip to content

Commit 0e6fee6

Browse files
authored
Merge pull request #6698 from thaJeztah/inline_parseWindowsDevice
cli/command/container: inline parseWindowsDevice, and minor cleanups
2 parents 88be588 + 2e3425f commit 0e6fee6

File tree

3 files changed

+19
-24
lines changed

3 files changed

+19
-24
lines changed

cli/command/container/create.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,14 @@ func newCreateCommand(dockerCLI command.Cli) *cobra.Command {
9595
return cmd
9696
}
9797

98-
func runCreate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, options *createOptions, copts *containerOptions) error {
98+
func runCreate(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, options *createOptions, copts *containerOptions) error {
9999
if err := validatePullOpt(options.pull); err != nil {
100100
return cli.StatusError{
101101
Status: withHelp(err, "create").Error(),
102102
StatusCode: 125,
103103
}
104104
}
105-
proxyConfig := dockerCli.ConfigFile().ParseProxyConfig(dockerCli.Client().DaemonHost(), opts.ConvertKVStringsToMapWithNil(copts.env.GetSlice()))
105+
proxyConfig := dockerCLI.ConfigFile().ParseProxyConfig(dockerCLI.Client().DaemonHost(), opts.ConvertKVStringsToMapWithNil(copts.env.GetSlice()))
106106
newEnv := make([]string, 0, len(proxyConfig))
107107
for k, v := range proxyConfig {
108108
if v == nil {
@@ -112,7 +112,7 @@ func runCreate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet,
112112
}
113113
}
114114
copts.env = *opts.NewListOptsRef(&newEnv, nil)
115-
serverInfo, err := dockerCli.Client().Ping(ctx, client.PingOptions{})
115+
serverInfo, err := dockerCLI.Client().Ping(ctx, client.PingOptions{})
116116
if err != nil {
117117
return err
118118
}
@@ -124,17 +124,17 @@ func runCreate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet,
124124
StatusCode: 125,
125125
}
126126
}
127-
id, err := createContainer(ctx, dockerCli, containerCfg, options)
127+
id, err := createContainer(ctx, dockerCLI, containerCfg, options)
128128
if err != nil {
129129
return err
130130
}
131-
_, _ = fmt.Fprintln(dockerCli.Out(), id)
131+
_, _ = fmt.Fprintln(dockerCLI.Out(), id)
132132
return nil
133133
}
134134

135135
// FIXME(thaJeztah): this is the only code-path that uses APIClient.ImageCreate. Rewrite this to use the regular "pull" code (or vice-versa).
136-
func pullImage(ctx context.Context, dockerCli command.Cli, img string, options *createOptions) error {
137-
encodedAuth, err := command.RetrieveAuthTokenFromImage(dockerCli.ConfigFile(), img)
136+
func pullImage(ctx context.Context, dockerCLI command.Cli, img string, options *createOptions) error {
137+
encodedAuth, err := command.RetrieveAuthTokenFromImage(dockerCLI.ConfigFile(), img)
138138
if err != nil {
139139
return err
140140
}
@@ -144,7 +144,7 @@ func pullImage(ctx context.Context, dockerCli command.Cli, img string, options *
144144
// Already validated.
145145
ociPlatforms = append(ociPlatforms, platforms.MustParse(options.platform))
146146
}
147-
resp, err := dockerCli.Client().ImagePull(ctx, img, client.ImagePullOptions{
147+
resp, err := dockerCLI.Client().ImagePull(ctx, img, client.ImagePullOptions{
148148
RegistryAuth: encodedAuth,
149149
Platforms: ociPlatforms,
150150
})
@@ -155,7 +155,7 @@ func pullImage(ctx context.Context, dockerCli command.Cli, img string, options *
155155
_ = resp.Close()
156156
}()
157157

158-
out := dockerCli.Err()
158+
out := dockerCLI.Err()
159159
if options.quiet {
160160
out = streams.NewOut(io.Discard)
161161
}

cli/command/container/opts.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -997,9 +997,11 @@ func parseDevice(device, serverOS string) (container.DeviceMapping, error) {
997997
case "linux":
998998
return parseLinuxDevice(device)
999999
case "windows":
1000-
return parseWindowsDevice(device)
1000+
// Windows doesn't support mapping, so passing the given value as-is.
1001+
return container.DeviceMapping{PathOnHost: device}, nil
1002+
default:
1003+
return container.DeviceMapping{}, fmt.Errorf("unknown server OS: %s", serverOS)
10011004
}
1002-
return container.DeviceMapping{}, fmt.Errorf("unknown server OS: %s", serverOS)
10031005
}
10041006

10051007
// parseLinuxDevice parses a device mapping string to a container.DeviceMapping struct
@@ -1030,18 +1032,11 @@ func parseLinuxDevice(device string) (container.DeviceMapping, error) {
10301032
dst = src
10311033
}
10321034

1033-
deviceMapping := container.DeviceMapping{
1035+
return container.DeviceMapping{
10341036
PathOnHost: src,
10351037
PathInContainer: dst,
10361038
CgroupPermissions: permissions,
1037-
}
1038-
return deviceMapping, nil
1039-
}
1040-
1041-
// parseWindowsDevice parses a device mapping string to a container.DeviceMapping struct
1042-
// knowing that the target is a Windows daemon
1043-
func parseWindowsDevice(device string) (container.DeviceMapping, error) {
1044-
return container.DeviceMapping{PathOnHost: device}, nil
1039+
}, nil
10451040
}
10461041

10471042
// validateDeviceCgroupRule validates a device cgroup rule string format

cli/command/container/run.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ func newRunCommand(dockerCLI command.Cli) *cobra.Command {
8484
return cmd
8585
}
8686

87-
func runRun(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, ropts *runOptions, copts *containerOptions) error {
87+
func runRun(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, ropts *runOptions, copts *containerOptions) error {
8888
if err := validatePullOpt(ropts.pull); err != nil {
8989
return cli.StatusError{
9090
Status: withHelp(err, "run").Error(),
9191
StatusCode: 125,
9292
}
9393
}
94-
proxyConfig := dockerCli.ConfigFile().ParseProxyConfig(dockerCli.Client().DaemonHost(), opts.ConvertKVStringsToMapWithNil(copts.env.GetSlice()))
94+
proxyConfig := dockerCLI.ConfigFile().ParseProxyConfig(dockerCLI.Client().DaemonHost(), opts.ConvertKVStringsToMapWithNil(copts.env.GetSlice()))
9595
newEnv := []string{}
9696
for k, v := range proxyConfig {
9797
if v == nil {
@@ -101,7 +101,7 @@ func runRun(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, ro
101101
}
102102
}
103103
copts.env = *opts.NewListOptsRef(&newEnv, nil)
104-
serverInfo, err := dockerCli.Client().Ping(ctx, client.PingOptions{})
104+
serverInfo, err := dockerCLI.Client().Ping(ctx, client.PingOptions{})
105105
if err != nil {
106106
return err
107107
}
@@ -114,7 +114,7 @@ func runRun(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, ro
114114
StatusCode: 125,
115115
}
116116
}
117-
return runContainer(ctx, dockerCli, ropts, copts, containerCfg)
117+
return runContainer(ctx, dockerCLI, ropts, copts, containerCfg)
118118
}
119119

120120
//nolint:gocyclo

0 commit comments

Comments
 (0)