mirror of https://github.com/k3s-io/k3s
Merge pull request #29144 from ronnielai/test1
Automatic merge from submit-queue Update docker engine-api to dea108d3aa #29129pull/6/head
commit
d097790b95
|
@ -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"
|
||||
},
|
||||
{
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue