diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-11-27 13:51:22 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-11-27 13:51:22 +0100 |
commit | adc7312adfe1b8b80c9f9cf57362e6d4261346f7 (patch) | |
tree | 0e770a04e72ff2d2163b72943d3014d1731b7abb /node-admin | |
parent | 84449baedc77f82034c1c2ff404e6636e7b9f90f (diff) |
Log request body for failing request
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java index a066375ce5c..a533556bde8 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java @@ -7,6 +7,7 @@ import com.yahoo.config.provision.HostName; import com.yahoo.vespa.athenz.identity.ServiceIdentityProvider; import com.yahoo.vespa.athenz.identity.ServiceIdentitySslSocketFactory; import com.yahoo.vespa.hosted.node.admin.component.ConfigServerInfo; +import com.yahoo.yolean.Exceptions; import org.apache.http.HttpHeaders; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; @@ -26,6 +27,7 @@ import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.util.EntityUtils; import javax.net.ssl.HostnameVerifier; import java.io.IOException; @@ -107,12 +109,14 @@ public class ConfigServerApiImpl implements ConfigServerApi { private <T> T tryAllConfigServers(CreateRequest requestFactory, Class<T> wantedReturnType) { Exception lastException = null; for (URI configServer : configServers) { - try (CloseableHttpResponse response = client.execute(requestFactory.createRequest(configServer))) { - HttpException.handleStatusCode( - response.getStatusLine().getStatusCode(), "Config server " + configServer); - + var request = Exceptions.uncheck(() -> requestFactory.createRequest(configServer)); + try (CloseableHttpResponse response = client.execute(request)) { + var responseBody = EntityUtils.toString(response.getEntity()); + HttpException.handleStatusCode(response.getStatusLine().getStatusCode(), + request.getMethod() + " " + request.getURI() + + " failed with response '" + responseBody + "'"); try { - return mapper.readValue(response.getEntity().getContent(), wantedReturnType); + return mapper.readValue(responseBody, wantedReturnType); } catch (IOException e) { throw new UncheckedIOException("Failed parse response from config server", e); } |