You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/08/30 09:35:37 UTC

[13/50] jclouds git commit: [JCLOUDS-1011] force closing HTTP client connection after using Docker build REST API method

[JCLOUDS-1011] force closing HTTP client connection after using Docker build REST API method


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d7b3f5d9
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d7b3f5d9
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d7b3f5d9

Branch: refs/heads/master
Commit: d7b3f5d98ff786b79583ee08f670dba0cc308344
Parents: 288d387
Author: Josef Cacek <jo...@gmail.com>
Authored: Fri Oct 2 15:00:55 2015 +0200
Committer: Ignasi Barrera <na...@apache.org>
Committed: Fri Oct 2 15:58:42 2015 +0200

----------------------------------------------------------------------
 .../org/jclouds/docker/features/MiscApi.java    |  4 ++--
 .../docker/features/MiscApiMockTest.java        | 22 ++++++++++++++++++--
 2 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d7b3f5d9/apis/docker/src/main/java/org/jclouds/docker/features/MiscApi.java
----------------------------------------------------------------------
diff --git a/apis/docker/src/main/java/org/jclouds/docker/features/MiscApi.java b/apis/docker/src/main/java/org/jclouds/docker/features/MiscApi.java
index 6c49436..8e5548e 100644
--- a/apis/docker/src/main/java/org/jclouds/docker/features/MiscApi.java
+++ b/apis/docker/src/main/java/org/jclouds/docker/features/MiscApi.java
@@ -65,7 +65,7 @@ public interface MiscApi {
    @Named("image:build")
    @POST
    @Path("/build")
-   @Headers(keys = "Content-Type", values = "application/tar")
+   @Headers(keys = { "Content-Type", "Connection" }, values = { "application/tar", "close" })
    InputStream build(Payload inputStream);
 
    /**
@@ -79,7 +79,7 @@ public interface MiscApi {
    @Named("image:build")
    @POST
    @Path("/build")
-   @Headers(keys = "Content-Type", values = "application/tar")
+   @Headers(keys = { "Content-Type", "Connection" }, values = { "application/tar", "close" })
    InputStream build(Payload inputStream, BuildOptions options);
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d7b3f5d9/apis/docker/src/test/java/org/jclouds/docker/features/MiscApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/docker/src/test/java/org/jclouds/docker/features/MiscApiMockTest.java b/apis/docker/src/test/java/org/jclouds/docker/features/MiscApiMockTest.java
index 630d7af..4fe87ca 100644
--- a/apis/docker/src/test/java/org/jclouds/docker/features/MiscApiMockTest.java
+++ b/apis/docker/src/test/java/org/jclouds/docker/features/MiscApiMockTest.java
@@ -18,6 +18,8 @@ package org.jclouds.docker.features;
 
 import com.squareup.okhttp.mockwebserver.MockResponse;
 import com.squareup.okhttp.mockwebserver.MockWebServer;
+import com.squareup.okhttp.mockwebserver.RecordedRequest;
+
 import org.jclouds.docker.DockerApi;
 import org.jclouds.docker.internal.BaseDockerMockTest;
 import org.jclouds.docker.parse.InfoParseTest;
@@ -26,11 +28,14 @@ import org.jclouds.io.Payload;
 import org.jclouds.io.Payloads;
 import org.testng.annotations.Test;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.jclouds.docker.compute.BaseDockerApiLiveTest.tarredDockerfile;
 import static org.testng.Assert.assertEquals;
 import java.io.File;
 import java.io.FileInputStream;
 
+import javax.ws.rs.core.HttpHeaders;
+
 /**
  * Mock tests for the {@link org.jclouds.docker.features.MiscApi} class.
  */
@@ -64,7 +69,8 @@ public class MiscApiMockTest extends BaseDockerMockTest {
       MiscApi api = api(DockerApi.class, server.getUrl("/").toString()).getMiscApi();
       try {
          api.build(tarredDockerfile());
-         assertSent(server, "POST", "/build");
+         RecordedRequest request = assertSent(server, "POST", "/build");
+         assertDockerBuildHttpHeaders(request);
       } finally {
          server.shutdown();
       }
@@ -79,10 +85,22 @@ public class MiscApiMockTest extends BaseDockerMockTest {
       payload.getContentMetadata().setContentLength(file.length());
       try {
          api.build(payload);
-         assertSent(server, "POST", "/build");
+         RecordedRequest request = assertSent(server, "POST", "/build");
+         assertDockerBuildHttpHeaders(request);
       } finally {
          server.shutdown();
       }
    }
 
+   /**
+    * Asserts that correct values of HTTP headers are used in Docker build REST
+    * API calls.
+    *
+    * @param request
+    */
+   private void assertDockerBuildHttpHeaders(RecordedRequest request) {
+      assertThat(request.getHeader("Connection")).isEqualTo("close");
+      assertThat(request.getHeader(HttpHeaders.CONTENT_TYPE)).isEqualTo("application/tar");
+   }
+
 }