aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-feed-client-cli
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-27 15:32:01 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-27 15:32:01 +0200
commit176b03f359920c26f4b543b00d4665be54d96160 (patch)
tree2f0b2c519cc22472f45d4cda86219350fd5c8138 /vespa-feed-client-cli
parentc0d5a541c9503c55a9867ff0117c82b056cbf2fb (diff)
Add verbose option
Diffstat (limited to 'vespa-feed-client-cli')
-rw-r--r--vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java6
-rw-r--r--vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java12
-rw-r--r--vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java3
-rw-r--r--vespa-feed-client-cli/src/test/resources/help.txt1
4 files changed, 16 insertions, 6 deletions
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java
index 125a27737ef..8855b08b06b 100644
--- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java
+++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java
@@ -47,6 +47,7 @@ class CliArguments {
private static final String ROUTE_OPTION = "route";
private static final String TIMEOUT_OPTION = "timeout";
private static final String TRACE_OPTION = "trace";
+ private static final String VERBOSE_OPTION = "verbose";
private static final String VERSION_OPTION = "version";
private static final String STDIN_OPTION = "stdin";
@@ -145,6 +146,8 @@ class CliArguments {
: Optional.empty();
}
+ boolean verboseSpecified() { return has(VERBOSE_OPTION); }
+
boolean readFeedFromStandardInput() { return has(STDIN_OPTION); }
private OptionalInt intValue(String option) throws CliArgumentsException {
@@ -253,6 +256,9 @@ class CliArguments {
.build())
.addOption(Option.builder()
.longOpt(STDIN_OPTION)
+ .build())
+ .addOption(Option.builder()
+ .longOpt(VERBOSE_OPTION)
.build());
}
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
index b94ccdce2da..553ae660888 100644
--- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
+++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
@@ -37,8 +37,9 @@ public class CliClient {
}
private int run(String[] rawArgs) {
+ CliArguments cliArgs = null;
try {
- CliArguments cliArgs = CliArguments.fromRawArgs(rawArgs);
+ cliArgs = CliArguments.fromRawArgs(rawArgs);
if (cliArgs.helpSpecified()) {
cliArgs.printHelp(systemOut);
return 0;
@@ -52,7 +53,8 @@ public class CliClient {
}
return 0;
} catch (CliArguments.CliArgumentsException | IOException e) {
- return handleException(e);
+ boolean verbose = cliArgs != null && cliArgs.verboseSpecified();
+ return handleException(verbose, e);
}
}
@@ -93,11 +95,11 @@ public class CliClient {
cliArgs.readFeedFromStandardInput() ? systemIn : Files.newInputStream(cliArgs.inputFile().get()));
}
- private int handleException(Exception e) { return handleException(e.getMessage(), e); }
+ private int handleException(boolean verbose, Exception e) { return handleException(verbose, e.getMessage(), e); }
- private int handleException(String message, Exception exception) {
+ private int handleException(boolean verbose, String message, Exception exception) {
systemError.println(message);
- if (debugMode()) {
+ if (debugMode() || verbose) {
exception.printStackTrace(systemError);
}
return 1;
diff --git a/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java b/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java
index 14b69f20ad0..a99399e638d 100644
--- a/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java
+++ b/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java
@@ -23,7 +23,7 @@ class CliArgumentsTest {
"--max-streams-per-connection=128", "--certificate=cert.pem", "--private-key=key.pem",
"--ca-certificates=ca-certs.pem", "--disable-ssl-hostname-verification",
"--header=\"My-Header: my-value\"", "--header", "Another-Header: another-value", "--benchmark",
- "--route=myroute", "--timeout=0.125", "--trace=9"});
+ "--route=myroute", "--timeout=0.125", "--trace=9", "--verbose"});
assertEquals(URI.create("https://vespa.ai:4443/"), args.endpoint());
assertEquals(Paths.get("feed.json"), args.inputFile().get());
assertEquals(10, args.connections().getAsInt());
@@ -41,6 +41,7 @@ class CliArgumentsTest {
assertEquals("myroute", args.route().get());
assertEquals(Duration.ofMillis(125), args.timeout().get());
assertEquals(9, args.traceLevel().getAsInt());
+ assertTrue(args.verboseSpecified());
}
@Test
diff --git a/vespa-feed-client-cli/src/test/resources/help.txt b/vespa-feed-client-cli/src/test/resources/help.txt
index 56441ee0728..29f24e8c672 100644
--- a/vespa-feed-client-cli/src/test/resources/help.txt
+++ b/vespa-feed-client-cli/src/test/resources/help.txt
@@ -15,4 +15,5 @@ Vespa feed client
--stdin
--timeout <arg>
--trace <arg>
+ --verbose
--version