Update code for latest engine-api

- Update CopyToContainer uses
- Use engine-api/types/versions instead of pkg/version

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 7534f17261d0bb74557ca2f7cd893d5b7b531d49
Component: engine
This commit is contained in:
Vincent Demeester
2016-04-19 16:56:54 +02:00
parent f4a20799d2
commit 03d17b8c5f
20 changed files with 51 additions and 56 deletions

View File

@ -10,7 +10,6 @@ import (
"golang.org/x/net/context"
"github.com/docker/docker/api"
"github.com/docker/docker/pkg/version"
)
// APIVersionKey is the client's requested API version.
@ -95,7 +94,7 @@ func WriteJSON(w http.ResponseWriter, code int, v interface{}) error {
// VersionFromContext returns an API version from the context using APIVersionKey.
// It panics if the context value does not have version.Version type.
func VersionFromContext(ctx context.Context) (ver version.Version) {
func VersionFromContext(ctx context.Context) (ver string) {
if ctx == nil {
return
}
@ -103,5 +102,5 @@ func VersionFromContext(ctx context.Context) (ver version.Version) {
if val == nil {
return
}
return val.(version.Version)
return val.(string)
}

View File

@ -6,19 +6,19 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/version"
"github.com/docker/engine-api/types/versions"
"golang.org/x/net/context"
)
// UserAgentMiddleware is a middleware that
// validates the client user-agent.
type UserAgentMiddleware struct {
serverVersion version.Version
serverVersion string
}
// NewUserAgentMiddleware creates a new UserAgentMiddleware
// with the server version.
func NewUserAgentMiddleware(s version.Version) UserAgentMiddleware {
func NewUserAgentMiddleware(s string) UserAgentMiddleware {
return UserAgentMiddleware{
serverVersion: s,
}
@ -38,7 +38,7 @@ func (u UserAgentMiddleware) WrapHandler(handler func(ctx context.Context, w htt
userAgent[1] = strings.Split(userAgent[1], " ")[0]
}
if len(userAgent) == 2 && !u.serverVersion.Equal(version.Version(userAgent[1])) {
if len(userAgent) == 2 && !versions.Equal(u.serverVersion, userAgent[1]) {
logrus.Debugf("Client and server don't have the same version (client: %s, server: %s)", userAgent[1], u.serverVersion)
}
}

View File

@ -5,7 +5,7 @@ import (
"net/http"
"runtime"
"github.com/docker/docker/pkg/version"
"github.com/docker/engine-api/types/versions"
"golang.org/x/net/context"
)
@ -20,14 +20,14 @@ func (badRequestError) HTTPErrorStatusCode() int {
// VersionMiddleware is a middleware that
// validates the client and server versions.
type VersionMiddleware struct {
serverVersion version.Version
defaultVersion version.Version
minVersion version.Version
serverVersion string
defaultVersion string
minVersion string
}
// NewVersionMiddleware creates a new VersionMiddleware
// with the default versions.
func NewVersionMiddleware(s, d, m version.Version) VersionMiddleware {
func NewVersionMiddleware(s, d, m string) VersionMiddleware {
return VersionMiddleware{
serverVersion: s,
defaultVersion: d,
@ -38,15 +38,15 @@ func NewVersionMiddleware(s, d, m version.Version) VersionMiddleware {
// WrapHandler returns a new handler function wrapping the previous one in the request chain.
func (v VersionMiddleware) WrapHandler(handler func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error) func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
apiVersion := version.Version(vars["version"])
apiVersion := vars["version"]
if apiVersion == "" {
apiVersion = v.defaultVersion
}
if apiVersion.GreaterThan(v.defaultVersion) {
if versions.GreaterThan(apiVersion, v.defaultVersion) {
return badRequestError{fmt.Errorf("client is newer than server (client API version: %s, server API version: %s)", apiVersion, v.defaultVersion)}
}
if apiVersion.LessThan(v.minVersion) {
if versions.LessThan(apiVersion, v.minVersion) {
return badRequestError{fmt.Errorf("client version %s is too old. Minimum supported API version is %s, please upgrade your client to a newer version", apiVersion, v.minVersion)}
}

View File

@ -7,7 +7,6 @@ import (
"testing"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
@ -19,8 +18,8 @@ func TestVersionMiddleware(t *testing.T) {
return nil
}
defaultVersion := version.Version("1.10.0")
minVersion := version.Version("1.2.0")
defaultVersion := "1.10.0"
minVersion := "1.2.0"
m := NewVersionMiddleware(defaultVersion, defaultVersion, minVersion)
h := m.WrapHandler(handler)
@ -40,8 +39,8 @@ func TestVersionMiddlewareWithErrors(t *testing.T) {
return nil
}
defaultVersion := version.Version("1.10.0")
minVersion := version.Version("1.2.0")
defaultVersion := "1.10.0"
minVersion := "1.2.0"
m := NewVersionMiddleware(defaultVersion, defaultVersion, minVersion)
h := m.WrapHandler(handler)

View File

@ -19,6 +19,7 @@ import (
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/engine-api/types/versions"
"github.com/docker/go-units"
"golang.org/x/net/context"
)
@ -26,14 +27,14 @@ import (
func newImageBuildOptions(ctx context.Context, r *http.Request) (*types.ImageBuildOptions, error) {
version := httputils.VersionFromContext(ctx)
options := &types.ImageBuildOptions{}
if httputils.BoolValue(r, "forcerm") && version.GreaterThanOrEqualTo("1.12") {
if httputils.BoolValue(r, "forcerm") && versions.GreaterThanOrEqualTo(version, "1.12") {
options.Remove = true
} else if r.FormValue("rm") == "" && version.GreaterThanOrEqualTo("1.12") {
} else if r.FormValue("rm") == "" && versions.GreaterThanOrEqualTo(version, "1.12") {
options.Remove = true
} else {
options.Remove = httputils.BoolValue(r, "rm")
}
if httputils.BoolValue(r, "pull") && version.GreaterThanOrEqualTo("1.16") {
if httputils.BoolValue(r, "pull") && versions.GreaterThanOrEqualTo(version, "1.16") {
options.PullParent = true
}

View File

@ -8,7 +8,6 @@ import (
"github.com/docker/docker/api/types/backend"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/version"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
)
@ -50,7 +49,7 @@ type stateBackend interface {
// monitorBackend includes functions to implement to provide containers monitoring functionality.
type monitorBackend interface {
ContainerChanges(name string) ([]archive.Change, error)
ContainerInspect(name string, size bool, version version.Version) (interface{}, error)
ContainerInspect(name string, size bool, version string) (interface{}, error)
ContainerLogs(ctx context.Context, name string, config *backend.ContainerLogsConfig, started chan struct{}) error
ContainerStats(ctx context.Context, name string, config *backend.ContainerStatsConfig) error
ContainerTop(name string, psArgs string) (*types.ContainerProcessList, error)

View File

@ -18,6 +18,7 @@ import (
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/engine-api/types/filters"
"github.com/docker/engine-api/types/versions"
"golang.org/x/net/context"
"golang.org/x/net/websocket"
)
@ -195,7 +196,7 @@ func (s *containerRouter) postContainersKill(ctx context.Context, w http.Respons
// Return error if the container is not running and the api is >= 1.20
// to keep backwards compatibility.
version := httputils.VersionFromContext(ctx)
if version.GreaterThanOrEqualTo("1.20") || !isStopped {
if versions.GreaterThanOrEqualTo(version, "1.20") || !isStopped {
return fmt.Errorf("Cannot kill container %s: %v", name, err)
}
}
@ -341,7 +342,7 @@ func (s *containerRouter) postContainersCreate(ctx context.Context, w http.Respo
return err
}
version := httputils.VersionFromContext(ctx)
adjustCPUShares := version.LessThan("1.19")
adjustCPUShares := versions.LessThan(version, "1.19")
ccr, err := s.backend.ContainerCreate(types.ContainerCreateConfig{
Name: name,

View File

@ -11,6 +11,7 @@ import (
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/versions"
"golang.org/x/net/context"
)
@ -60,7 +61,7 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res
}
version := httputils.VersionFromContext(ctx)
if version.GreaterThan("1.21") {
if versions.GreaterThan(version, "1.21") {
if err := httputils.CheckForJSON(r); err != nil {
return err
}

View File

@ -16,6 +16,7 @@ import (
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/engine-api/types/versions"
"golang.org/x/net/context"
)
@ -32,7 +33,7 @@ func (s *imageRouter) postCommit(ctx context.Context, w http.ResponseWriter, r *
pause := httputils.BoolValue(r, "pause")
version := httputils.VersionFromContext(ctx)
if r.FormValue("pause") == "" && version.GreaterThanOrEqualTo("1.13") {
if r.FormValue("pause") == "" && versions.GreaterThanOrEqualTo(version, "1.13") {
pause = true
}

View File

@ -39,7 +39,7 @@ func (s *systemRouter) getInfo(ctx context.Context, w http.ResponseWriter, r *ht
func (s *systemRouter) getVersion(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
info := s.backend.SystemVersion()
info.APIVersion = api.DefaultVersion.String()
info.APIVersion = api.DefaultVersion
return httputils.WriteJSON(w, http.StatusOK, info)
}

View File

@ -9,7 +9,6 @@ import (
"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/server/middleware"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
@ -22,7 +21,7 @@ func TestMiddlewares(t *testing.T) {
cfg: cfg,
}
srv.UseMiddleware(middleware.NewVersionMiddleware(version.Version("0.1omega2"), api.DefaultVersion, api.MinVersion))
srv.UseMiddleware(middleware.NewVersionMiddleware("0.1omega2", api.DefaultVersion, api.MinVersion))
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()