aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2018-07-04 16:29:19 +0200
committerGitHub <noreply@github.com>2018-07-04 16:29:19 +0200
commit6fd5d4a078351245a58198ebd4bed2a6c9a49d3e (patch)
tree580dfc67b4040527af557811def7b2592952f2d8 /controller-server
parent6656ef6452d52a26c1de33d6ce80e887fd0b35e1 (diff)
Revert "Avoid parsing proxied content"
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageClient.java9
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/statuspage/StatusPageProxyHandler.java28
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);
}
}