From 48339017dbb7a09827445d8c1a9db9ae6ecb8a4a Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Wed, 16 Mar 2016 20:19:13 +0100 Subject: [PATCH] Vendor engine-api to fba5dc8 It plumbs net/context.Context through entire API, see docker/engine-api#140 Signed-off-by: Vincent Demeester --- hack/vendor.sh | 2 +- .../engine-api/client/container_attach.go | 5 +- .../engine-api/client/container_commit.go | 5 +- .../engine-api/client/container_copy.go | 8 +- .../engine-api/client/container_create.go | 5 +- .../engine-api/client/container_diff.go | 5 +- .../engine-api/client/container_exec.go | 17 ++-- .../engine-api/client/container_export.go | 2 +- .../engine-api/client/container_inspect.go | 13 +-- .../engine-api/client/container_kill.go | 10 ++- .../engine-api/client/container_list.go | 5 +- .../engine-api/client/container_logs.go | 2 +- .../engine-api/client/container_pause.go | 6 +- .../engine-api/client/container_remove.go | 5 +- .../engine-api/client/container_rename.go | 10 ++- .../engine-api/client/container_resize.go | 13 +-- .../engine-api/client/container_restart.go | 6 +- .../engine-api/client/container_start.go | 6 +- .../engine-api/client/container_stats.go | 2 +- .../engine-api/client/container_stop.go | 6 +- .../docker/engine-api/client/container_top.go | 5 +- .../engine-api/client/container_unpause.go | 6 +- .../engine-api/client/container_update.go | 5 +- .../engine-api/client/container_wait.go | 2 +- .../docker/engine-api/client/errors.go | 2 +- .../docker/engine-api/client/events.go | 2 +- .../docker/engine-api/client/hijack.go | 21 +---- .../docker/engine-api/client/image_create.go | 2 +- .../docker/engine-api/client/image_history.go | 5 +- .../docker/engine-api/client/image_inspect.go | 5 +- .../docker/engine-api/client/image_list.go | 5 +- .../docker/engine-api/client/image_push.go | 2 +- .../docker/engine-api/client/image_remove.go | 5 +- .../docker/engine-api/client/image_save.go | 2 +- .../docker/engine-api/client/image_search.go | 11 +-- .../docker/engine-api/client/image_tag.go | 5 +- .../docker/engine-api/client/info.go | 5 +- .../docker/engine-api/client/interface.go | 86 +++++++++---------- .../docker/engine-api/client/login.go | 5 +- .../engine-api/client/network_connect.go | 5 +- .../engine-api/client/network_create.go | 5 +- .../engine-api/client/network_disconnect.go | 5 +- .../engine-api/client/network_inspect.go | 5 +- .../docker/engine-api/client/network_list.go | 5 +- .../engine-api/client/network_remove.go | 6 +- .../docker/engine-api/client/request.go | 45 +++------- .../engine-api/client/transport/transport.go | 13 +++ .../docker/engine-api/client/version.go | 5 +- .../docker/engine-api/client/volume_create.go | 5 +- .../engine-api/client/volume_inspect.go | 5 +- .../docker/engine-api/client/volume_list.go | 5 +- .../docker/engine-api/client/volume_remove.go | 6 +- .../engine-api/types/container/host_config.go | 26 +++++- 53 files changed, 256 insertions(+), 199 deletions(-) diff --git a/hack/vendor.sh b/hack/vendor.sh index 4c5646fbfd023e0d8484cdb2cd950d118e1d8ad5..b7d217a71f4edfbf7707aa9f0a0e98dded446d5d 100755 --- a/hack/vendor.sh +++ b/hack/vendor.sh @@ -24,7 +24,7 @@ clone git golang.org/x/net 47990a1ba55743e6ef1affd3a14e5bac8553615d https://gith clone git golang.org/x/sys eb2c74142fd19a79b3f237334c7384d5167b1b46 https://github.com/golang/sys.git clone git github.com/docker/go-units 651fc226e7441360384da338d0fd37f2440ffbe3 clone git github.com/docker/go-connections v0.2.0 -clone git github.com/docker/engine-api 9bab0d5b73872e53dfadfa055dcc519e57b09439 +clone git github.com/docker/engine-api 6de18e18540cda038b00e71a1f2946d779e83f87 clone git github.com/RackSec/srslog 259aed10dfa74ea2961eddd1d9847619f6e98837 clone git github.com/imdario/mergo 0.2.1 diff --git a/vendor/src/github.com/docker/engine-api/client/container_attach.go b/vendor/src/github.com/docker/engine-api/client/container_attach.go index 1a403c36e09da1bf750a1dc00fcce6db094a5341..d87fc655c298e6510f79ca81f0e7a4978a96055b 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_attach.go +++ b/vendor/src/github.com/docker/engine-api/client/container_attach.go @@ -4,13 +4,14 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerAttach attaches a connection to a container in the server. // It returns a types.HijackedConnection with the hijacked connection // and the a reader to get output. It's up to the called to close // the hijacked connection by calling types.HijackedResponse.Close. -func (cli *Client) ContainerAttach(options types.ContainerAttachOptions) (types.HijackedResponse, error) { +func (cli *Client) ContainerAttach(ctx context.Context, options types.ContainerAttachOptions) (types.HijackedResponse, error) { query := url.Values{} if options.Stream { query.Set("stream", "1") @@ -29,5 +30,5 @@ func (cli *Client) ContainerAttach(options types.ContainerAttachOptions) (types. } headers := map[string][]string{"Content-Type": {"text/plain"}} - return cli.postHijacked("/containers/"+options.ContainerID+"/attach", query, nil, headers) + return cli.postHijacked(ctx, "/containers/"+options.ContainerID+"/attach", query, nil, headers) } diff --git a/vendor/src/github.com/docker/engine-api/client/container_commit.go b/vendor/src/github.com/docker/engine-api/client/container_commit.go index 47534a6ba0a30c8dcca731722d0696859c2587d1..8a6c89935a92d69fcbceec3a3cc8d8fbdc76493c 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_commit.go +++ b/vendor/src/github.com/docker/engine-api/client/container_commit.go @@ -5,10 +5,11 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerCommit applies changes into a container and creates a new tagged image. -func (cli *Client) ContainerCommit(options types.ContainerCommitOptions) (types.ContainerCommitResponse, error) { +func (cli *Client) ContainerCommit(ctx context.Context, options types.ContainerCommitOptions) (types.ContainerCommitResponse, error) { query := url.Values{} query.Set("container", options.ContainerID) query.Set("repo", options.RepositoryName) @@ -23,7 +24,7 @@ func (cli *Client) ContainerCommit(options types.ContainerCommitOptions) (types. } var response types.ContainerCommitResponse - resp, err := cli.post("/commit", query, options.Config, nil) + resp, err := cli.post(ctx, "/commit", query, options.Config, nil) if err != nil { return response, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_copy.go b/vendor/src/github.com/docker/engine-api/client/container_copy.go index 40d046268bd8785bfa6011b367ee3aa95fa786d6..aaf1f77555438a29607a9168cb927af25b4f5eb8 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_copy.go +++ b/vendor/src/github.com/docker/engine-api/client/container_copy.go @@ -16,12 +16,12 @@ import ( ) // ContainerStatPath returns Stat information about a path inside the container filesystem. -func (cli *Client) ContainerStatPath(containerID, path string) (types.ContainerPathStat, error) { +func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (types.ContainerPathStat, error) { query := url.Values{} query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API. urlStr := fmt.Sprintf("/containers/%s/archive", containerID) - response, err := cli.head(urlStr, query, nil) + response, err := cli.head(ctx, urlStr, query, nil) if err != nil { return types.ContainerPathStat{}, err } @@ -40,7 +40,7 @@ func (cli *Client) CopyToContainer(ctx context.Context, options types.CopyToCont path := fmt.Sprintf("/containers/%s/archive", options.ContainerID) - response, err := cli.putRawWithContext(ctx, path, query, options.Content, nil) + response, err := cli.putRaw(ctx, path, query, options.Content, nil) if err != nil { return err } @@ -60,7 +60,7 @@ func (cli *Client) CopyFromContainer(ctx context.Context, containerID, srcPath s query.Set("path", filepath.ToSlash(srcPath)) // Normalize the paths used in the API. apiPath := fmt.Sprintf("/containers/%s/archive", containerID) - response, err := cli.getWithContext(ctx, apiPath, query, nil) + response, err := cli.get(ctx, apiPath, query, nil) if err != nil { return nil, types.ContainerPathStat{}, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_create.go b/vendor/src/github.com/docker/engine-api/client/container_create.go index 61b560ad581d85a2f70026b8099617bdc33caf9f..98935794dad99bf25b6888347e80cb217cd39e7c 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_create.go +++ b/vendor/src/github.com/docker/engine-api/client/container_create.go @@ -8,6 +8,7 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/container" "github.com/docker/engine-api/types/network" + "golang.org/x/net/context" ) type configWrapper struct { @@ -18,7 +19,7 @@ type configWrapper struct { // ContainerCreate creates a new container based in the given configuration. // It can be associated with a name, but it's not mandatory. -func (cli *Client) ContainerCreate(config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (types.ContainerCreateResponse, error) { +func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (types.ContainerCreateResponse, error) { var response types.ContainerCreateResponse query := url.Values{} if containerName != "" { @@ -31,7 +32,7 @@ func (cli *Client) ContainerCreate(config *container.Config, hostConfig *contain NetworkingConfig: networkingConfig, } - serverResp, err := cli.post("/containers/create", query, body, nil) + serverResp, err := cli.post(ctx, "/containers/create", query, body, nil) if err != nil { if serverResp != nil && serverResp.statusCode == 404 && strings.Contains(err.Error(), "No such image") { return response, imageNotFoundError{config.Image} diff --git a/vendor/src/github.com/docker/engine-api/client/container_diff.go b/vendor/src/github.com/docker/engine-api/client/container_diff.go index c57bf6910b4b69790f82b2891aea1f41ed90fbb6..f4bb3a46b99f32d2f09aae5cfb019e7e0e8478c9 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_diff.go +++ b/vendor/src/github.com/docker/engine-api/client/container_diff.go @@ -5,13 +5,14 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerDiff shows differences in a container filesystem since it was started. -func (cli *Client) ContainerDiff(containerID string) ([]types.ContainerChange, error) { +func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error) { var changes []types.ContainerChange - serverResp, err := cli.get("/containers/"+containerID+"/changes", url.Values{}, nil) + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil) if err != nil { return changes, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_exec.go b/vendor/src/github.com/docker/engine-api/client/container_exec.go index 3d4577ee337db4b05cfc10e6ac8fbb3256792ea7..159c9dfdfdb88b76a0b59853d395491de963d421 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_exec.go +++ b/vendor/src/github.com/docker/engine-api/client/container_exec.go @@ -4,12 +4,13 @@ import ( "encoding/json" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerExecCreate creates a new exec configuration to run an exec process. -func (cli *Client) ContainerExecCreate(config types.ExecConfig) (types.ContainerExecCreateResponse, error) { +func (cli *Client) ContainerExecCreate(ctx context.Context, config types.ExecConfig) (types.ContainerExecCreateResponse, error) { var response types.ContainerExecCreateResponse - resp, err := cli.post("/containers/"+config.Container+"/exec", nil, config, nil) + resp, err := cli.post(ctx, "/containers/"+config.Container+"/exec", nil, config, nil) if err != nil { return response, err } @@ -19,8 +20,8 @@ func (cli *Client) ContainerExecCreate(config types.ExecConfig) (types.Container } // ContainerExecStart starts an exec process already create in the docker host. -func (cli *Client) ContainerExecStart(execID string, config types.ExecStartCheck) error { - resp, err := cli.post("/exec/"+execID+"/start", nil, config, nil) +func (cli *Client) ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error { + resp, err := cli.post(ctx, "/exec/"+execID+"/start", nil, config, nil) ensureReaderClosed(resp) return err } @@ -29,15 +30,15 @@ func (cli *Client) ContainerExecStart(execID string, config types.ExecStartCheck // It returns a types.HijackedConnection with the hijacked connection // and the a reader to get output. It's up to the called to close // the hijacked connection by calling types.HijackedResponse.Close. -func (cli *Client) ContainerExecAttach(execID string, config types.ExecConfig) (types.HijackedResponse, error) { +func (cli *Client) ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error) { headers := map[string][]string{"Content-Type": {"application/json"}} - return cli.postHijacked("/exec/"+execID+"/start", nil, config, headers) + return cli.postHijacked(ctx, "/exec/"+execID+"/start", nil, config, headers) } // ContainerExecInspect returns information about a specific exec process on the docker host. -func (cli *Client) ContainerExecInspect(execID string) (types.ContainerExecInspect, error) { +func (cli *Client) ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error) { var response types.ContainerExecInspect - resp, err := cli.get("/exec/"+execID+"/json", nil, nil) + resp, err := cli.get(ctx, "/exec/"+execID+"/json", nil, nil) if err != nil { return response, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_export.go b/vendor/src/github.com/docker/engine-api/client/container_export.go index 952d85824d12174db3ef11a1b50f7c05b560abf4..1925113ec3e7ce5c4b949500c4087f55eb46977c 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_export.go +++ b/vendor/src/github.com/docker/engine-api/client/container_export.go @@ -11,7 +11,7 @@ import ( // and returns them as a io.ReadCloser. It's up to the caller // to close the stream. func (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) { - serverResp, err := cli.getWithContext(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_inspect.go b/vendor/src/github.com/docker/engine-api/client/container_inspect.go index f99e46ff882a7ab1928a4b5b0c2d22b62c441245..afd71eefcb0160451b4ecb859063a37564a38c65 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_inspect.go +++ b/vendor/src/github.com/docker/engine-api/client/container_inspect.go @@ -8,11 +8,12 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerInspect returns the container information. -func (cli *Client) ContainerInspect(containerID string) (types.ContainerJSON, error) { - serverResp, err := cli.get("/containers/"+containerID+"/json", nil, nil) +func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) { + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", nil, nil) if err != nil { if serverResp.statusCode == http.StatusNotFound { return types.ContainerJSON{}, containerNotFoundError{containerID} @@ -27,12 +28,12 @@ func (cli *Client) ContainerInspect(containerID string) (types.ContainerJSON, er } // ContainerInspectWithRaw returns the container information and it's raw representation. -func (cli *Client) ContainerInspectWithRaw(containerID string, getSize bool) (types.ContainerJSON, []byte, error) { +func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error) { query := url.Values{} if getSize { query.Set("size", "1") } - serverResp, err := cli.get("/containers/"+containerID+"/json", query, nil) + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", query, nil) if err != nil { if serverResp.statusCode == http.StatusNotFound { return types.ContainerJSON{}, nil, containerNotFoundError{containerID} @@ -52,8 +53,8 @@ func (cli *Client) ContainerInspectWithRaw(containerID string, getSize bool) (ty return response, body, err } -func (cli *Client) containerInspectWithResponse(containerID string, query url.Values) (types.ContainerJSON, *serverResponse, error) { - serverResp, err := cli.get("/containers/"+containerID+"/json", nil, nil) +func (cli *Client) containerInspectWithResponse(ctx context.Context, containerID string, query url.Values) (types.ContainerJSON, *serverResponse, error) { + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", nil, nil) if err != nil { return types.ContainerJSON{}, serverResp, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_kill.go b/vendor/src/github.com/docker/engine-api/client/container_kill.go index d1820cbf9e6c186d05120d24af08f1737c08f829..29f80c73adea8d5b602232cf28c89835fd6d0590 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_kill.go +++ b/vendor/src/github.com/docker/engine-api/client/container_kill.go @@ -1,13 +1,17 @@ package client -import "net/url" +import ( + "net/url" + + "golang.org/x/net/context" +) // ContainerKill terminates the container process but does not remove the container from the docker host. -func (cli *Client) ContainerKill(containerID, signal string) error { +func (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error { query := url.Values{} query.Set("signal", signal) - resp, err := cli.post("/containers/"+containerID+"/kill", query, nil, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/kill", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_list.go b/vendor/src/github.com/docker/engine-api/client/container_list.go index f553287fb6732a8396b06bfc2ffc83d4c145f39f..573f41d5c60e9e9242dfe50c1eb55a82a50efa8d 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_list.go +++ b/vendor/src/github.com/docker/engine-api/client/container_list.go @@ -7,10 +7,11 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" + "golang.org/x/net/context" ) // ContainerList returns the list of containers in the docker host. -func (cli *Client) ContainerList(options types.ContainerListOptions) ([]types.Container, error) { +func (cli *Client) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) { query := url.Values{} if options.All { @@ -42,7 +43,7 @@ func (cli *Client) ContainerList(options types.ContainerListOptions) ([]types.Co query.Set("filters", filterJSON) } - resp, err := cli.get("/containers/json", query, nil) + resp, err := cli.get(ctx, "/containers/json", query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_logs.go b/vendor/src/github.com/docker/engine-api/client/container_logs.go index 2aaf1839dcdaaafd5a36ab89e01609f111efacfa..47c60ee3c41b61c75b3990700d46108916fec32d 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_logs.go +++ b/vendor/src/github.com/docker/engine-api/client/container_logs.go @@ -40,7 +40,7 @@ func (cli *Client) ContainerLogs(ctx context.Context, options types.ContainerLog } query.Set("tail", options.Tail) - resp, err := cli.getWithContext(ctx, "/containers/"+options.ContainerID+"/logs", query, nil) + resp, err := cli.get(ctx, "/containers/"+options.ContainerID+"/logs", query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_pause.go b/vendor/src/github.com/docker/engine-api/client/container_pause.go index 7671be9f95528eb0a42344afb07ff046a4edcb4a..412067a7821f5b18fb030b71477098fe091b7b6b 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_pause.go +++ b/vendor/src/github.com/docker/engine-api/client/container_pause.go @@ -1,8 +1,10 @@ package client +import "golang.org/x/net/context" + // ContainerPause pauses the main process of a given container without terminating it. -func (cli *Client) ContainerPause(containerID string) error { - resp, err := cli.post("/containers/"+containerID+"/pause", nil, nil, nil) +func (cli *Client) ContainerPause(ctx context.Context, containerID string) error { + resp, err := cli.post(ctx, "/containers/"+containerID+"/pause", nil, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_remove.go b/vendor/src/github.com/docker/engine-api/client/container_remove.go index b078d4880bb35356c2383a15510a53ad785b2c54..56796231f42d21a8b50fc9f0a790236cd648a585 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_remove.go +++ b/vendor/src/github.com/docker/engine-api/client/container_remove.go @@ -4,10 +4,11 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerRemove kills and removes a container from the docker host. -func (cli *Client) ContainerRemove(options types.ContainerRemoveOptions) error { +func (cli *Client) ContainerRemove(ctx context.Context, options types.ContainerRemoveOptions) error { query := url.Values{} if options.RemoveVolumes { query.Set("v", "1") @@ -20,7 +21,7 @@ func (cli *Client) ContainerRemove(options types.ContainerRemoveOptions) error { query.Set("force", "1") } - resp, err := cli.delete("/containers/"+options.ContainerID, query, nil) + resp, err := cli.delete(ctx, "/containers/"+options.ContainerID, query, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_rename.go b/vendor/src/github.com/docker/engine-api/client/container_rename.go index 9d8b08af0ad4d950dfb254b861f29e514f7d66c5..0e718da7c6ef918aea10151d91d9d093d90208f3 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_rename.go +++ b/vendor/src/github.com/docker/engine-api/client/container_rename.go @@ -1,12 +1,16 @@ package client -import "net/url" +import ( + "net/url" + + "golang.org/x/net/context" +) // ContainerRename changes the name of a given container. -func (cli *Client) ContainerRename(containerID, newContainerName string) error { +func (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error { query := url.Values{} query.Set("name", newContainerName) - resp, err := cli.post("/containers/"+containerID+"/rename", query, nil, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/rename", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_resize.go b/vendor/src/github.com/docker/engine-api/client/container_resize.go index 6ccd92cd9bd42d21a803fbef46a6c4877a0957ee..0782017497df1867847cf86b5761f5463b7f2789 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_resize.go +++ b/vendor/src/github.com/docker/engine-api/client/container_resize.go @@ -5,24 +5,25 @@ import ( "strconv" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerResize changes the size of the tty for a container. -func (cli *Client) ContainerResize(options types.ResizeOptions) error { - return cli.resize("/containers/"+options.ID, options.Height, options.Width) +func (cli *Client) ContainerResize(ctx context.Context, options types.ResizeOptions) error { + return cli.resize(ctx, "/containers/"+options.ID, options.Height, options.Width) } // ContainerExecResize changes the size of the tty for an exec process running inside a container. -func (cli *Client) ContainerExecResize(options types.ResizeOptions) error { - return cli.resize("/exec/"+options.ID, options.Height, options.Width) +func (cli *Client) ContainerExecResize(ctx context.Context, options types.ResizeOptions) error { + return cli.resize(ctx, "/exec/"+options.ID, options.Height, options.Width) } -func (cli *Client) resize(basePath string, height, width int) error { +func (cli *Client) resize(ctx context.Context, basePath string, height, width int) error { query := url.Values{} query.Set("h", strconv.Itoa(height)) query.Set("w", strconv.Itoa(width)) - resp, err := cli.post(basePath+"/resize", query, nil, nil) + resp, err := cli.post(ctx, basePath+"/resize", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_restart.go b/vendor/src/github.com/docker/engine-api/client/container_restart.go index 73da43cb36218409e4c2d37dccb9736e39f13e3d..1c74b18ca51510e75ef1ef1ab447e10f4c82ab09 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_restart.go +++ b/vendor/src/github.com/docker/engine-api/client/container_restart.go @@ -3,15 +3,17 @@ package client import ( "net/url" "strconv" + + "golang.org/x/net/context" ) // ContainerRestart stops and starts a container again. // It makes the daemon to wait for the container to be up again for // a specific amount of time, given the timeout. -func (cli *Client) ContainerRestart(containerID string, timeout int) error { +func (cli *Client) ContainerRestart(ctx context.Context, containerID string, timeout int) error { query := url.Values{} query.Set("t", strconv.Itoa(timeout)) - resp, err := cli.post("/containers/"+containerID+"/restart", query, nil, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/restart", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_start.go b/vendor/src/github.com/docker/engine-api/client/container_start.go index 3751ce7e3e237781823fcb14820a7ea06d48f19a..12a979422eff12f815f72d44ce4a203f1058e4c2 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_start.go +++ b/vendor/src/github.com/docker/engine-api/client/container_start.go @@ -1,8 +1,10 @@ package client +import "golang.org/x/net/context" + // ContainerStart sends a request to the docker daemon to start a container. -func (cli *Client) ContainerStart(containerID string) error { - resp, err := cli.post("/containers/"+containerID+"/start", nil, nil, nil) +func (cli *Client) ContainerStart(ctx context.Context, containerID string) error { + resp, err := cli.post(ctx, "/containers/"+containerID+"/start", nil, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_stats.go b/vendor/src/github.com/docker/engine-api/client/container_stats.go index 63b3d0e19f71af91fe7b02b8d6c5a11fc9fc659b..2cc67c3af173d3844c8ff97bb9361d723937d347 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_stats.go +++ b/vendor/src/github.com/docker/engine-api/client/container_stats.go @@ -16,7 +16,7 @@ func (cli *Client) ContainerStats(ctx context.Context, containerID string, strea query.Set("stream", "1") } - resp, err := cli.getWithContext(ctx, "/containers/"+containerID+"/stats", query, nil) + resp, err := cli.get(ctx, "/containers/"+containerID+"/stats", query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_stop.go b/vendor/src/github.com/docker/engine-api/client/container_stop.go index 7f850efe9a5b9a8fcb86d2874b0120c3449cc95c..34d786291d5874936f5abae1bb94eb8ab6bb302b 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_stop.go +++ b/vendor/src/github.com/docker/engine-api/client/container_stop.go @@ -3,14 +3,16 @@ package client import ( "net/url" "strconv" + + "golang.org/x/net/context" ) // ContainerStop stops a container without terminating the process. // The process is blocked until the container stops or the timeout expires. -func (cli *Client) ContainerStop(containerID string, timeout int) error { +func (cli *Client) ContainerStop(ctx context.Context, containerID string, timeout int) error { query := url.Values{} query.Set("t", strconv.Itoa(timeout)) - resp, err := cli.post("/containers/"+containerID+"/stop", query, nil, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/stop", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_top.go b/vendor/src/github.com/docker/engine-api/client/container_top.go index 1673947712e727f73f3710b77063488fa99ccd82..5ad926ae088e1d82c3e6001044cbbc1ece0c3f56 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_top.go +++ b/vendor/src/github.com/docker/engine-api/client/container_top.go @@ -6,17 +6,18 @@ import ( "strings" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ContainerTop shows process information from within a container. -func (cli *Client) ContainerTop(containerID string, arguments []string) (types.ContainerProcessList, error) { +func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error) { var response types.ContainerProcessList query := url.Values{} if len(arguments) > 0 { query.Set("ps_args", strings.Join(arguments, " ")) } - resp, err := cli.get("/containers/"+containerID+"/top", query, nil) + resp, err := cli.get(ctx, "/containers/"+containerID+"/top", query, nil) if err != nil { return response, err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_unpause.go b/vendor/src/github.com/docker/engine-api/client/container_unpause.go index cbaaed898a79be4a8c6bfd00ef558a3b0bb119ef..5c76211256cb98cc662b3ee3811d640dd3aa1a23 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_unpause.go +++ b/vendor/src/github.com/docker/engine-api/client/container_unpause.go @@ -1,8 +1,10 @@ package client +import "golang.org/x/net/context" + // ContainerUnpause resumes the process execution within a container -func (cli *Client) ContainerUnpause(containerID string) error { - resp, err := cli.post("/containers/"+containerID+"/unpause", nil, nil, nil) +func (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error { + resp, err := cli.post(ctx, "/containers/"+containerID+"/unpause", nil, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_update.go b/vendor/src/github.com/docker/engine-api/client/container_update.go index f2af5645bf121cafe76be85d8d2278b84cf00378..a5a1826dc4ace2757d77dab318eb75f6fa822d13 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_update.go +++ b/vendor/src/github.com/docker/engine-api/client/container_update.go @@ -2,11 +2,12 @@ package client import ( "github.com/docker/engine-api/types/container" + "golang.org/x/net/context" ) // ContainerUpdate updates resources of a container -func (cli *Client) ContainerUpdate(containerID string, updateConfig container.UpdateConfig) error { - resp, err := cli.post("/containers/"+containerID+"/update", nil, updateConfig, nil) +func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) error { + resp, err := cli.post(ctx, "/containers/"+containerID+"/update", nil, updateConfig, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/container_wait.go b/vendor/src/github.com/docker/engine-api/client/container_wait.go index ed7cbfaa78b1d833488be80bb3c8c556876cca2b..ca8c443bd049c387e95aa132ec8666464ce87141 100644 --- a/vendor/src/github.com/docker/engine-api/client/container_wait.go +++ b/vendor/src/github.com/docker/engine-api/client/container_wait.go @@ -11,7 +11,7 @@ import ( // ContainerWait pauses execution util a container is exits. // It returns the API status code as response of its readiness. func (cli *Client) ContainerWait(ctx context.Context, containerID string) (int, error) { - resp, err := cli.postWithContext(ctx, "/containers/"+containerID+"/wait", nil, nil, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/wait", nil, nil, nil) if err != nil { return -1, err } diff --git a/vendor/src/github.com/docker/engine-api/client/errors.go b/vendor/src/github.com/docker/engine-api/client/errors.go index f1701f8e926c1b883651ea2105b484d3c68798b6..9bcc78eb443b600d851db6f65f0a4ecd23bf7615 100644 --- a/vendor/src/github.com/docker/engine-api/client/errors.go +++ b/vendor/src/github.com/docker/engine-api/client/errors.go @@ -72,7 +72,7 @@ func (e volumeNotFoundError) Error() string { // IsErrVolumeNotFound returns true if the error is caused // when a volume is not found in the docker host. func IsErrVolumeNotFound(err error) bool { - _, ok := err.(networkNotFoundError) + _, ok := err.(volumeNotFoundError) return ok } diff --git a/vendor/src/github.com/docker/engine-api/client/events.go b/vendor/src/github.com/docker/engine-api/client/events.go index 75ba4e10e5f1b82511373bde0a1f852ac9d31123..e379ce0a2945a461d0783faa6665ce065cb136d8 100644 --- a/vendor/src/github.com/docker/engine-api/client/events.go +++ b/vendor/src/github.com/docker/engine-api/client/events.go @@ -40,7 +40,7 @@ func (cli *Client) Events(ctx context.Context, options types.EventsOptions) (io. query.Set("filters", filterJSON) } - serverResponse, err := cli.getWithContext(ctx, "/events", query, nil) + serverResponse, err := cli.get(ctx, "/events", query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/hijack.go b/vendor/src/github.com/docker/engine-api/client/hijack.go index d9c8513883379954fc22c5dbf4663a442bfbfe9b..8102d481b4d3d53c518084425e632302eb9eef7a 100644 --- a/vendor/src/github.com/docker/engine-api/client/hijack.go +++ b/vendor/src/github.com/docker/engine-api/client/hijack.go @@ -12,6 +12,7 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/go-connections/sockets" + "golang.org/x/net/context" ) // tlsClientCon holds tls information and a dialed connection. @@ -30,7 +31,7 @@ func (c *tlsClientCon) CloseWrite() error { } // postHijacked sends a POST request and hijacks the connection. -func (cli *Client) postHijacked(path string, query url.Values, body interface{}, headers map[string][]string) (types.HijackedResponse, error) { +func (cli *Client) postHijacked(ctx context.Context, path string, query url.Values, body interface{}, headers map[string][]string) (types.HijackedResponse, error) { bodyEncoded, err := encodeData(body) if err != nil { return types.HijackedResponse{}, err @@ -45,7 +46,8 @@ func (cli *Client) postHijacked(path string, query url.Values, body interface{}, req.Header.Set("Connection", "Upgrade") req.Header.Set("Upgrade", "tcp") - conn, err := dial(cli.proto, cli.addr, cli.transport.TLSConfig()) + tlsConfig := cli.transport.TLSConfig() + conn, err := dial(cli.proto, cli.addr, tlsConfig) if err != nil { if strings.Contains(err.Error(), "connection refused") { return types.HijackedResponse{}, fmt.Errorf("Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?") @@ -124,21 +126,6 @@ func tlsDialWithDialer(dialer *net.Dialer, network, addr string, config *tls.Con tcpConn.SetKeepAlivePeriod(30 * time.Second) } - colonPos := strings.LastIndex(addr, ":") - if colonPos == -1 { - colonPos = len(addr) - } - hostname := addr[:colonPos] - - // If no ServerName is set, infer the ServerName - // from the hostname we're connecting to. - if config.ServerName == "" { - // Make a copy to avoid polluting argument or default. - c := *config - c.ServerName = hostname - config = &c - } - conn := tls.Client(rawConn, config) if timeout == 0 { diff --git a/vendor/src/github.com/docker/engine-api/client/image_create.go b/vendor/src/github.com/docker/engine-api/client/image_create.go index ec2aa37c09d040ef82b84810a27e99abada6a2e4..1ec1f9d09b5802fb9e26a7acc226447ea9eaff58 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_create.go +++ b/vendor/src/github.com/docker/engine-api/client/image_create.go @@ -24,5 +24,5 @@ func (cli *Client) ImageCreate(ctx context.Context, options types.ImageCreateOpt func (cli *Client) tryImageCreate(ctx context.Context, query url.Values, registryAuth string) (*serverResponse, error) { headers := map[string][]string{"X-Registry-Auth": {registryAuth}} - return cli.postWithContext(ctx, "/images/create", query, nil, headers) + return cli.post(ctx, "/images/create", query, nil, headers) } diff --git a/vendor/src/github.com/docker/engine-api/client/image_history.go b/vendor/src/github.com/docker/engine-api/client/image_history.go index 21a26225e43e95b8e7751dacecd01921fcd6f83f..b2840b5ed8490f2480a561659e4b44beaebb7169 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_history.go +++ b/vendor/src/github.com/docker/engine-api/client/image_history.go @@ -5,12 +5,13 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ImageHistory returns the changes in an image in history format. -func (cli *Client) ImageHistory(imageID string) ([]types.ImageHistory, error) { +func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error) { var history []types.ImageHistory - serverResp, err := cli.get("/images/"+imageID+"/history", url.Values{}, nil) + serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil) if err != nil { return history, err } diff --git a/vendor/src/github.com/docker/engine-api/client/image_inspect.go b/vendor/src/github.com/docker/engine-api/client/image_inspect.go index 9ef9fc36eb2f3c5386cbac7c8e36aaa12b039485..761a994c58080285d7fed48f0265a451cc58e361 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_inspect.go +++ b/vendor/src/github.com/docker/engine-api/client/image_inspect.go @@ -8,15 +8,16 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ImageInspectWithRaw returns the image information and it's raw representation. -func (cli *Client) ImageInspectWithRaw(imageID string, getSize bool) (types.ImageInspect, []byte, error) { +func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string, getSize bool) (types.ImageInspect, []byte, error) { query := url.Values{} if getSize { query.Set("size", "1") } - serverResp, err := cli.get("/images/"+imageID+"/json", query, nil) + serverResp, err := cli.get(ctx, "/images/"+imageID+"/json", query, nil) if err != nil { if serverResp.statusCode == http.StatusNotFound { return types.ImageInspect{}, nil, imageNotFoundError{imageID} diff --git a/vendor/src/github.com/docker/engine-api/client/image_list.go b/vendor/src/github.com/docker/engine-api/client/image_list.go index 0cdb0baac803607d4b5c0009e0556c2f91eb64c2..347810e663d24390d525449a638a4040db16b70f 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_list.go +++ b/vendor/src/github.com/docker/engine-api/client/image_list.go @@ -6,10 +6,11 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" + "golang.org/x/net/context" ) // ImageList returns a list of images in the docker host. -func (cli *Client) ImageList(options types.ImageListOptions) ([]types.Image, error) { +func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.Image, error) { var images []types.Image query := url.Values{} @@ -28,7 +29,7 @@ func (cli *Client) ImageList(options types.ImageListOptions) ([]types.Image, err query.Set("all", "1") } - serverResp, err := cli.get("/images/json", query, nil) + serverResp, err := cli.get(ctx, "/images/json", query, nil) if err != nil { return images, err } diff --git a/vendor/src/github.com/docker/engine-api/client/image_push.go b/vendor/src/github.com/docker/engine-api/client/image_push.go index 253e071f1fb25b33d929c0b0a68097fc2150eef7..ca2cb43b7f40ccb6c0e4d2d8c964d1d5a825c0af 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_push.go +++ b/vendor/src/github.com/docker/engine-api/client/image_push.go @@ -34,5 +34,5 @@ func (cli *Client) ImagePush(ctx context.Context, options types.ImagePushOptions func (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (*serverResponse, error) { headers := map[string][]string{"X-Registry-Auth": {registryAuth}} - return cli.postWithContext(ctx, "/images/"+imageID+"/push", query, nil, headers) + return cli.post(ctx, "/images/"+imageID+"/push", query, nil, headers) } diff --git a/vendor/src/github.com/docker/engine-api/client/image_remove.go b/vendor/src/github.com/docker/engine-api/client/image_remove.go index 28edb8e429e57ec6361bd169875845147c361851..d7e71c89ced0b56238bab58c190bdc098ec18cb9 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_remove.go +++ b/vendor/src/github.com/docker/engine-api/client/image_remove.go @@ -5,10 +5,11 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ImageRemove removes an image from the docker host. -func (cli *Client) ImageRemove(options types.ImageRemoveOptions) ([]types.ImageDelete, error) { +func (cli *Client) ImageRemove(ctx context.Context, options types.ImageRemoveOptions) ([]types.ImageDelete, error) { query := url.Values{} if options.Force { @@ -18,7 +19,7 @@ func (cli *Client) ImageRemove(options types.ImageRemoveOptions) ([]types.ImageD query.Set("noprune", "1") } - resp, err := cli.delete("/images/"+options.ImageID, query, nil) + resp, err := cli.delete(ctx, "/images/"+options.ImageID, query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/image_save.go b/vendor/src/github.com/docker/engine-api/client/image_save.go index 0ec7cac758f6b05bf95cb368a1cea62c9aba1abe..c0feb3ede5c36b2cbd234301e1b2cc40d2dba24f 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_save.go +++ b/vendor/src/github.com/docker/engine-api/client/image_save.go @@ -14,7 +14,7 @@ func (cli *Client) ImageSave(ctx context.Context, imageIDs []string) (io.ReadClo "names": imageIDs, } - resp, err := cli.getWithContext(ctx, "/images/get", query, nil) + resp, err := cli.get(ctx, "/images/get", query, nil) if err != nil { return nil, err } diff --git a/vendor/src/github.com/docker/engine-api/client/image_search.go b/vendor/src/github.com/docker/engine-api/client/image_search.go index 0cad8a7fdc97caaebd3b66414e601ca0205ccba6..ebe9dc0b6ef5d311ffd26e809b1bc797f10e8358 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_search.go +++ b/vendor/src/github.com/docker/engine-api/client/image_search.go @@ -7,22 +7,23 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/registry" + "golang.org/x/net/context" ) // ImageSearch makes the docker host to search by a term in a remote registry. // The list of results is not sorted in any fashion. -func (cli *Client) ImageSearch(options types.ImageSearchOptions, privilegeFunc RequestPrivilegeFunc) ([]registry.SearchResult, error) { +func (cli *Client) ImageSearch(ctx context.Context, options types.ImageSearchOptions, privilegeFunc RequestPrivilegeFunc) ([]registry.SearchResult, error) { var results []registry.SearchResult query := url.Values{} query.Set("term", options.Term) - resp, err := cli.tryImageSearch(query, options.RegistryAuth) + resp, err := cli.tryImageSearch(ctx, query, options.RegistryAuth) if resp.statusCode == http.StatusUnauthorized { newAuthHeader, privilegeErr := privilegeFunc() if privilegeErr != nil { return results, privilegeErr } - resp, err = cli.tryImageSearch(query, newAuthHeader) + resp, err = cli.tryImageSearch(ctx, query, newAuthHeader) } if err != nil { return results, err @@ -33,7 +34,7 @@ func (cli *Client) ImageSearch(options types.ImageSearchOptions, privilegeFunc R return results, err } -func (cli *Client) tryImageSearch(query url.Values, registryAuth string) (*serverResponse, error) { +func (cli *Client) tryImageSearch(ctx context.Context, query url.Values, registryAuth string) (*serverResponse, error) { headers := map[string][]string{"X-Registry-Auth": {registryAuth}} - return cli.get("/images/search", query, headers) + return cli.get(ctx, "/images/search", query, headers) } diff --git a/vendor/src/github.com/docker/engine-api/client/image_tag.go b/vendor/src/github.com/docker/engine-api/client/image_tag.go index 5ae35914feab440936ba2284465739c9f4a7118e..20feda38c1dfff2fb470dd3e4dbb9efea1734181 100644 --- a/vendor/src/github.com/docker/engine-api/client/image_tag.go +++ b/vendor/src/github.com/docker/engine-api/client/image_tag.go @@ -4,10 +4,11 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ImageTag tags an image in the docker host -func (cli *Client) ImageTag(options types.ImageTagOptions) error { +func (cli *Client) ImageTag(ctx context.Context, options types.ImageTagOptions) error { query := url.Values{} query.Set("repo", options.RepositoryName) query.Set("tag", options.Tag) @@ -15,7 +16,7 @@ func (cli *Client) ImageTag(options types.ImageTagOptions) error { query.Set("force", "1") } - resp, err := cli.post("/images/"+options.ImageID+"/tag", query, nil, nil) + resp, err := cli.post(ctx, "/images/"+options.ImageID+"/tag", query, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/info.go b/vendor/src/github.com/docker/engine-api/client/info.go index 666d4aee73754b66d4e24f12f15a4a9a31791fd4..ff0958d65ce8fed4c5e4114d99bb2f36b0033bbf 100644 --- a/vendor/src/github.com/docker/engine-api/client/info.go +++ b/vendor/src/github.com/docker/engine-api/client/info.go @@ -6,12 +6,13 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // Info returns information about the docker server. -func (cli *Client) Info() (types.Info, error) { +func (cli *Client) Info(ctx context.Context) (types.Info, error) { var info types.Info - serverResp, err := cli.get("/info", url.Values{}, nil) + serverResp, err := cli.get(ctx, "/info", url.Values{}, nil) if err != nil { return info, err } diff --git a/vendor/src/github.com/docker/engine-api/client/interface.go b/vendor/src/github.com/docker/engine-api/client/interface.go index 26ad7a0b552eb01fb334f127dba819412ce8f317..e95ed555677af0a9f853344753e046c75d904dfb 100644 --- a/vendor/src/github.com/docker/engine-api/client/interface.go +++ b/vendor/src/github.com/docker/engine-api/client/interface.go @@ -15,63 +15,63 @@ import ( // APIClient is an interface that clients that talk with a docker server must implement. type APIClient interface { ClientVersion() string - ContainerAttach(options types.ContainerAttachOptions) (types.HijackedResponse, error) - ContainerCommit(options types.ContainerCommitOptions) (types.ContainerCommitResponse, error) - ContainerCreate(config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (types.ContainerCreateResponse, error) - ContainerDiff(containerID string) ([]types.ContainerChange, error) - ContainerExecAttach(execID string, config types.ExecConfig) (types.HijackedResponse, error) - ContainerExecCreate(config types.ExecConfig) (types.ContainerExecCreateResponse, error) - ContainerExecInspect(execID string) (types.ContainerExecInspect, error) - ContainerExecResize(options types.ResizeOptions) error - ContainerExecStart(execID string, config types.ExecStartCheck) error + ContainerAttach(ctx context.Context, options types.ContainerAttachOptions) (types.HijackedResponse, error) + ContainerCommit(ctx context.Context, options types.ContainerCommitOptions) (types.ContainerCommitResponse, error) + ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (types.ContainerCreateResponse, error) + ContainerDiff(ctx context.Context, ontainerID string) ([]types.ContainerChange, error) + ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error) + ContainerExecCreate(ctx context.Context, config types.ExecConfig) (types.ContainerExecCreateResponse, error) + ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error) + ContainerExecResize(ctx context.Context, options types.ResizeOptions) error + ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) - ContainerInspect(containerID string) (types.ContainerJSON, error) - ContainerInspectWithRaw(containerID string, getSize bool) (types.ContainerJSON, []byte, error) - ContainerKill(containerID, signal string) error - ContainerList(options types.ContainerListOptions) ([]types.Container, error) + ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) + ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error) + ContainerKill(ctx context.Context, containerID, signal string) error + ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) ContainerLogs(ctx context.Context, options types.ContainerLogsOptions) (io.ReadCloser, error) - ContainerPause(containerID string) error - ContainerRemove(options types.ContainerRemoveOptions) error - ContainerRename(containerID, newContainerName string) error - ContainerResize(options types.ResizeOptions) error - ContainerRestart(containerID string, timeout int) error - ContainerStatPath(containerID, path string) (types.ContainerPathStat, error) + ContainerPause(ctx context.Context, containerID string) error + ContainerRemove(ctx context.Context, options types.ContainerRemoveOptions) error + ContainerRename(ctx context.Context, containerID, newContainerName string) error + ContainerResize(ctx context.Context, options types.ResizeOptions) error + ContainerRestart(ctx context.Context, containerID string, timeout int) error + ContainerStatPath(ctx context.Context, containerID, path string) (types.ContainerPathStat, error) ContainerStats(ctx context.Context, containerID string, stream bool) (io.ReadCloser, error) - ContainerStart(containerID string) error - ContainerStop(containerID string, timeout int) error - ContainerTop(containerID string, arguments []string) (types.ContainerProcessList, error) - ContainerUnpause(containerID string) error - ContainerUpdate(containerID string, updateConfig container.UpdateConfig) error + ContainerStart(ctx context.Context, containerID string) error + ContainerStop(ctx context.Context, containerID string, timeout int) error + ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error) + ContainerUnpause(ctx context.Context, containerID string) error + ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) error ContainerWait(ctx context.Context, containerID string) (int, error) CopyFromContainer(ctx context.Context, containerID, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) CopyToContainer(ctx context.Context, options types.CopyToContainerOptions) error Events(ctx context.Context, options types.EventsOptions) (io.ReadCloser, error) ImageBuild(ctx context.Context, options types.ImageBuildOptions) (types.ImageBuildResponse, error) ImageCreate(ctx context.Context, options types.ImageCreateOptions) (io.ReadCloser, error) - ImageHistory(imageID string) ([]types.ImageHistory, error) + ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error) ImageImport(ctx context.Context, options types.ImageImportOptions) (io.ReadCloser, error) - ImageInspectWithRaw(imageID string, getSize bool) (types.ImageInspect, []byte, error) - ImageList(options types.ImageListOptions) ([]types.Image, error) + ImageInspectWithRaw(ctx context.Context, imageID string, getSize bool) (types.ImageInspect, []byte, error) + ImageList(ctx context.Context, options types.ImageListOptions) ([]types.Image, error) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) ImagePull(ctx context.Context, options types.ImagePullOptions, privilegeFunc RequestPrivilegeFunc) (io.ReadCloser, error) ImagePush(ctx context.Context, options types.ImagePushOptions, privilegeFunc RequestPrivilegeFunc) (io.ReadCloser, error) - ImageRemove(options types.ImageRemoveOptions) ([]types.ImageDelete, error) - ImageSearch(options types.ImageSearchOptions, privilegeFunc RequestPrivilegeFunc) ([]registry.SearchResult, error) + ImageRemove(ctx context.Context, options types.ImageRemoveOptions) ([]types.ImageDelete, error) + ImageSearch(ctx context.Context, options types.ImageSearchOptions, privilegeFunc RequestPrivilegeFunc) ([]registry.SearchResult, error) ImageSave(ctx context.Context, imageIDs []string) (io.ReadCloser, error) - ImageTag(options types.ImageTagOptions) error - Info() (types.Info, error) - NetworkConnect(networkID, containerID string, config *network.EndpointSettings) error - NetworkCreate(options types.NetworkCreate) (types.NetworkCreateResponse, error) - NetworkDisconnect(networkID, containerID string, force bool) error - NetworkInspect(networkID string) (types.NetworkResource, error) - NetworkList(options types.NetworkListOptions) ([]types.NetworkResource, error) - NetworkRemove(networkID string) error - RegistryLogin(auth types.AuthConfig) (types.AuthResponse, error) - ServerVersion() (types.Version, error) - VolumeCreate(options types.VolumeCreateRequest) (types.Volume, error) - VolumeInspect(volumeID string) (types.Volume, error) - VolumeList(filter filters.Args) (types.VolumesListResponse, error) - VolumeRemove(volumeID string) error + ImageTag(ctx context.Context, options types.ImageTagOptions) error + Info(ctx context.Context) (types.Info, error) + NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error + NetworkCreate(ctx context.Context, options types.NetworkCreate) (types.NetworkCreateResponse, error) + NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error + NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error) + NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error) + NetworkRemove(ctx context.Context, networkID string) error + RegistryLogin(ctx context.Context, auth types.AuthConfig) (types.AuthResponse, error) + ServerVersion(ctx context.Context) (types.Version, error) + VolumeCreate(ctx context.Context, options types.VolumeCreateRequest) (types.Volume, error) + VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error) + VolumeList(ctx context.Context, filter filters.Args) (types.VolumesListResponse, error) + VolumeRemove(ctx context.Context, volumeID string) error } // Ensure that Client always implements APIClient. diff --git a/vendor/src/github.com/docker/engine-api/client/login.go b/vendor/src/github.com/docker/engine-api/client/login.go index 5ddcd5b9b488450b635ae09524880a9cb538e367..482f94789f08aa4ab0fddd20be0984c9993805d8 100644 --- a/vendor/src/github.com/docker/engine-api/client/login.go +++ b/vendor/src/github.com/docker/engine-api/client/login.go @@ -6,12 +6,13 @@ import ( "net/url" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // RegistryLogin authenticates the docker server with a given docker registry. // It returns UnauthorizerError when the authentication fails. -func (cli *Client) RegistryLogin(auth types.AuthConfig) (types.AuthResponse, error) { - resp, err := cli.post("/auth", url.Values{}, auth, nil) +func (cli *Client) RegistryLogin(ctx context.Context, auth types.AuthConfig) (types.AuthResponse, error) { + resp, err := cli.post(ctx, "/auth", url.Values{}, auth, nil) if resp != nil && resp.statusCode == http.StatusUnauthorized { return types.AuthResponse{}, unauthorizedError{err} diff --git a/vendor/src/github.com/docker/engine-api/client/network_connect.go b/vendor/src/github.com/docker/engine-api/client/network_connect.go index 103ab2b3f40acc231e8c79233c095d91b7695ec4..9a402a3e6384f358fc05d6b4fc53bbe7545aa97f 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_connect.go +++ b/vendor/src/github.com/docker/engine-api/client/network_connect.go @@ -3,15 +3,16 @@ package client import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/network" + "golang.org/x/net/context" ) // NetworkConnect connects a container to an existent network in the docker host. -func (cli *Client) NetworkConnect(networkID, containerID string, config *network.EndpointSettings) error { +func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error { nc := types.NetworkConnect{ Container: containerID, EndpointConfig: config, } - resp, err := cli.post("/networks/"+networkID+"/connect", nil, nc, nil) + resp, err := cli.post(ctx, "/networks/"+networkID+"/connect", nil, nc, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/network_create.go b/vendor/src/github.com/docker/engine-api/client/network_create.go index 39b249d8c6656984925228e6d0aa4e9188f824eb..2c41ad7ec463ea9f541a8a6bfa1c888c4b845c21 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_create.go +++ b/vendor/src/github.com/docker/engine-api/client/network_create.go @@ -4,12 +4,13 @@ import ( "encoding/json" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // NetworkCreate creates a new network in the docker host. -func (cli *Client) NetworkCreate(options types.NetworkCreate) (types.NetworkCreateResponse, error) { +func (cli *Client) NetworkCreate(ctx context.Context, options types.NetworkCreate) (types.NetworkCreateResponse, error) { var response types.NetworkCreateResponse - serverResp, err := cli.post("/networks/create", nil, options, nil) + serverResp, err := cli.post(ctx, "/networks/create", nil, options, nil) if err != nil { return response, err } diff --git a/vendor/src/github.com/docker/engine-api/client/network_disconnect.go b/vendor/src/github.com/docker/engine-api/client/network_disconnect.go index 3426a87bda02b222cd2c8de1d780f5b3637f3d54..a3e33672fef5945ee9e2e8fedebb96e632b32e4a 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_disconnect.go +++ b/vendor/src/github.com/docker/engine-api/client/network_disconnect.go @@ -2,12 +2,13 @@ package client import ( "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // NetworkDisconnect disconnects a container from an existent network in the docker host. -func (cli *Client) NetworkDisconnect(networkID, containerID string, force bool) error { +func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error { nd := types.NetworkDisconnect{Container: containerID, Force: force} - resp, err := cli.post("/networks/"+networkID+"/disconnect", nil, nd, nil) + resp, err := cli.post(ctx, "/networks/"+networkID+"/disconnect", nil, nd, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/network_inspect.go b/vendor/src/github.com/docker/engine-api/client/network_inspect.go index e79f2c24367724466debe07f79bc16461d2b908b..4f81e5ce40f78a0c2a4bf767d7ddad3a13e97c42 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_inspect.go +++ b/vendor/src/github.com/docker/engine-api/client/network_inspect.go @@ -5,12 +5,13 @@ import ( "net/http" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // NetworkInspect returns the information for a specific network configured in the docker host. -func (cli *Client) NetworkInspect(networkID string) (types.NetworkResource, error) { +func (cli *Client) NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error) { var networkResource types.NetworkResource - resp, err := cli.get("/networks/"+networkID, nil, nil) + resp, err := cli.get(ctx, "/networks/"+networkID, nil, nil) if err != nil { if resp.statusCode == http.StatusNotFound { return networkResource, networkNotFoundError{networkID} diff --git a/vendor/src/github.com/docker/engine-api/client/network_list.go b/vendor/src/github.com/docker/engine-api/client/network_list.go index df6d2e44c07eb7e99ecc36b26ee964b05f6bd742..813109c1802c0e3dfca681957f7c1a3ac318066f 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_list.go +++ b/vendor/src/github.com/docker/engine-api/client/network_list.go @@ -6,10 +6,11 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" + "golang.org/x/net/context" ) // NetworkList returns the list of networks configured in the docker host. -func (cli *Client) NetworkList(options types.NetworkListOptions) ([]types.NetworkResource, error) { +func (cli *Client) NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error) { query := url.Values{} if options.Filters.Len() > 0 { filterJSON, err := filters.ToParam(options.Filters) @@ -20,7 +21,7 @@ func (cli *Client) NetworkList(options types.NetworkListOptions) ([]types.Networ query.Set("filters", filterJSON) } var networkResources []types.NetworkResource - resp, err := cli.get("/networks", query, nil) + resp, err := cli.get(ctx, "/networks", query, nil) if err != nil { return networkResources, err } diff --git a/vendor/src/github.com/docker/engine-api/client/network_remove.go b/vendor/src/github.com/docker/engine-api/client/network_remove.go index 728fdc2211cc0034b4ada989cf4443d8b3de8b08..6bd6748924204ccfdb057c53fde2d6db1447029b 100644 --- a/vendor/src/github.com/docker/engine-api/client/network_remove.go +++ b/vendor/src/github.com/docker/engine-api/client/network_remove.go @@ -1,8 +1,10 @@ package client +import "golang.org/x/net/context" + // NetworkRemove removes an existent network from the docker host. -func (cli *Client) NetworkRemove(networkID string) error { - resp, err := cli.delete("/networks/"+networkID, nil, nil) +func (cli *Client) NetworkRemove(ctx context.Context, networkID string) error { + resp, err := cli.delete(ctx, "/networks/"+networkID, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/client/request.go b/vendor/src/github.com/docker/engine-api/client/request.go index 0432c73fce65435827c39ad5d8eec4ec565b7cad..f45182399c4ea0fda16d04b6e033b0afbee73410 100644 --- a/vendor/src/github.com/docker/engine-api/client/request.go +++ b/vendor/src/github.com/docker/engine-api/client/request.go @@ -11,7 +11,6 @@ import ( "strings" "github.com/docker/engine-api/client/transport/cancellable" - "golang.org/x/net/context" ) @@ -23,57 +22,41 @@ type serverResponse struct { } // head sends an http request to the docker API using the method HEAD. -func (cli *Client) head(path string, query url.Values, headers map[string][]string) (*serverResponse, error) { - return cli.sendRequest(context.Background(), "HEAD", path, query, nil, headers) -} - -// get sends an http request to the docker API using the method GET. -func (cli *Client) get(path string, query url.Values, headers map[string][]string) (*serverResponse, error) { - return cli.getWithContext(context.Background(), path, query, headers) +func (cli *Client) head(ctx context.Context, path string, query url.Values, headers map[string][]string) (*serverResponse, error) { + return cli.sendRequest(ctx, "HEAD", path, query, nil, headers) } // getWithContext sends an http request to the docker API using the method GET with a specific go context. -func (cli *Client) getWithContext(ctx context.Context, path string, query url.Values, headers map[string][]string) (*serverResponse, error) { +func (cli *Client) get(ctx context.Context, path string, query url.Values, headers map[string][]string) (*serverResponse, error) { return cli.sendRequest(ctx, "GET", path, query, nil, headers) } -// post sends an http request to the docker API using the method POST. -func (cli *Client) post(path string, query url.Values, body interface{}, headers map[string][]string) (*serverResponse, error) { - return cli.postWithContext(context.Background(), path, query, body, headers) -} - // postWithContext sends an http request to the docker API using the method POST with a specific go context. -func (cli *Client) postWithContext(ctx context.Context, path string, query url.Values, body interface{}, headers map[string][]string) (*serverResponse, error) { - return cli.sendRequest(ctx, "POST", path, query, body, headers) +func (cli *Client) post(ctx context.Context, path string, query url.Values, obj interface{}, headers map[string][]string) (*serverResponse, error) { + return cli.sendRequest(ctx, "POST", path, query, obj, headers) } -// postRaw sends the raw input to the docker API using the method POST with a specific go context. func (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (*serverResponse, error) { return cli.sendClientRequest(ctx, "POST", path, query, body, headers) } // put sends an http request to the docker API using the method PUT. -func (cli *Client) put(path string, query url.Values, body interface{}, headers map[string][]string) (*serverResponse, error) { - return cli.sendRequest(context.Background(), "PUT", path, query, body, headers) -} - -// putRaw sends the raw input to the docker API using the method PUT. -func (cli *Client) putRaw(path string, query url.Values, body io.Reader, headers map[string][]string) (*serverResponse, error) { - return cli.putRawWithContext(context.Background(), path, query, body, headers) +func (cli *Client) put(ctx context.Context, path string, query url.Values, obj interface{}, headers map[string][]string) (*serverResponse, error) { + return cli.sendRequest(ctx, "PUT", path, query, obj, headers) } -// putRawWithContext sends the raw input to the docker API using the method PUT with a specific go context. -func (cli *Client) putRawWithContext(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (*serverResponse, error) { +// put sends an http request to the docker API using the method PUT. +func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (*serverResponse, error) { return cli.sendClientRequest(ctx, "PUT", path, query, body, headers) } // delete sends an http request to the docker API using the method DELETE. -func (cli *Client) delete(path string, query url.Values, headers map[string][]string) (*serverResponse, error) { - return cli.sendRequest(context.Background(), "DELETE", path, query, nil, headers) +func (cli *Client) delete(ctx context.Context, path string, query url.Values, headers map[string][]string) (*serverResponse, error) { + return cli.sendRequest(ctx, "DELETE", path, query, nil, headers) } -func (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, body interface{}, headers map[string][]string) (*serverResponse, error) { - params, err := encodeData(body) +func (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, obj interface{}, headers map[string][]string) (*serverResponse, error) { + body, err := encodeData(obj) if err != nil { return nil, err } @@ -85,7 +68,7 @@ func (cli *Client) sendRequest(ctx context.Context, method, path string, query u headers["Content-Type"] = []string{"application/json"} } - return cli.sendClientRequest(ctx, method, path, query, params, headers) + return cli.sendClientRequest(ctx, method, path, query, body, headers) } func (cli *Client) sendClientRequest(ctx context.Context, method, path string, query url.Values, body io.Reader, headers map[string][]string) (*serverResponse, error) { diff --git a/vendor/src/github.com/docker/engine-api/client/transport/transport.go b/vendor/src/github.com/docker/engine-api/client/transport/transport.go index ff28af1855f65464edf2119af41ffdc12846bd7d..9e0095f3e426820f8d720f40207027ac1ed8f116 100644 --- a/vendor/src/github.com/docker/engine-api/client/transport/transport.go +++ b/vendor/src/github.com/docker/engine-api/client/transport/transport.go @@ -4,6 +4,7 @@ package transport import ( "fmt" "net/http" + "strings" "github.com/docker/go-connections/sockets" ) @@ -34,6 +35,10 @@ func NewTransportWithHTTP(proto, addr string, client *http.Client) (Client, erro } } + if transport.TLSClientConfig != nil && transport.TLSClientConfig.ServerName == "" { + transport.TLSClientConfig.ServerName = hostname(addr) + } + return &apiTransport{ Client: client, tlsInfo: &tlsInfo{transport.TLSClientConfig}, @@ -54,4 +59,12 @@ func defaultTransport(proto, addr string) *http.Transport { return tr } +func hostname(addr string) string { + colonPos := strings.LastIndex(addr, ":") + if colonPos == -1 { + return addr + } + return addr[:colonPos] +} + var _ Client = &apiTransport{} diff --git a/vendor/src/github.com/docker/engine-api/client/version.go b/vendor/src/github.com/docker/engine-api/client/version.go index 0e9ce61f6401cd06d29e33e693d4d63104cb2679..e037551a21b072587f5ebe7a403f267b92a84040 100644 --- a/vendor/src/github.com/docker/engine-api/client/version.go +++ b/vendor/src/github.com/docker/engine-api/client/version.go @@ -4,11 +4,12 @@ import ( "encoding/json" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // ServerVersion returns information of the docker client and server host. -func (cli *Client) ServerVersion() (types.Version, error) { - resp, err := cli.get("/version", nil, nil) +func (cli *Client) ServerVersion(ctx context.Context) (types.Version, error) { + resp, err := cli.get(ctx, "/version", nil, nil) if err != nil { return types.Version{}, err } diff --git a/vendor/src/github.com/docker/engine-api/client/volume_create.go b/vendor/src/github.com/docker/engine-api/client/volume_create.go index 98e8f796a32b8a003c3f3a51e0fc105d835dd94a..cc1e1c177231369f282dbe1f5445f2b22cc7f6d6 100644 --- a/vendor/src/github.com/docker/engine-api/client/volume_create.go +++ b/vendor/src/github.com/docker/engine-api/client/volume_create.go @@ -4,12 +4,13 @@ import ( "encoding/json" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // VolumeCreate creates a volume in the docker host. -func (cli *Client) VolumeCreate(options types.VolumeCreateRequest) (types.Volume, error) { +func (cli *Client) VolumeCreate(ctx context.Context, options types.VolumeCreateRequest) (types.Volume, error) { var volume types.Volume - resp, err := cli.post("/volumes/create", nil, options, nil) + resp, err := cli.post(ctx, "/volumes/create", nil, options, nil) if err != nil { return volume, err } diff --git a/vendor/src/github.com/docker/engine-api/client/volume_inspect.go b/vendor/src/github.com/docker/engine-api/client/volume_inspect.go index dbd8444800f5c2213d12fd45cad962c6ddd06368..4bf4a7b084adb33d9518678c6bf882d6f31e7d7b 100644 --- a/vendor/src/github.com/docker/engine-api/client/volume_inspect.go +++ b/vendor/src/github.com/docker/engine-api/client/volume_inspect.go @@ -5,12 +5,13 @@ import ( "net/http" "github.com/docker/engine-api/types" + "golang.org/x/net/context" ) // VolumeInspect returns the information about a specific volume in the docker host. -func (cli *Client) VolumeInspect(volumeID string) (types.Volume, error) { +func (cli *Client) VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error) { var volume types.Volume - resp, err := cli.get("/volumes/"+volumeID, nil, nil) + resp, err := cli.get(ctx, "/volumes/"+volumeID, nil, nil) if err != nil { if resp.statusCode == http.StatusNotFound { return volume, volumeNotFoundError{volumeID} diff --git a/vendor/src/github.com/docker/engine-api/client/volume_list.go b/vendor/src/github.com/docker/engine-api/client/volume_list.go index 6659bc39e2775c5e92e14c1c71bb6d32f2e5567d..bb4c40d5f9815d3aadc4e7a5741780f45d266d02 100644 --- a/vendor/src/github.com/docker/engine-api/client/volume_list.go +++ b/vendor/src/github.com/docker/engine-api/client/volume_list.go @@ -6,10 +6,11 @@ import ( "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" + "golang.org/x/net/context" ) // VolumeList returns the volumes configured in the docker host. -func (cli *Client) VolumeList(filter filters.Args) (types.VolumesListResponse, error) { +func (cli *Client) VolumeList(ctx context.Context, filter filters.Args) (types.VolumesListResponse, error) { var volumes types.VolumesListResponse query := url.Values{} @@ -20,7 +21,7 @@ func (cli *Client) VolumeList(filter filters.Args) (types.VolumesListResponse, e } query.Set("filters", filterJSON) } - resp, err := cli.get("/volumes", query, nil) + resp, err := cli.get(ctx, "/volumes", query, nil) if err != nil { return volumes, err } diff --git a/vendor/src/github.com/docker/engine-api/client/volume_remove.go b/vendor/src/github.com/docker/engine-api/client/volume_remove.go index a8bd612de0a8ee46b556ce5e31aa7bfc300292d5..0dce24c79b844ef6fb091a9d04427d4a4b337749 100644 --- a/vendor/src/github.com/docker/engine-api/client/volume_remove.go +++ b/vendor/src/github.com/docker/engine-api/client/volume_remove.go @@ -1,8 +1,10 @@ package client +import "golang.org/x/net/context" + // VolumeRemove removes a volume from the docker host. -func (cli *Client) VolumeRemove(volumeID string) error { - resp, err := cli.delete("/volumes/"+volumeID, nil, nil) +func (cli *Client) VolumeRemove(ctx context.Context, volumeID string) error { + resp, err := cli.delete(ctx, "/volumes/"+volumeID, nil, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/src/github.com/docker/engine-api/types/container/host_config.go b/vendor/src/github.com/docker/engine-api/types/container/host_config.go index f8b984229582a306a3b40466d026fadee7de8627..a1b503f862585200b90fa606c427c2d15773a79c 100644 --- a/vendor/src/github.com/docker/engine-api/types/container/host_config.go +++ b/vendor/src/github.com/docker/engine-api/types/container/host_config.go @@ -89,6 +89,27 @@ func (n UsernsMode) Valid() bool { return true } +// Cgroup Spec represents the cgroup to use for the container. +type CgroupSpec string + +func (c CgroupSpec) IsContainer() bool { + parts := strings.SplitN(string(c), ":", 2) + return len(parts) > 1 && parts[0] == "container" +} + +func (c CgroupSpec) Valid() bool { + return c.IsContainer() || c == "" +} + +// Container returns the name of the container whose cgroup will be used. +func (c CgroupSpec) Container() string { + parts := strings.SplitN(string(c), ":", 2) + if len(parts) > 1 { + return parts[1] + } + return "" +} + // UTSMode represents the UTS namespace of the container. type UTSMode string @@ -215,6 +236,8 @@ type Resources struct { Ulimits []*units.Ulimit // List of ulimits to be set in the container // Applicable to Windows + CPUCount int64 `json:"CpuCount"` // CPU count + CPUPercent int64 `json:"CpuPercent"` // CPU percent BlkioIOps uint64 // Maximum IOps for the container system drive BlkioBps uint64 // Maximum Bytes per second for the container system drive SandboxSize uint64 // System drive will be expanded to at least this size (in bytes) @@ -252,6 +275,7 @@ type HostConfig struct { ExtraHosts []string // List of extra hosts GroupAdd []string // List of additional groups that the container process will run as IpcMode IpcMode // IPC namespace to use for the container + Cgroup CgroupSpec // Cgroup to use for the container Links []string // List of links (in the name:alias form) OomScoreAdj int // Container preference for OOM-killing PidMode PidMode // PID namespace to use for the container @@ -259,7 +283,7 @@ type HostConfig struct { PublishAllPorts bool // Should docker publish all exposed port for the container ReadonlyRootfs bool // Is the container root filesystem in read-only SecurityOpt []string // List of string values to customize labels for MLS systems, such as SELinux. - StorageOpt []string // Storage driver options per container. + StorageOpt map[string]string // Storage driver options per container. Tmpfs map[string]string `json:",omitempty"` // List of tmpfs (mounts) used for the container UTSMode UTSMode // UTS namespace to use for the container UsernsMode UsernsMode // The user namespace to use for the container