diff options
author | Kristian Aune <kristian@ymail.com> | 2019-05-10 15:05:59 +0200 |
---|---|---|
committer | Kristian Aune <kristian@ymail.com> | 2019-05-10 15:05:59 +0200 |
commit | 2493c712767aaef001cd352e36daeaf3efa2b20f (patch) | |
tree | 9fd2ec9f781aa053330a2b255cc9d76afb3e9ec6 /vespa-http-client/src/main/java/com/yahoo | |
parent | ac6d02a037eef115b545e98187f00486e01bd189 (diff) |
Add endpoint parameter
- and allow building an endpoint from URL
Diffstat (limited to 'vespa-http-client/src/main/java/com/yahoo')
-rw-r--r-- | vespa-http-client/src/main/java/com/yahoo/vespa/http/client/config/Endpoint.java | 5 | ||||
-rw-r--r-- | vespa-http-client/src/main/java/com/yahoo/vespa/http/client/runner/CommandLineArguments.java | 48 |
2 files changed, 41 insertions, 12 deletions
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/config/Endpoint.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/config/Endpoint.java index 7ba6dd04a80..b7d8cab5a4f 100644 --- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/config/Endpoint.java +++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/config/Endpoint.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.http.client.config; import java.io.Serializable; +import java.net.URL; /** * Represents an endpoint, in most cases a JDisc container @@ -34,6 +35,10 @@ public final class Endpoint implements Serializable { return new Endpoint(hostname, port, useSsl); } + public static Endpoint create(URL url) { + return new Endpoint(url.getHost(), url.getPort(), "https".equals(url.getProtocol())); + } + private static final long serialVersionUID = 4545345L; private final String hostname; private final int port; diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/runner/CommandLineArguments.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/runner/CommandLineArguments.java index b9219d8f267..dff5e0f4ef3 100644 --- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/runner/CommandLineArguments.java +++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/runner/CommandLineArguments.java @@ -18,6 +18,8 @@ import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.message.BasicLineParser; import javax.inject.Inject; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -49,10 +51,18 @@ public class CommandLineArguments { if (cmdArgs.helpOption.showHelpIfRequested()) { return null; } - - if (cmdArgs.hostArg == null) { - System.err.println("'--host' not set."); - return null; + if (cmdArgs.endpointArg != null) { + try { + URL url = new URL(cmdArgs.endpointArg); + } catch (MalformedURLException e) { + e.printStackTrace(System.err); + return null; + } + } else { + if (cmdArgs.hostArg == null) { + System.err.println("'--host' or '--endpoint' not set."); + return null; + } } if (cmdArgs.priorityArg != null && ! checkPriorityFlag(cmdArgs.priorityArg)) { return null; @@ -114,8 +124,12 @@ public class CommandLineArguments { description = "(=default)The route to send the data to.") private String routeArg = "default"; + @Option(name = {"--endpoint"}, + description = "Vespa endpoint.") + private String endpointArg; + @Option(name = {"--host"}, - description = "The host(s) for the gateway. If using several, use comma to sepparate them.") + description = "The host(s) for the gateway. If using several, use comma to separate them.") private String hostArg; @Option(name = {"--port"}, @@ -141,7 +155,7 @@ public class CommandLineArguments { @Option(name = {"-v", "--verbose"}, description = "Enable verbose output of progress.") - private boolean verboaseArg = false; + private boolean verboseArg = false; @Option(name = {"--noretry"}, description = "Turns off retries of recoverable failures..") @@ -199,7 +213,7 @@ public class CommandLineArguments { public String getFile() { return fileArg; }; - public boolean getVerbose() { return verboaseArg; } + public boolean getVerbose() { return verboseArg; } public boolean getAddRootElementToXml() { return addRootElementToXml; } @@ -239,11 +253,21 @@ public class CommandLineArguments { // Enable dynamic throttling. .setThrottlerMinSize(minThrottleValue) .setClientQueueSize(maxPendingOperationCountArg); - Iterable<String> hosts = Splitter.on(',').trimResults().split(hostArg); - for (String host : hosts) { - builder.addCluster(new Cluster.Builder() - .addEndpoint(Endpoint.create(host, portArg, useTls)) - .build()); + if (endpointArg != null) { + try { + builder.addCluster(new Cluster.Builder() + .addEndpoint(Endpoint.create(new URL(endpointArg))) + .build()); + } + catch (MalformedURLException e) {} // already checked when parsing arguments + } + else { + Iterable<String> hosts = Splitter.on(',').trimResults().split(hostArg); + for (String host : hosts) { + builder.addCluster(new Cluster.Builder() + .addEndpoint(Endpoint.create(host, portArg, useTls)) + .build()); + } } return builder.build(); } |