diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2022-02-02 12:36:01 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2022-02-02 12:36:01 +0100 |
commit | 0f5eaa1c25b698b8a6e588b42200ce0ccfb5937d (patch) | |
tree | c240c18f6e7e08cae087ec6280ee03eefb846598 /vespa-feed-client-cli/src/main | |
parent | 611453d5778bef8e8312c9c9ac7a62eb7001d947 (diff) |
Make doom seconds configurable for CLI
Diffstat (limited to 'vespa-feed-client-cli/src/main')
-rw-r--r-- | vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java | 13 | ||||
-rw-r--r-- | vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliClient.java | 3 |
2 files changed, 14 insertions, 2 deletions
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java index 4374be94dbd..ac859359bfa 100644 --- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java +++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java @@ -54,6 +54,7 @@ class CliArguments { private static final String SILENT_OPTION = "silent"; private static final String VERSION_OPTION = "version"; private static final String STDIN_OPTION = "stdin"; + private static final String DOOM_OPTION = "max-failure-seconds"; private final CommandLine arguments; @@ -149,6 +150,8 @@ class CliArguments { OptionalInt traceLevel() throws CliArgumentsException { return intValue(TRACE_OPTION); } + OptionalInt doomSeconds() throws CliArgumentsException { return intValue(DOOM_OPTION); } + Optional<Duration> timeout() throws CliArgumentsException { OptionalDouble timeout = doubleValue(TIMEOUT_OPTION); return timeout.isPresent() @@ -279,8 +282,14 @@ class CliArguments { .type(Number.class) .build()) .addOption(Option.builder() - .longOpt(STDIN_OPTION) - .desc("Read JSON input from standard input") + .longOpt(STDIN_OPTION) + .desc("Read JSON input from standard input") + .build()) + .addOption(Option.builder() + .longOpt(DOOM_OPTION) + .desc("Exit if specified number of seconds ever pass without any successful operations. Disabled by default") + .hasArg() + .type(Number.class) .build()) .addOption(Option.builder() .longOpt(DRYRUN_OPTION) diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliClient.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliClient.java index 83358585935..5e904b37588 100644 --- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliClient.java +++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliClient.java @@ -19,6 +19,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.nio.file.Files; +import java.time.Duration; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -135,6 +136,8 @@ public class CliClient { cliArgs.caCertificates().ifPresent(builder::setCaCertificatesFile); cliArgs.headers().forEach(builder::addRequestHeader); builder.setDryrun(cliArgs.dryrunEnabled()); + cliArgs.doomSeconds().ifPresent(doom -> builder.setCircuitBreaker(new GracePeriodCircuitBreaker(Duration.ofSeconds(10), + Duration.ofSeconds(doom)))); return builder.build(); } |