Skip to content

Commit fe53be4

Browse files
committed
Apply context changes to the client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
1 parent d8355ea commit fe53be4

File tree

17 files changed

+72
-32
lines changed

17 files changed

+72
-32
lines changed

api/client/build.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"runtime"
1515
"strings"
1616

17+
"golang.org/x/net/context"
18+
1719
"github.com/docker/docker/api"
1820
"github.com/docker/docker/builder/dockerignore"
1921
Cli "github.com/docker/docker/cli"
@@ -77,8 +79,8 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
7779
cmd.ParseFlags(args, true)
7880

7981
var (
80-
context io.ReadCloser
81-
err error
82+
ctx io.ReadCloser
83+
err error
8284
)
8385

8486
specifiedContext := cmd.Arg(0)
@@ -100,11 +102,11 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
100102

101103
switch {
102104
case specifiedContext == "-":
103-
context, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
105+
ctx, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
104106
case urlutil.IsGitURL(specifiedContext):
105107
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
106108
case urlutil.IsURL(specifiedContext):
107-
context, relDockerfile, err = getContextFromURL(progBuff, specifiedContext, *dockerfileName)
109+
ctx, relDockerfile, err = getContextFromURL(progBuff, specifiedContext, *dockerfileName)
108110
default:
109111
contextDir, relDockerfile, err = getContextFromLocalDir(specifiedContext, *dockerfileName)
110112
}
@@ -121,7 +123,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
121123
contextDir = tempDir
122124
}
123125

124-
if context == nil {
126+
if ctx == nil {
125127
// And canonicalize dockerfile name to a platform-independent one
126128
relDockerfile, err = archive.CanonicalTarNameForPath(relDockerfile)
127129
if err != nil {
@@ -159,7 +161,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
159161
includes = append(includes, ".dockerignore", relDockerfile)
160162
}
161163

162-
context, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
164+
ctx, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
163165
Compression: archive.Uncompressed,
164166
ExcludePatterns: excludes,
165167
IncludeFiles: includes,
@@ -173,13 +175,13 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
173175
if isTrusted() {
174176
// Wrap the tar archive to replace the Dockerfile entry with the rewritten
175177
// Dockerfile which uses trusted pulls.
176-
context = replaceDockerfileTarWrapper(context, relDockerfile, cli.trustedReference, &resolvedTags)
178+
ctx = replaceDockerfileTarWrapper(ctx, relDockerfile, cli.trustedReference, &resolvedTags)
177179
}
178180

179181
// Setup an upload progress bar
180182
progressOutput := streamformatter.NewStreamFormatter().NewProgressOutput(progBuff, true)
181183

182-
var body io.Reader = progress.NewProgressReader(context, progressOutput, 0, "", "Sending build context to Docker daemon")
184+
var body io.Reader = progress.NewProgressReader(ctx, progressOutput, 0, "", "Sending build context to Docker daemon")
183185

184186
var memory int64
185187
if *flMemoryString != "" {
@@ -235,7 +237,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
235237
AuthConfigs: cli.configFile.AuthConfigs,
236238
}
237239

238-
response, err := cli.client.ImageBuild(options)
240+
response, err := cli.client.ImageBuild(context.Background(), options)
239241
if err != nil {
240242
return err
241243
}

api/client/cli.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/docker/docker/opts"
1616
"github.com/docker/docker/pkg/term"
1717
"github.com/docker/engine-api/client"
18+
"github.com/docker/go-connections/sockets"
1819
"github.com/docker/go-connections/tlsconfig"
1920
)
2021

@@ -142,12 +143,12 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientF
142143
verStr = tmpStr
143144
}
144145

145-
clientTransport, err := newClientTransport(clientFlags.Common.TLSOptions)
146+
httpClient, err := newHTTPClient(host, clientFlags.Common.TLSOptions)
146147
if err != nil {
147148
return err
148149
}
149150

150-
client, err := client.NewClient(host, verStr, clientTransport, customHeaders)
151+
client, err := client.NewClient(host, verStr, httpClient, customHeaders)
151152
if err != nil {
152153
return err
153154
}
@@ -180,16 +181,27 @@ func getServerHost(hosts []string, tlsOptions *tlsconfig.Options) (host string,
180181
return
181182
}
182183

183-
func newClientTransport(tlsOptions *tlsconfig.Options) (*http.Transport, error) {
184+
func newHTTPClient(host string, tlsOptions *tlsconfig.Options) (*http.Client, error) {
184185
if tlsOptions == nil {
185-
return &http.Transport{}, nil
186+
// let the api client configure the default transport.
187+
return nil, nil
186188
}
187189

188190
config, err := tlsconfig.Client(*tlsOptions)
189191
if err != nil {
190192
return nil, err
191193
}
192-
return &http.Transport{
194+
tr := &http.Transport{
193195
TLSClientConfig: config,
196+
}
197+
proto, addr, _, err := client.ParseHost(host)
198+
if err != nil {
199+
return nil, err
200+
}
201+
202+
sockets.ConfigureTransport(tr, proto, addr)
203+
204+
return &http.Client{
205+
Transport: tr,
194206
}, nil
195207
}

api/client/cp.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"path/filepath"
88
"strings"
99

10+
"golang.org/x/net/context"
11+
1012
Cli "github.com/docker/docker/cli"
1113
"github.com/docker/docker/pkg/archive"
1214
flag "github.com/docker/docker/pkg/mflag"
@@ -165,7 +167,7 @@ func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string, c
165167

166168
}
167169

168-
content, stat, err := cli.client.CopyFromContainer(srcContainer, srcPath)
170+
content, stat, err := cli.client.CopyFromContainer(context.Background(), srcContainer, srcPath)
169171
if err != nil {
170172
return err
171173
}
@@ -292,5 +294,5 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string, cpP
292294
AllowOverwriteDirWithFile: false,
293295
}
294296

295-
return cli.client.CopyToContainer(options)
297+
return cli.client.CopyToContainer(context.Background(), options)
296298
}

api/client/create.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
"io"
66
"os"
77

8+
"golang.org/x/net/context"
9+
810
Cli "github.com/docker/docker/cli"
911
"github.com/docker/docker/pkg/jsonmessage"
1012
"github.com/docker/docker/reference"
@@ -52,7 +54,7 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
5254
RegistryAuth: encodedAuth,
5355
}
5456

55-
responseBody, err := cli.client.ImageCreate(options)
57+
responseBody, err := cli.client.ImageCreate(context.Background(), options)
5658
if err != nil {
5759
return err
5860
}

api/client/events.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"strings"
99
"time"
1010

11+
"golang.org/x/net/context"
12+
1113
Cli "github.com/docker/docker/cli"
1214
"github.com/docker/docker/opts"
1315
"github.com/docker/docker/pkg/jsonlog"
@@ -48,7 +50,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
4850
Filters: eventFilterArgs,
4951
}
5052

51-
responseBody, err := cli.client.Events(options)
53+
responseBody, err := cli.client.Events(context.Background(), options)
5254
if err != nil {
5355
return err
5456
}

api/client/export.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"errors"
55
"io"
66

7+
"golang.org/x/net/context"
8+
79
Cli "github.com/docker/docker/cli"
810
flag "github.com/docker/docker/pkg/mflag"
911
)
@@ -24,7 +26,7 @@ func (cli *DockerCli) CmdExport(args ...string) error {
2426
return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.")
2527
}
2628

27-
responseBody, err := cli.client.ContainerExport(cmd.Arg(0))
29+
responseBody, err := cli.client.ContainerExport(context.Background(), cmd.Arg(0))
2830
if err != nil {
2931
return err
3032
}

api/client/import.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
"io"
66
"os"
77

8+
"golang.org/x/net/context"
9+
810
Cli "github.com/docker/docker/cli"
911
"github.com/docker/docker/opts"
1012
"github.com/docker/docker/pkg/jsonmessage"
@@ -70,7 +72,7 @@ func (cli *DockerCli) CmdImport(args ...string) error {
7072
Changes: changes,
7173
}
7274

73-
responseBody, err := cli.client.ImageImport(options)
75+
responseBody, err := cli.client.ImageImport(context.Background(), options)
7476
if err != nil {
7577
return err
7678
}

api/client/load.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"io"
55
"os"
66

7+
"golang.org/x/net/context"
8+
79
Cli "github.com/docker/docker/cli"
810
"github.com/docker/docker/pkg/jsonmessage"
911
flag "github.com/docker/docker/pkg/mflag"
@@ -30,7 +32,7 @@ func (cli *DockerCli) CmdLoad(args ...string) error {
3032
input = file
3133
}
3234

33-
response, err := cli.client.ImageLoad(input)
35+
response, err := cli.client.ImageLoad(context.Background(), input, true)
3436
if err != nil {
3537
return err
3638
}

api/client/logs.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"fmt"
55
"io"
66

7+
"golang.org/x/net/context"
8+
79
Cli "github.com/docker/docker/cli"
810
flag "github.com/docker/docker/pkg/mflag"
911
"github.com/docker/docker/pkg/stdcopy"
@@ -48,7 +50,7 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
4850
Follow: *follow,
4951
Tail: *tail,
5052
}
51-
responseBody, err := cli.client.ContainerLogs(options)
53+
responseBody, err := cli.client.ContainerLogs(context.Background(), options)
5254
if err != nil {
5355
return err
5456
}

api/client/pull.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"errors"
55
"fmt"
66

7+
"golang.org/x/net/context"
8+
79
Cli "github.com/docker/docker/cli"
810
"github.com/docker/docker/pkg/jsonmessage"
911
flag "github.com/docker/docker/pkg/mflag"
@@ -77,7 +79,7 @@ func (cli *DockerCli) imagePullPrivileged(authConfig types.AuthConfig, imageID,
7779
RegistryAuth: encodedAuth,
7880
}
7981

80-
responseBody, err := cli.client.ImagePull(options, requestPrivilege)
82+
responseBody, err := cli.client.ImagePull(context.Background(), options, requestPrivilege)
8183
if err != nil {
8284
return err
8385
}

0 commit comments

Comments
 (0)