From 93c8cd4a54b7091cd0f7f504c4cd106757e66b2f Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Wed, 27 Sep 2017 18:12:13 -0700 Subject: [PATCH 1/3] Fix version comparison when negotiating the the API version Signed-off-by: Yu-Ju Hong (cherry picked from commit 4b6ec10b07c14e7fff1cc51156b6d954147f826f) Signed-off-by: Sebastiaan van Stijn --- components/engine/client/client.go | 4 ++-- components/engine/client/client_test.go | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/components/engine/client/client.go b/components/engine/client/client.go index f7a8c07d3a..3f470dea66 100644 --- a/components/engine/client/client.go +++ b/components/engine/client/client.go @@ -266,8 +266,8 @@ func (cli *Client) NegotiateAPIVersionPing(p types.Ping) { cli.version = api.DefaultVersion } - // if server version is lower than the maximum version supported by the Client, downgrade - if versions.LessThan(p.APIVersion, api.DefaultVersion) { + // if server version is lower than the client version, downgrade + if versions.LessThan(p.APIVersion, cli.version) { cli.version = p.APIVersion } } diff --git a/components/engine/client/client_test.go b/components/engine/client/client_test.go index bc911c0c4a..5ff08eb59d 100644 --- a/components/engine/client/client_test.go +++ b/components/engine/client/client_test.go @@ -245,6 +245,14 @@ func TestNegotiateAPIVersion(t *testing.T) { // test downgrade client.NegotiateAPIVersionPing(ping) assert.Equal(t, expected, client.version) + + // set the client version to something older, and verify that we keep the + // original setting. + expected = "1.20" + client.version = expected + client.NegotiateAPIVersionPing(ping) + assert.Equal(t, expected, client.version) + } // TestNegotiateAPIVersionOverride asserts that we honor From 7da03c8e7c49e6e3024a320dcf17d37618af0265 Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Wed, 27 Sep 2017 18:12:13 -0700 Subject: [PATCH 2/3] Fix version comparison when negotiating the the API version Signed-off-by: Yu-Ju Hong Signed-off-by: Sebastiaan van Stijn --- .../cli/vendor/github.com/docker/docker/client/client.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/cli/vendor/github.com/docker/docker/client/client.go b/components/cli/vendor/github.com/docker/docker/client/client.go index 2072b2f806..893124853f 100644 --- a/components/cli/vendor/github.com/docker/docker/client/client.go +++ b/components/cli/vendor/github.com/docker/docker/client/client.go @@ -248,8 +248,8 @@ func (cli *Client) NegotiateAPIVersionPing(p types.Ping) { cli.version = api.DefaultVersion } - // if server version is lower than the maximum version supported by the Client, downgrade - if versions.LessThan(p.APIVersion, api.DefaultVersion) { + // if server version is lower than the client version, downgrade + if versions.LessThan(p.APIVersion, cli.version) { cli.version = p.APIVersion } } From bea7b88e4b4396b5d2aec9848f4c1a49d174fa31 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 29 Nov 2017 15:54:49 -0800 Subject: [PATCH 3/3] Override github.com/docker/docker in vendor.conf Signed-off-by: Sebastiaan van Stijn --- components/cli/vendor.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/cli/vendor.conf b/components/cli/vendor.conf index a681cf8ade..a6cd268af2 100755 --- a/components/cli/vendor.conf +++ b/components/cli/vendor.conf @@ -4,7 +4,9 @@ github.com/coreos/etcd 824277cb3a577a0e8c829ca9ec557b973fe06d20 github.com/cpuguy83/go-md2man a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa github.com/davecgh/go-spew 346938d642f2ec3594ed81d874461961cd0faa76 github.com/docker/distribution edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c -github.com/docker/docker 84144a8c66c1bb2af8fa997288f51ef2719971b4 + +# github.com/docker/docker has https://github.com/moby/moby/pull/35008/commits/4b6ec10b07c14e7fff1cc51156b6d954147f826f applied +#github.com/docker/docker 84144a8c66c1bb2af8fa997288f51ef2719971b4 github.com/docker/docker-credential-helpers v0.5.1 # the docker/go package contains a customized version of canonical/json