diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-07-04 16:29:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-04 16:29:19 +0200 |
commit | 6fd5d4a078351245a58198ebd4bed2a6c9a49d3e (patch) | |
tree | 580dfc67b4040527af557811def7b2592952f2d8 /controller-server | |
parent | 6656ef6452d52a26c1de33d6ce80e887fd0b35e1 (diff) |
Revert "Avoid parsing proxied content"
Diffstat (limited to 'controller-server')
2 files changed, 10 insertions, 27 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageClient.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageClient.java index ecb2f611171..93213172048 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageClient.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageClient.java @@ -1,6 +1,8 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.restapi.statuspage; +import com.yahoo.slime.Slime; +import com.yahoo.vespa.config.SlimeUtils; import org.apache.http.HttpStatus; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; @@ -36,8 +38,8 @@ public class StatusPageClient { this.key = Objects.requireNonNull(key, "key cannot be null"); } - /** GET given page and return response body */ - public byte[] get(String page, Optional<String> since) { + /** GET given page and return response body as slime */ + public Slime get(String page, Optional<String> since) { HttpGet get = new HttpGet(pageUrl(page, since)); try (CloseableHttpClient client = client()) { try (CloseableHttpResponse response = client.execute(get)) { @@ -45,7 +47,8 @@ public class StatusPageClient { throw new IllegalArgumentException("Received status " + response.getStatusLine().getStatusCode() + " from StatusPage"); } - return EntityUtils.toByteArray(response.getEntity()); + byte[] body = EntityUtils.toByteArray(response.getEntity()); + return SlimeUtils.jsonToSlime(body); } } catch (IOException e) { throw new UncheckedIOException(e); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageProxyHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageProxyHandler.java index e652e293c26..ad69681fe7e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageProxyHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageProxyHandler.java @@ -6,13 +6,13 @@ import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.LoggingRequestHandler; import com.yahoo.container.jdisc.secretstore.SecretStore; +import com.yahoo.slime.Slime; import com.yahoo.vespa.hosted.controller.restapi.ErrorResponse; import com.yahoo.vespa.hosted.controller.restapi.Path; +import com.yahoo.vespa.hosted.controller.restapi.SlimeJsonResponse; import com.yahoo.vespa.hosted.controller.statuspage.config.StatuspageConfig; import com.yahoo.yolean.Exceptions; -import java.io.IOException; -import java.io.OutputStream; import java.net.URI; import java.util.Optional; import java.util.logging.Level; @@ -60,28 +60,8 @@ public class StatusPageProxyHandler extends LoggingRequestHandler { } StatusPageClient client = StatusPageClient.create(apiUrl, secretStore.getSecret(secretKey)); Optional<String> since = Optional.ofNullable(request.getProperty("since")); - byte[] response = client.get(path.get("page"), since); - return new ByteArrayHttpResponse(response); - } - - private static class ByteArrayHttpResponse extends HttpResponse { - - private final byte[] data; - - public ByteArrayHttpResponse(byte[] data) { - super(200); - this.data = data; - } - - @Override - public void render(OutputStream out) throws IOException { - out.write(data); - } - - @Override - public String getContentType() { - return "application/json"; - } + Slime statusPageResponse = client.get(path.get("page"), since); + return new SlimeJsonResponse(statusPageResponse); } } |