Commit Graph
33678 Commits
Author SHA1 Message Date
Sebastiaan van Stijn efe89988fe Return 400 error if API client is too new
Commit e98e4a71110fd33852bb755a9b8b4ebc9df904db implemented API version
negotiation using the `/_ping` endpoint. In that change, URL validation for the
maximum supported API version was removed from the API server (validation for
the _minimum_ version was kept in place).

With this feature, clients that support version negotiation would negotiate the
maximum version supported by the daemon, and downgrade to an older API version
if the client's default API version is not supported.

However, clients that do _not_ support version negotiation can call API versions
that are higher than the maximum supported version. Due to the missing version
check, this is silently ignored, and the daemon's default API version is used.

This is a problem, because the actual API version in use is non-deterministic;
for example, calling `/v9999.9999/version` on a daemon that runs API v1.34 will
use API v1.34, but calling the same URL on an older daemon may use API version
v1.24.

This patch reverts the removal of the API check for maximum supported versions.
The documentation has been updated accordingly

Before this patch is applied, the daemon returns a 200 (success):

    $ curl -v --unix-socket /var/run/docker.sock http://localhost/v9999.9999/version
    *   Trying /var/run/docker.sock...
    * Connected to localhost (/Users/sebastiaan/Library/Containers/com.dock) port 80 (#0)
    > GET /v9999.9999/version HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Api-Version: 1.32
    < Content-Length: 240
    < Content-Type: application/json
    < Date: Tue, 10 Oct 2017 09:11:29 GMT
    < Docker-Experimental: true
    < Ostype: linux
    < Server: Docker/17.09.0-ce (linux)
    <
    {"Version":"17.09.0-ce","ApiVersion":"1.32","MinAPIVersion":"1.12","GitCommit":"afdb6d4","GoVersion":"go1.8.3","Os":"linux","Arch":"amd64","KernelVersion":"4.9.49-moby","Experimental":true,"BuildTime":"2017-09-26T22:45:38.000000000+00:00"}
    * Connection #0 to host localhost left intact

After this patch is applied, a 400 (Bad Request) is returned:

    $ curl -v --unix-socket /var/run/docker.sock http://localhost/v9999.9999/version
    *   Trying /var/run/docker.sock...
    * Connected to localhost (/var/run/docker.sock) port 80 (#0)
    > GET /v9999.9999/info HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.52.1
    > Accept: */*
    >
    < HTTP/1.1 400 Bad Request
    < Content-Type: application/json
    < Date: Tue, 10 Oct 2017 08:08:34 GMT
    < Content-Length: 89
    <
    {"message":"client version 9999.9999 is too new. Maximim supported API version is 1.34"}
    * Curl_http_done: called premature == 0
    * Connection #0 to host localhost left intact

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 01f9227ec9116b3969cb0725787e43a5fa26aac2
Component: engine
2017-10-10 11:17:48 +02:00
John Howard c4c23db3b4 Merge pull request #35117 from johnstep/fix-windows-manifest-lists
Stop filtering Windows manifest lists by version
Upstream-commit: 9ed0922683779a65bf729bcc2efef73d7536e543
Component: engine
2017-10-09 20:46:01 -07:00
Yong Tang 388f100559 Merge pull request #35103 from abhi/master
Modifying integration test due to new ipam options in swarmkit
Upstream-commit: 9b8203c09678fd06aebb97e9418ca7f8ea0805ba
Component: engine
2017-10-09 19:32:41 -07:00
Abhinandan Prativadi 6cafcfb61b Vendoring libnetwork and swarmkit
Signed-off-by: Abhinandan Prativadi <abhi@docker.com>
Upstream-commit: 2083121b0923dd084fc92873648b7ce74f725da5
Component: engine
2017-10-09 13:08:03 -07:00
Yong Tang 0772688cf2 Merge pull request #35138 from vdemeester/foo
Carry 35078 : Fix TestErrorCases to run all tests
Upstream-commit: 513f0e6c26cfac31d41a1eb249758907950cb7be
Component: engine
2017-10-09 12:16:16 -07:00
Yong Tang 9de8f7c5a8 Merge pull request #35129 from thaJeztah/add-content-length-headers
API docs: add information about Content-Length header
Upstream-commit: d9cd40d58bef2f607d4a798c99eb98cf56aab112
Component: engine
2017-10-09 06:42:54 -07:00
John Howard 4d1cde4541 Fix TestErrorCases to run all tests
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: d2c41f06c36dc24b2170fef365563d64cc5bd8ec
Component: engine
2017-10-09 15:15:58 +02:00
Sebastiaan van Stijn 9b23ae7d55 API docs: add information about Content-Length header
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: a249ec36dd75df0fffa5d22f98422f778c60126e
Component: engine
2017-10-09 01:43:10 +02:00
Sebastiaan van Stijn 0fea1e1271 Merge pull request #35086 from friederbluemle/fix-github-spelling
Fix GitHub spelling
Upstream-commit: 97575ecda9bce64b12ead7b588da7acebb01fa22
Component: engine
2017-10-08 23:21:26 +02:00
John Stephens 5fecfe49b1 Stop filtering Windows manifest lists by version
Signed-off-by: John Stephens <johnstep@docker.com>
Upstream-commit: 8ed8f4a71d7e1a936fa077b4348b7375c81746a6
Component: engine
2017-10-06 22:37:31 -07:00
John Stephens a08850286d Merge pull request #34642 from Microsoft/jjh/add-platform-to-api
LCOW: API: Add `platform` to /images/create and /build
Upstream-commit: a3efe9722f34af5cf4443fe3a5c4e4e3e0457b54
Component: engine
2017-10-06 22:17:17 -07:00
John Howard 3d973055bf LCOW: API change JSON header to string POST parameter
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: d98ecf2d6cdad7dae65868398440cfdc855e5263
Component: engine
2017-10-06 15:26:48 -07:00
John Howard 35db73fa01 LCOW: API: Add platform to /images/create and /build
Signed-off-by: John Howard <jhoward@microsoft.com>

This PR has the API changes described in https://github.com/moby/moby/issues/34617.
Specifically, it adds an HTTP header "X-Requested-Platform" which is a JSON-encoded
OCI Image-spec `Platform` structure.

In addition, it renames (almost all) uses of a string variable platform (and associated)
methods/functions to os. This makes it much clearer to disambiguate with the swarm
"platform" which is really os/arch. This is a stepping stone to getting the daemon towards
fully multi-platform/arch-aware, and makes it clear when "operating system" is being
referred to rather than "platform" which is misleadingly used - sometimes in the swarm
meaning, but more often as just the operating system.
Upstream-commit: 0380fbff37922cadf294851b1546f4c212c7f364
Component: engine
2017-10-06 11:44:18 -07:00
Frieder Bluemle 1bfeb65ddc Fix GitHub spelling
Signed-off-by: Frieder Bluemle <frieder.bluemle@gmail.com>
Upstream-commit: b80472cef449d900ca9496d97e1527556ff6a04f
Component: engine
2017-10-07 00:10:24 +08:00
Abhinandan Prativadi f7a982fdaa Modifying swarm integration test
Signed-off-by: Abhinandan Prativadi <abhi@docker.com>
Upstream-commit: 7e6b2165ef58e68ad4eafd457e8de89dd4c2c6b1
Component: engine
2017-10-05 18:20:00 -07:00
Yong Tang 318e1046f2 Merge pull request #35090 from dmcgowan/windows-support-os-version
Add support for Windows version filtering on pull
Upstream-commit: b8571fd81c7d2223c9ecbf799c693e3ef1daaea9
Component: engine
2017-10-05 17:31:23 -07:00
Derek McGowan dace19a103 Add support for Windows version filtering on pull
Update logic to choose manifest from manifest list to check
for os version on Windows. Separate the logic for windows
and unix to keep unix logic the same.


Signed-off-by: Derek McGowan <derek@mcgstyle.net>
Upstream-commit: 38aef56e1fcb8ea318df98c89cf002267b88a136
Component: engine
2017-10-05 13:31:58 -07:00
Sebastiaan van Stijn 8a57c20de6 Merge pull request #35088 from thaJeztah/bump-golang-to-1.8.4
Bump Go to 1.8.4
Upstream-commit: 2bc9bff86707737ff5df5f23b613d16281f9d223
Component: engine
2017-10-05 21:46:55 +02:00
Yong Tang 6464eb5e89 Merge pull request #35022 from thaJeztah/fix-conflict-status-code
Fix conflicting container name producing 400 error instead of 409
Upstream-commit: f8806b18b4b92c5e1980f6e11c917fad201cd73c
Component: engine
2017-10-05 11:18:06 -07:00
Yong Tang aba7eac9a8 Merge pull request #35085 from thaJeztah/update-portconfig-swagger
Add PortConfig.PublishMode to API documentation
Upstream-commit: f0e393bd0a3064aa72e7aebe2308d518c8fce676
Component: engine
2017-10-05 11:15:17 -07:00
Sebastiaan van Stijn 87d82fc493 Merge pull request #35087 from corbin-coleman/fix-integration-stats-test
Fix One of the Docker Stats Tests in /integration-cli
Upstream-commit: ed082152f6e7c6c7c7fbf2bc777ba1ae88cb9073
Component: engine
2017-10-05 17:59:53 +02:00
Sebastiaan van Stijn bf9a49688b Merge pull request #35084 from thaJeztah/update-authors
Update mailmap and authors
Upstream-commit: a437b078d33bc4284de80be842d0ee9e5c8a18af
Component: engine
2017-10-05 12:21:34 +02:00
Sebastiaan van Stijn b69e823a30 Merge pull request #35056 from tklauser/win-console-mode-consts
Use windows console mode constants from Azure/go-ansiterm
Upstream-commit: 1c4fad8135b52a8a6405aef897712c4ca7a6d168
Component: engine
2017-10-05 00:41:22 +02:00
Sebastiaan van Stijn 9aa7f4c8ce Bump Go to 1.8.4
Bumps the Go version used to 1.8.4, which contains
security fixes; https://groups.google.com/forum/#!topic/golang-announce/1hZYiemnkdE

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 33e8141f63ccc1a660529cd0d3581bd908bc8c1b
Component: engine
2017-10-04 23:22:23 +02:00
Corbin d29f681cdb Use the first 12 characters of the ID to match the output of docker stats command
Signed-off-by: Corbin <corbin.coleman@docker.com>
Upstream-commit: 8c10098ea51017fb514bef5c31a310a3f2d0d411
Component: engine
2017-10-04 13:43:00 -07:00
Sebastiaan van Stijn 9da01454db Fix conflicting container name producint 400 error instead of 409
Commit ebcb7d6b406fe50ea9a237c73004d75884184c33 removed string checking
for error messages, in favor of typed errors.

In this change, the status code for conflicting container  names
changed from 409 to 400 (validationError).

This patch add a `nameConflictError`, changing the status code to
409 as it was in older versions.

With this change applied, the correct 409 status is returned:

```bash
$ docker create --name c1 busybox
```

```bash
$ curl --unix-socket /var/run/docker.sock -v -XPOST -H"Content-Type: application/json" -d'{"Image":"busybox"}' http://localhost/containers/create?name=c1
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying /var/run/docker.sock...
* Connected to localhost (/var/run/docker.sock) port 80 (#0)
> POST /containers/create?name=c1 HTTP/1.1
> Host: localhost
> User-Agent: curl/7.52.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 19
>
* upload completely sent off: 19 out of 19 bytes
< HTTP/1.1 409 Conflict
< Api-Version: 1.33
< Content-Type: application/json
< Docker-Experimental: false
< Ostype: linux
< Server: Docker/17.06.0-dev (linux)
< Date: Thu, 28 Sep 2017 15:07:23 GMT
< Content-Length: 229
<
{"message":"Conflict. The container name \"/c1\" is already in use by container \"ed2efdc806c1883954e677eb9ab8cbc7e286c9c5934ef6724fd5d93c56744923\". You have to remove (or rename) that container to be able to reuse that name."}
* Curl_http_done: called premature == 0
* Connection #0 to host localhost left intact
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: e424343b4348f994d5c2922e7556629a620b4b3b
Component: engine
2017-10-04 20:39:45 +02:00
Sebastiaan van Stijn c1d495468d Add PortConfig.PublishMode to API documentation
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: fd90733972c6e78a0871b068e01e29ae1ac97fd7
Component: engine
2017-10-04 15:34:08 +02:00
Sebastiaan van Stijn 27685bd51b Update mailmap and authors
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 4309d3cf6b12fb7e9c5f23b756aed33f6dd74d1e
Component: engine
2017-10-04 14:44:24 +02:00
Sebastiaan van Stijn 7bcc658be1 Merge pull request #35072 from tophj-ibm/fix-kernel-version-detection
[integration-cli] fix s390x flaky test
Upstream-commit: d65ab869e8712d08fb94a5337b83df5d247bf25b
Component: engine
2017-10-03 23:46:10 +02:00
Christopher Jones c75056fadb [integration-cli] fix s390x flaky test
s390x node-1 has kernel 4.6.0, kernel.CompareKernelVersion()
returns 0 if the kernels are equal, so include that.

Full logic for CompareKernelVersion() is
a > b ret 1,
a == b ret 0,
a < b ret -1

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
Upstream-commit: aa5ea652c8864f014e1fa480d7e504f0d742c170
Component: engine
2017-10-03 12:13:29 -04:00
Yong Tang b11186b8f9 Merge pull request #34342 from coolljt0725/fallback_to_naive_diff
Fallback to use naive diff driver if enable CONFIG_OVERLAY_FS_REDIRECT_DIR
Upstream-commit: 595b929c573236dd95111429039f7f0788c1a7e5
Component: engine
2017-10-03 06:45:17 -07:00
Yong Tang 233679b950 Merge pull request #35069 from thaJeztah/remove-deprecated-error-check
Remove deprecated error checks
Upstream-commit: 882563b2d64a99f24923c4b2bfe90750f2fdd433
Component: engine
2017-10-03 06:40:47 -07:00
Sebastiaan van Stijn 72747182f4 Remove deprecated IsErr...NotFound() functions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 7553fc4bcd80d103096f2e8f662b7fb3c65b5249
Component: engine
2017-10-03 12:07:49 +02:00
Sebastiaan van Stijn 886e433681 Replace uses of deprecated IsErr...Notfound()
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 919726b5dbf7f063f82eac2f5384966fc7271710
Component: engine
2017-10-03 12:05:03 +02:00
Vincent Demeester 1941c5110e Merge pull request #35063 from LK4D4/locker_benchmarks
pkg/locker: add benchmarks
Upstream-commit: a8e7aca3fd2aeefa24b3f1a039f8c63b0301cacf
Component: engine
2017-10-03 09:45:56 +02:00
Alexander Morozov d35ee25d03 pkg/locker: add benchmarks
Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
Upstream-commit: 889cfd1b441e8039bb6b78e8c54276b8eb03cdef
Component: engine
2017-10-02 11:20:21 -07:00
Tobias Klauser 46c885c3e3 Use all console mode constants from go-ansiterm
The missing console mode constants were added to go-ansiterm in
Azure/go-ansiterm#23. Use these constants instead of defining them
locally.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Upstream-commit: 9335683fa50c4863ada4bf00a30e7dfbfef3c783
Component: engine
2017-10-02 09:49:20 +02:00
Tobias Klauser 81273ccd92 vendor: re-vendor github.com/Azure/go-ansiterm
Re-vendor go-ansiterm to d6e3b3328b783f23731bc4d058875b0371ff8109 in
order to get the newly added console mode constants.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Upstream-commit: 2b946fbc7012eff745e23aa43672f4ce4c5208a6
Component: engine
2017-10-02 09:47:38 +02:00
Doug Davis 5f36dc5666 Merge pull request #35052 from x1957/typo
fix typo
Upstream-commit: 1e94a4862ee2d92976c26ff741585d090169ed42
Component: engine
2017-10-01 15:31:11 -04:00
Yong Tang cfbb3b1158 Merge pull request #34874 from pascalgn/patch-1
Reworded push message
Upstream-commit: 4a244c3558ab6985ba110d261920b575016fd2d4
Component: engine
2017-10-01 10:29:43 -07:00
Yuhao Fang 76886c96d8 fix typo
Signed-off-by: Yuhao Fang <fangyuhao@gmail.com>
Upstream-commit: c673319dea5adcb33379b13f8e70c1d157e7c87d
Component: engine
2017-10-01 23:11:58 +08:00
Yong Tang ae4be632f1 Merge pull request #35045 from thaJeztah/bump-tonistiigi-fsutil
vendor tonistiigi/fsutil to dea3a0da73aee887fc02142d995be764106ac5e2
Upstream-commit: 9c9f4d6f70a14e00902cae19dd586a6faa6476f6
Component: engine
2017-09-30 13:23:30 -07:00
Sebastiaan van Stijn 4e99cb1e84 vendor tonistiigi/fsutil to dea3a0da73aee887fc02142d995be764106ac5e2
removes the stevvooe/continuity dependency, which has moved to
containerd/continuity.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: e3c130df944bc433efe7bc5bddebbb1ac0f35d93
Component: engine
2017-09-30 18:04:11 +02:00
Yong Tang b123db0bdc Merge pull request #35044 from thaJeztah/bump-api-version-1.34
Bump API version to 1.34
Upstream-commit: 19015df2b06769a0908ba9eeae72d9b785684ed3
Component: engine
2017-09-29 22:20:30 -10:00
Yong Tang 4b6bbc7c4a Merge pull request #35040 from thaJeztah/bump-vndr
Bump vndr to a6e196d8b4b0cbbdc29aebdb20c59ac6926bb384
Upstream-commit: e223bbedc127b7260ac2c8702cbd8e41d764b4d1
Component: engine
2017-09-29 16:48:52 -10:00
Sebastiaan van Stijn 6e3b4640d2 Bump API version to 1.34
Docker 17.10 was cut off from ab2b03a0e139537376bbf66c1e1e9e897a403f06

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 288abf0854852b4542da359400b3c29e99941fc9
Component: engine
2017-09-30 01:13:20 +02:00
Tõnis Tiigi 4c4e74cebe Merge pull request #35042 from pradipd/panic_fix
Fixing panic when sandbox is nil
Upstream-commit: ab2b03a0e139537376bbf66c1e1e9e897a403f06
Component: engine
2017-09-29 12:51:55 -07:00
Pradip Dhara 28e35b96d0 Fixing panic when sandbox is nil
Signed-off-by: Pradip Dhara <pradipd@microsoft.com>
Upstream-commit: c4ad0747e929a41ecec7e8c2ae2bd0cc037401ed
Component: engine
2017-09-29 09:23:06 -07:00
Pascal a2cd96f46a Reworded push message
Changed push message from "The push refers to a repository" to "The push refers to the repository" to make it clearer that this is just an information about the local source and not a distinction between pushing single images or whole repositories.

Signed-off-by: Pascal <pascalgn@users.noreply.github.com>
Upstream-commit: d82948b75d8aba97816ff5257240c1edb5e8de5b
Component: engine
2017-09-29 17:02:20 +02:00
Sebastiaan van Stijn bf69bcbb74 Bump vndr to a6e196d8b4b0cbbdc29aebdb20c59ac6926bb384
Includes a fix to cleanup unused vendor-directories

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 67b1f54dc2413a018ac42e4335ca182a2d0b8a1d
Component: engine
2017-09-29 15:09:57 +02:00