diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 6eecef0d6a3f2..f5a58b21b6d8a 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -225,7 +225,7 @@ }, { "ImportPath": "github.com/codegangsta/negroni", - "Comment": "v0.1-62-g8d75e11", + "Comment": "v0.1.0-62-g8d75e11", "Rev": "8d75e11374a1928608c906fe745b538483e7aeb2" }, { @@ -642,68 +642,68 @@ }, { "ImportPath": "github.com/docker/engine-api/client", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/client/transport", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/client/transport/cancellable", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/blkiodev", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/container", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/filters", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/network", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/reference", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/registry", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/strslice", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/time", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/engine-api/types/versions", - "Comment": "v0.3.1-62-g3d72d39", - "Rev": "3d72d392d07bece8d7d7b2a3b6b2e57c2df376a2" + "Comment": "v0.3.1-78-gdea108d", + "Rev": "dea108d3aa0c67d7162a3fd8aa65f38a430019fd" }, { "ImportPath": "github.com/docker/go-connections/nat", @@ -2123,18 +2123,22 @@ }, { "ImportPath": "gopkg.in/gcfg.v1", + "Comment": "v1.0.0", "Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" }, { "ImportPath": "gopkg.in/gcfg.v1/scanner", + "Comment": "v1.0.0", "Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" }, { "ImportPath": "gopkg.in/gcfg.v1/token", + "Comment": "v1.0.0", "Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" }, { "ImportPath": "gopkg.in/gcfg.v1/types", + "Comment": "v1.0.0", "Rev": "083575c3955c85df16fe9590cceab64d03f5eb6e" }, { diff --git a/vendor/github.com/docker/engine-api/client/container_logs.go b/vendor/github.com/docker/engine-api/client/container_logs.go index 9699ac7dde900..08b9b91876499 100644 --- a/vendor/github.com/docker/engine-api/client/container_logs.go +++ b/vendor/github.com/docker/engine-api/client/container_logs.go @@ -35,6 +35,10 @@ func (cli *Client) ContainerLogs(ctx context.Context, container string, options query.Set("timestamps", "1") } + if options.Details { + query.Set("details", "1") + } + if options.Follow { query.Set("follow", "1") } diff --git a/vendor/github.com/docker/engine-api/client/image_load.go b/vendor/github.com/docker/engine-api/client/image_load.go index 84ee19c309939..72f55fdc01525 100644 --- a/vendor/github.com/docker/engine-api/client/image_load.go +++ b/vendor/github.com/docker/engine-api/client/image_load.go @@ -10,8 +10,8 @@ import ( ) // ImageLoad loads an image in the docker host from the client host. -// It's up to the caller to close the io.ReadCloser returned by -// this function. +// It's up to the caller to close the io.ReadCloser in the +// ImageLoadResponse returned by this function. func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) { v := url.Values{} v.Set("quiet", "0") diff --git a/vendor/github.com/docker/engine-api/client/image_pull.go b/vendor/github.com/docker/engine-api/client/image_pull.go index 0584f00bd40a6..e2c49ec52b147 100644 --- a/vendor/github.com/docker/engine-api/client/image_pull.go +++ b/vendor/github.com/docker/engine-api/client/image_pull.go @@ -27,12 +27,12 @@ func (cli *Client) ImagePull(ctx context.Context, ref string, options types.Imag query := url.Values{} query.Set("fromImage", repository) - if tag != "" { + if tag != "" && !options.All { query.Set("tag", tag) } resp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth) - if resp.statusCode == http.StatusUnauthorized { + if resp.statusCode == http.StatusUnauthorized && options.PrivilegeFunc != nil { newAuthHeader, privilegeErr := options.PrivilegeFunc() if privilegeErr != nil { return nil, privilegeErr diff --git a/vendor/github.com/docker/engine-api/client/image_push.go b/vendor/github.com/docker/engine-api/client/image_push.go index 8134f8018cfda..9c837a76d12c9 100644 --- a/vendor/github.com/docker/engine-api/client/image_push.go +++ b/vendor/github.com/docker/engine-api/client/image_push.go @@ -10,7 +10,6 @@ import ( distreference "github.com/docker/distribution/reference" "github.com/docker/engine-api/types" - "github.com/docker/engine-api/types/reference" ) // ImagePush requests the docker host to push an image to a remote registry. @@ -27,7 +26,10 @@ func (cli *Client) ImagePush(ctx context.Context, ref string, options types.Imag return nil, errors.New("cannot push a digest reference") } - tag := reference.GetTagFromNamedRef(distributionRef) + var tag = "" + if nameTaggedRef, isNamedTagged := distributionRef.(distreference.NamedTagged); isNamedTagged { + tag = nameTaggedRef.Tag() + } query := url.Values{} query.Set("tag", tag) diff --git a/vendor/github.com/docker/engine-api/client/image_search.go b/vendor/github.com/docker/engine-api/client/image_search.go index 3528bda6bd80a..571ba3df36591 100644 --- a/vendor/github.com/docker/engine-api/client/image_search.go +++ b/vendor/github.com/docker/engine-api/client/image_search.go @@ -6,6 +6,7 @@ import ( "net/url" "github.com/docker/engine-api/types" + "github.com/docker/engine-api/types/filters" "github.com/docker/engine-api/types/registry" "golang.org/x/net/context" ) @@ -17,6 +18,14 @@ func (cli *Client) ImageSearch(ctx context.Context, term string, options types.I query := url.Values{} query.Set("term", term) + if options.Filters.Len() > 0 { + filterJSON, err := filters.ToParam(options.Filters) + if err != nil { + return results, err + } + query.Set("filters", filterJSON) + } + resp, err := cli.tryImageSearch(ctx, query, options.RegistryAuth) if resp.statusCode == http.StatusUnauthorized { newAuthHeader, privilegeErr := options.PrivilegeFunc() diff --git a/vendor/github.com/docker/engine-api/types/client.go b/vendor/github.com/docker/engine-api/types/client.go index a3453414901f9..fa3b2cfb458ca 100644 --- a/vendor/github.com/docker/engine-api/types/client.go +++ b/vendor/github.com/docker/engine-api/types/client.go @@ -57,6 +57,7 @@ type ContainerLogsOptions struct { Timestamps bool Follow bool Tail string + Details bool } // ContainerRemoveOptions holds parameters to remove containers. @@ -172,12 +173,14 @@ type ImageListOptions struct { // ImageLoadResponse returns information to the client about a load process. type ImageLoadResponse struct { + // Body must be closed to avoid a resource leak Body io.ReadCloser JSON bool } // ImagePullOptions holds information to pull images. type ImagePullOptions struct { + All bool RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry PrivilegeFunc RequestPrivilegeFunc } @@ -203,6 +206,7 @@ type ImageRemoveOptions struct { type ImageSearchOptions struct { RegistryAuth string PrivilegeFunc RequestPrivilegeFunc + Filters filters.Args } // ImageTagOptions holds parameters to tag an image diff --git a/vendor/github.com/docker/engine-api/types/container/host_config.go b/vendor/github.com/docker/engine-api/types/container/host_config.go index 39f6a225169ff..2446c1904d8aa 100644 --- a/vendor/github.com/docker/engine-api/types/container/host_config.go +++ b/vendor/github.com/docker/engine-api/types/container/host_config.go @@ -136,30 +136,49 @@ func (n UTSMode) Valid() bool { return true } -// PidMode represents the pid stack of the container. +// PidMode represents the pid namespace of the container. type PidMode string -// IsPrivate indicates whether the container uses its private pid stack. +// IsPrivate indicates whether the container uses its own new pid namespace. func (n PidMode) IsPrivate() bool { - return !(n.IsHost()) + return !(n.IsHost() || n.IsContainer()) } -// IsHost indicates whether the container uses the host's pid stack. +// IsHost indicates whether the container uses the host's pid namespace. func (n PidMode) IsHost() bool { return n == "host" } -// Valid indicates whether the pid stack is valid. +// IsContainer indicates whether the container uses a container's pid namespace. +func (n PidMode) IsContainer() bool { + parts := strings.SplitN(string(n), ":", 2) + return len(parts) > 1 && parts[0] == "container" +} + +// Valid indicates whether the pid namespace is valid. func (n PidMode) Valid() bool { parts := strings.Split(string(n), ":") switch mode := parts[0]; mode { case "", "host": + case "container": + if len(parts) != 2 || parts[1] == "" { + return false + } default: return false } return true } +// Container returns the name of the container whose pid namespace is going to be used. +func (n PidMode) Container() string { + parts := strings.SplitN(string(n), ":", 2) + if len(parts) > 1 { + return parts[1] + } + return "" +} + // DeviceMapping represents the device mapping between the host and the container. type DeviceMapping struct { PathOnHost string diff --git a/vendor/github.com/docker/engine-api/types/reference/image_reference.go b/vendor/github.com/docker/engine-api/types/reference/image_reference.go index 74201582060c6..be9cf8ebed093 100644 --- a/vendor/github.com/docker/engine-api/types/reference/image_reference.go +++ b/vendor/github.com/docker/engine-api/types/reference/image_reference.go @@ -27,6 +27,8 @@ func GetTagFromNamedRef(ref distreference.Named) string { tag = x.Digest().String() case distreference.NamedTagged: tag = x.Tag() + default: + tag = "latest" } return tag } diff --git a/vendor/github.com/docker/engine-api/types/registry/registry.go b/vendor/github.com/docker/engine-api/types/registry/registry.go index 8a6fe70ea7d41..d2aca6f024b5c 100644 --- a/vendor/github.com/docker/engine-api/types/registry/registry.go +++ b/vendor/github.com/docker/engine-api/types/registry/registry.go @@ -78,12 +78,10 @@ type IndexInfo struct { type SearchResult struct { // StarCount indicates the number of stars this repository has StarCount int `json:"star_count"` - // IsOfficial indicates whether the result is an official repository or not + // IsOfficial is true if the result is from an official repository. IsOfficial bool `json:"is_official"` // Name is the name of the repository Name string `json:"name"` - // IsTrusted indicates whether the result is trusted - IsTrusted bool `json:"is_trusted"` // IsAutomated indicates whether the result is automated IsAutomated bool `json:"is_automated"` // Description is a textual description of the repository diff --git a/vendor/github.com/docker/engine-api/types/types.go b/vendor/github.com/docker/engine-api/types/types.go index 406b561a6e599..cb2dc9ac9d776 100644 --- a/vendor/github.com/docker/engine-api/types/types.go +++ b/vendor/github.com/docker/engine-api/types/types.go @@ -395,6 +395,7 @@ type Volume struct { Mountpoint string // Mountpoint is the location on disk of the volume Status map[string]interface{} `json:",omitempty"` // Status provides low-level status information about the volume Labels map[string]string // Labels is metadata specific to the volume + Scope string // Scope describes the level at which the volume exists (e.g. `global` for cluster-wide or `local` for machine level) } // VolumesListResponse contains the response for the remote API: