diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-08 11:19:56 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-11-08 11:19:56 +0100 |
commit | 95bda19dcb52647c5b8fa84fa9b6e244987c9021 (patch) | |
tree | 46ab0b65b98b19a26cb3adb4300929848b900607 /controller-server | |
parent | e04b389f457d2b101c805d831544cf4eab083d04 (diff) |
Include error code from response in exception message
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/FlagsClient.java | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/FlagsClient.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/FlagsClient.java index 9d21281ce9f..d11e17ce634 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/FlagsClient.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/FlagsClient.java @@ -115,19 +115,20 @@ class FlagsClient { private static void verifySuccess(HttpResponse response, FlagsTarget target, FlagId flagId) throws IOException { if (!success(response)) { - String message = getErrorMessage(response); - throw new FlagsException(response.getStatusLine().getStatusCode(), target, flagId, message); + throw createFlagsException(response, target, flagId); } } - private static String getErrorMessage(HttpResponse response) throws IOException { + private static FlagsException createFlagsException(HttpResponse response, FlagsTarget target, FlagId flagId) throws IOException { HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity); + int statusCode = response.getStatusLine().getStatusCode(); if (ContentType.get(entity).getMimeType().equals(ContentType.APPLICATION_JSON.getMimeType())) { - WireErrorResponse errorResponse = mapper.readValue(content, WireErrorResponse.class); - return errorResponse.message; + WireErrorResponse error = mapper.readValue(content, WireErrorResponse.class); + return new FlagsException(statusCode, target, flagId, error.errorCode, error.message); + } else { + return new FlagsException(statusCode, target, flagId, null, content); } - return content; } private static boolean success(HttpResponse response) { @@ -161,21 +162,20 @@ class FlagsClient { static class FlagsException extends RuntimeException { - private FlagsException(int statusCode, FlagsTarget target, String responseMessage) { - this(statusCode, target, null, responseMessage); + private FlagsException(int statusCode, FlagsTarget target, FlagId flagId, String errorCode, String errorMessage) { + super(createErrorMessage(statusCode, target, flagId, errorCode, errorMessage)); } - private FlagsException(int statusCode, FlagsTarget target, FlagId flagId, String responseMessage) { - super(createErrorMessage(statusCode, target, flagId, responseMessage)); - } - - private static String createErrorMessage(int statusCode, FlagsTarget target, FlagId flagId, String responseMessage) { - StringBuilder builder = new StringBuilder() - .append("Received '").append(statusCode).append("' from '").append(target.endpoint().getHost()).append("'"); + private static String createErrorMessage(int statusCode, FlagsTarget target, FlagId flagId, String errorCode, String errorMessage) { + StringBuilder builder = new StringBuilder().append("Received ").append(statusCode); + if (errorCode != null) { + builder.append('/').append(errorCode); + } + builder.append(" from '").append(target.endpoint().getHost()).append("'"); if (flagId != null) { builder.append("' for flag '").append(flagId).append("'"); } - return builder.append(": ").append(responseMessage).toString(); + return builder.append(": ").append(errorMessage).toString(); } } } |