Selaa lähdekoodia

api: POST /exec/{id}/start: remove support for API < v1.21

API v1.21 (Docker Engine v1.9.0) enforces the request to have a JSON
content-type on exec start (see 45dc57f22931e6cb8ad522602da8aa985bddcfab).
An exception was added in 0b5e628e14a673cd1940876b2f3d091c2fe236d9 to
make this check conditional (supporting API < 1.21).

API v1.23 and older are deprecated, and this patch removes the feature.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 1 vuosi sitten
vanhempi
commit
83f790cccc
2 muutettua tiedostoa jossa 2 lisäystä ja 23 poistoa
  1. 2 9
      api/server/router/container/exec.go
  2. 0 14
      integration-cli/docker_api_exec_test.go

+ 2 - 9
api/server/router/container/exec.go

@@ -71,15 +71,6 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res
 		return err
 	}
 
-	version := httputils.VersionFromContext(ctx)
-	if versions.LessThan(version, "1.22") {
-		// API versions before 1.22 did not enforce application/json content-type.
-		// Allow older clients to work by patching the content-type.
-		if r.Header.Get("Content-Type") != "application/json" {
-			r.Header.Set("Content-Type", "application/json")
-		}
-	}
-
 	var (
 		execName                  = vars["name"]
 		stdin, inStream           io.ReadCloser
@@ -96,6 +87,8 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res
 	}
 
 	if execStartCheck.ConsoleSize != nil {
+		version := httputils.VersionFromContext(ctx)
+
 		// Not supported before 1.42
 		if versions.LessThan(version, "1.42") {
 			execStartCheck.ConsoleSize = nil

+ 0 - 14
integration-cli/docker_api_exec_test.go

@@ -109,20 +109,6 @@ func (s *DockerAPISuite) TestExecAPIStartEnsureHeaders(c *testing.T) {
 	assert.Assert(c, resp.Header.Get("Server") != "")
 }
 
-func (s *DockerAPISuite) TestExecAPIStartBackwardsCompatible(c *testing.T) {
-	testRequires(c, DaemonIsLinux) // Windows only supports 1.25 or later
-	runSleepingContainer(c, "-d", "--name", "test")
-	id := createExec(c, "test")
-
-	resp, body, err := request.Post(testutil.GetContext(c), fmt.Sprintf("/v1.20/exec/%s/start", id), request.RawString(`{"Detach": true}`), request.ContentType("text/plain"))
-	assert.NilError(c, err)
-
-	b, err := request.ReadBody(body)
-	comment := fmt.Sprintf("response body: %s", b)
-	assert.NilError(c, err, comment)
-	assert.Equal(c, resp.StatusCode, http.StatusOK, comment)
-}
-
 // #19362
 func (s *DockerAPISuite) TestExecAPIStartMultipleTimesError(c *testing.T) {
 	runSleepingContainer(c, "-d", "--name", "test")