summaryrefslogtreecommitdiffstats
path: root/node-maintainer
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-08-28 09:26:16 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-08-28 09:26:16 +0200
commit3057fabf3bb98fc3154701c61c86fad170f52663 (patch)
treee01d020bd440a9e34deb0fa3675665e9c04c4a81 /node-maintainer
parent64128383875b1b3a4e0bbf44a90a29fe2ea33cff (diff)
Close response and client
Diffstat (limited to 'node-maintainer')
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandler.java23
-rw-r--r--node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java7
-rw-r--r--node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandlerTest.java16
3 files changed, 22 insertions, 24 deletions
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandler.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandler.java
index 63c74c17dd5..0c118e2dc6c 100644
--- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandler.java
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandler.java
@@ -3,10 +3,10 @@ package com.yahoo.vespa.hosted.node.maintainer;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpHeaders;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
@@ -37,7 +37,7 @@ class CoredumpHandler {
private final Logger logger = Logger.getLogger(CoredumpHandler.class.getName());
private final ObjectMapper objectMapper = new ObjectMapper();
- private final HttpClient httpClient;
+ private final CloseableHttpClient httpClient;
private final CoreCollector coreCollector;
private final Path coredumpsPath;
private final Path doneCoredumpsPath;
@@ -45,7 +45,7 @@ class CoredumpHandler {
private final Optional<Path> installStatePath;
private final String feedEndpoint;
- public CoredumpHandler(HttpClient httpClient, CoreCollector coreCollector, Path coredumpsPath, Path doneCoredumpsPath,
+ public CoredumpHandler(CloseableHttpClient httpClient, CoreCollector coreCollector, Path coredumpsPath, Path doneCoredumpsPath,
Map<String, Object> nodeAttributes, Optional<Path> installStatePath, String feedEndpoint) {
this.httpClient = httpClient;
this.coreCollector = coreCollector;
@@ -154,14 +154,15 @@ class CoredumpHandler {
post.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
post.setEntity(new StringEntity(metadata));
- HttpResponse response = httpClient.execute(post);
- if (response.getStatusLine().getStatusCode() / 100 != 2) {
- String result = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
- .lines().collect(Collectors.joining("\n"));
- throw new RuntimeException("POST to " + post.getURI() + " failed with HTTP: " +
- response.getStatusLine().getStatusCode() + " [" + result + "]");
+ try (CloseableHttpResponse response = httpClient.execute(post)) {
+ if (response.getStatusLine().getStatusCode() / 100 != 2) {
+ String result = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))
+ .lines().collect(Collectors.joining("\n"));
+ throw new RuntimeException("POST to " + post.getURI() + " failed with HTTP: " +
+ response.getStatusLine().getStatusCode() + " [" + result + "]");
+ }
+ EntityUtils.consume(response.getEntity());
}
- EntityUtils.consume(response.getEntity());
logger.info("Successfully reported coredump " + documentId);
}
diff --git a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
index 6c8388c3f28..3bf62e60481 100644
--- a/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
+++ b/node-maintainer/src/main/java/com/yahoo/vespa/hosted/node/maintainer/Maintainer.java
@@ -7,8 +7,8 @@ import com.yahoo.slime.Inspector;
import com.yahoo.slime.Type;
import com.yahoo.system.ProcessExecuter;
import com.yahoo.vespa.config.SlimeUtils;
-import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.IOException;
@@ -26,7 +26,6 @@ import java.util.concurrent.atomic.AtomicInteger;
public class Maintainer {
private static final CoreCollector coreCollector = new CoreCollector(new ProcessExecuter());
- private static final HttpClient httpClient = createHttpClient(Duration.ofSeconds(5));
public static void main(String[] args) {
LogSetup.initVespaLogging("node-maintainer");
@@ -145,7 +144,7 @@ public class Maintainer {
Optional<Path> installStatePath = SlimeUtils.optionalString(arguments.field("installStatePath")).map(Paths::get);
String feedEndpoint = getFieldOrFail(arguments, "feedEndpoint").asString();
- try {
+ try (CloseableHttpClient httpClient = createHttpClient(Duration.ofSeconds(5))) {
CoredumpHandler coredumpHandler = new CoredumpHandler(httpClient, coreCollector, coredumpsPath,
doneCoredumpsPath, attributesMap, installStatePath,
feedEndpoint);
@@ -187,7 +186,7 @@ public class Maintainer {
return out;
}
- private static HttpClient createHttpClient(Duration timeout) {
+ private static CloseableHttpClient createHttpClient(Duration timeout) {
int timeoutInMillis = (int) timeout.toMillis();
return HttpClientBuilder.create()
.setUserAgent("node-maintainer")
diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandlerTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandlerTest.java
index 4a5fddf984e..a0125e78ca2 100644
--- a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandlerTest.java
+++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/maintainer/CoredumpHandlerTest.java
@@ -2,12 +2,11 @@
package com.yahoo.vespa.hosted.node.maintainer;
import org.apache.http.HttpHeaders;
-import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
-import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.DefaultHttpResponseFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.message.BasicStatusLine;
import org.junit.Before;
import org.junit.Rule;
@@ -45,7 +44,7 @@ import static org.mockito.Mockito.when;
*/
public class CoredumpHandlerTest {
- private final HttpClient httpClient = mock(HttpClient.class);
+ private final CloseableHttpClient httpClient = mock(CloseableHttpClient.class);
private final CoreCollector coreCollector = mock(CoreCollector.class);
private static final Map<String, Object> attributes = new LinkedHashMap<>();
private static final Map<String, Object> metadata = new LinkedHashMap<>();
@@ -228,12 +227,11 @@ public class CoredumpHandlerTest {
}
private void setNextHttpResponse(int code, Optional<String> message) throws IOException {
- DefaultHttpResponseFactory responseFactory = new DefaultHttpResponseFactory();
- HttpResponse httpResponse = responseFactory.newHttpResponse(
- new BasicStatusLine(HttpVersion.HTTP_1_1, code, null), null);
- if (message.isPresent()) httpResponse.setEntity(new StringEntity(message.get()));
+ CloseableHttpResponse response = mock(CloseableHttpResponse.class);
+ when(response.getStatusLine()).thenReturn(new BasicStatusLine(HttpVersion.HTTP_1_1, code, null));
+ if (message.isPresent()) when(response.getEntity()).thenReturn(new StringEntity(message.get()));
- when(httpClient.execute(any())).thenReturn(httpResponse);
+ when(httpClient.execute(any())).thenReturn(response);
}
private void validateNextHttpPost(String documentId, String expectedBody) throws IOException, URISyntaxException {