diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-12-01 14:13:13 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-12-01 14:13:13 +0100 |
commit | 9c3c3967f9574c08da66b5d2bea26e6c298f0546 (patch) | |
tree | 32fcd726dad3c760c658852f6790857ad1c57027 /clustercontroller-apputil/src/main/java/com/yahoo | |
parent | 008477111ac92e2eec81596a5037a205bbea53ff (diff) |
Move code in clustercontroller-apputils into clustercontroller-apps
Code in clustercontroller-apputils is now only used from clustercontroller-apps,
so those two modules can be merged
Diffstat (limited to 'clustercontroller-apputil/src/main/java/com/yahoo')
3 files changed, 0 insertions, 185 deletions
diff --git a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java b/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java deleted file mode 100644 index f518fe23fe6..00000000000 --- a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscHttpRequestHandler.java +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.clustercontroller.apputil.communication.http; - -import com.yahoo.container.jdisc.LoggingRequestHandler; -import com.yahoo.jdisc.HeaderFields; -import com.yahoo.jdisc.Response; -import com.yahoo.jdisc.handler.CompletionHandler; -import com.yahoo.text.Utf8; -import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequest; -import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequestHandler; -import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpResult; - -import java.io.*; -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.util.logging.Logger; - -/** - * Note. This class is tested through apache http instance test, using this as other endpoint. - * - * @author Haakon Humberset - * @author Harald Musum - * @author Vegard Sjonfjell - */ -public class JDiscHttpRequestHandler extends LoggingRequestHandler { - - private static final Logger log = Logger.getLogger(JDiscHttpRequestHandler.class.getName()); - private final HttpRequestHandler requestHandler; - - public JDiscHttpRequestHandler(HttpRequestHandler handler, LoggingRequestHandler.Context parentCtx) { - super(parentCtx); - this.requestHandler = handler; - } - - static class EmptyCompletionHandler implements CompletionHandler { - @Override - public void completed() { } - @Override - public void failed(Throwable throwable) { } - } - - @Override - public com.yahoo.container.jdisc.HttpResponse handle(com.yahoo.container.jdisc.HttpRequest request) { - final HttpRequest legacyRequest = new HttpRequest(); - final com.yahoo.jdisc.http.HttpRequest jDiscRequest = request.getJDiscRequest(); - - legacyRequest.setScheme(request.getUri().getScheme()); - legacyRequest.setHost(request.getUri().getHost()); - setOperation(legacyRequest, request.getMethod()); - legacyRequest.setPort(request.getUri().getPort()); - legacyRequest.setPath(request.getUri().getPath()); - copyPostData(request, legacyRequest); - copyRequestHeaders(legacyRequest, jDiscRequest); - copyParameters(legacyRequest, jDiscRequest); - legacyRequest.setTimeout(Duration.ofMinutes(60).toMillis()); - - try { - final HttpResult result = requestHandler.handleRequest(legacyRequest); - log.fine("Got result " + result.toString(true)); - return copyResponse(result); - } catch (Exception e) { - log.warning("Caught exception while handling request: " + e.getMessage()); - return new com.yahoo.container.jdisc.HttpResponse(500) { - @Override - public void render(OutputStream outputStream) throws IOException { - outputStream.write(Utf8.toBytes(e.getMessage())); - } - }; - } - } - - static HttpRequest setOperation(HttpRequest request, com.yahoo.jdisc.http.HttpRequest.Method method) { - switch (method) { - case GET: return request.setHttpOperation(HttpRequest.HttpOp.GET); - case POST: return request.setHttpOperation(HttpRequest.HttpOp.POST); - case PUT: return request.setHttpOperation(HttpRequest.HttpOp.PUT); - case DELETE: return request.setHttpOperation(HttpRequest.HttpOp.DELETE); - default: throw new IllegalStateException("Unhandled method " + method); - } - } - - private com.yahoo.container.jdisc.HttpResponse copyResponse(final HttpResult result) { - return new com.yahoo.container.jdisc.HttpResponse(result.getHttpReturnCode()) { - @Override - public void render(OutputStream outputStream) throws IOException { - outputStream.write(Utf8.toBytes(result.getContent().toString())); - } - - @Override - public void complete(){ - copyResponseHeaders(result, getJdiscResponse()); - } - }; - } - - private void copyPostData(com.yahoo.container.jdisc.HttpRequest request, HttpRequest legacyRequest) { - try { - legacyRequest.setPostContent(new String(request.getData().readAllBytes(), StandardCharsets.UTF_8)); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private static void copyParameters(HttpRequest legacyRequest, com.yahoo.jdisc.http.HttpRequest jDiscRequest) { - for (String key : jDiscRequest.parameters().keySet()) { - for (String value : jDiscRequest.parameters().get(key)) { - legacyRequest.addUrlOption(key, value); - } - } - } - - private static void copyRequestHeaders(HttpRequest legacyRequest, com.yahoo.jdisc.http.HttpRequest jDiscRequest) { - for (String key : jDiscRequest.headers().keySet()) { - for (String value : jDiscRequest.headers().get(key)) { - legacyRequest.addHttpHeader(key, value); - } - } - } - - private static HeaderFields copyResponseHeaders(HttpResult result, Response response) { - HeaderFields headers = new HeaderFields(); - for (HttpRequest.KeyValuePair keyValuePair : result.getHeaders()) { - response.headers().put((keyValuePair.getKey()), keyValuePair.getValue()); - } - return headers; - } - -} diff --git a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscMetricWrapper.java b/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscMetricWrapper.java deleted file mode 100644 index 559eaee4821..00000000000 --- a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/JDiscMetricWrapper.java +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.clustercontroller.apputil.communication.http; - -import com.yahoo.jdisc.Metric; -import com.yahoo.vespa.clustercontroller.utils.util.MetricReporter; - -import java.util.logging.Logger; - -public class JDiscMetricWrapper implements MetricReporter { - - private final Object lock = new Object(); - private Metric m; - - private static class ContextWrapper implements MetricReporter.Context { - Metric.Context wrappedContext; - - public ContextWrapper(Metric.Context wrapped) { - this.wrappedContext = wrapped; - } - } - - public JDiscMetricWrapper(Metric m) { - this.m = m; - } - - public void updateMetricImplementation(Metric m) { - synchronized (lock) { - this.m = m; - } - } - - public void set(String s, Number number, MetricReporter.Context context) { - synchronized (lock) { - ContextWrapper cw = (ContextWrapper) context; - m.set(s, number, cw == null ? null : cw.wrappedContext); - } - } - - public void add(String s, Number number, MetricReporter.Context context) { - synchronized (lock) { - ContextWrapper cw = (ContextWrapper) context; - m.add(s, number, cw == null ? null : cw.wrappedContext); - } - } - - public MetricReporter.Context createContext(java.util.Map<java.lang.String,?> stringMap) { - synchronized (lock) { - return new ContextWrapper(m.createContext(stringMap)); - } - } - -} diff --git a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/package-info.java b/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/package-info.java deleted file mode 100644 index 5d09603bea6..00000000000 --- a/clustercontroller-apputil/src/main/java/com/yahoo/vespa/clustercontroller/apputil/communication/http/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -@ExportPackage -package com.yahoo.vespa.clustercontroller.apputil.communication.http; - -import com.yahoo.osgi.annotation.ExportPackage; |