From 5fec3608e404237ac006b59a4acf41bcfb1353dc Mon Sep 17 00:00:00 2001 From: jonmv Date: Thu, 11 Aug 2022 13:44:37 +0200 Subject: Add --speedTest to feed client CLI, and dryRun to /doc/v1 --- .../main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java | 7 +++++++ .../src/main/java/ai/vespa/feed/client/impl/HttpFeedClient.java | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'vespa-feed-client') diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java index 134ad464618..c70cb7cd850 100644 --- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java +++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java @@ -49,6 +49,7 @@ public class FeedClientBuilderImpl implements FeedClientBuilder { Collection caCertificates; boolean benchmark = true; boolean dryrun = false; + boolean speedTest = false; URI proxy; @@ -170,6 +171,12 @@ public class FeedClientBuilderImpl implements FeedClientBuilder { return this; } + @Override + public FeedClientBuilder setSpeedTest(boolean enabled) { + this.speedTest = enabled; + return this; + } + /** * Overrides JVM default SSL truststore * @param caCertificatesFile Path to PEM encoded file containing trusted certificates diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpFeedClient.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpFeedClient.java index c136d697a0b..9037c2377bb 100644 --- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpFeedClient.java +++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/HttpFeedClient.java @@ -41,6 +41,7 @@ class HttpFeedClient implements FeedClient { private final Map> requestHeaders; private final RequestStrategy requestStrategy; private final AtomicBoolean closed = new AtomicBoolean(); + private final boolean speedTest; HttpFeedClient(FeedClientBuilderImpl builder) throws IOException { this(builder, new HttpRequestStrategy(builder)); @@ -49,6 +50,7 @@ class HttpFeedClient implements FeedClient { HttpFeedClient(FeedClientBuilderImpl builder, RequestStrategy requestStrategy) { this.requestHeaders = new HashMap<>(builder.requestHeaders); this.requestStrategy = requestStrategy; + this.speedTest = builder.speedTest; } @Override @@ -90,7 +92,7 @@ class HttpFeedClient implements FeedClient { throw new IllegalStateException("Client is closed"); HttpRequest request = new HttpRequest(method, - getPath(documentId) + getQuery(params), + getPath(documentId) + getQuery(params, speedTest), requestHeaders, operationJson == null ? null : operationJson.getBytes(UTF_8), // TODO: make it bytes all the way? params.timeout().orElse(null)); @@ -217,13 +219,14 @@ class HttpFeedClient implements FeedClient { } } - static String getQuery(OperationParameters params) { + static String getQuery(OperationParameters params, boolean speedTest) { StringJoiner query = new StringJoiner("&", "?", "").setEmptyValue(""); if (params.createIfNonExistent()) query.add("create=true"); params.testAndSetCondition().ifPresent(condition -> query.add("condition=" + encode(condition))); params.timeout().ifPresent(timeout -> query.add("timeout=" + timeout.toMillis() + "ms")); params.route().ifPresent(route -> query.add("route=" + encode(route))); params.tracelevel().ifPresent(tracelevel -> query.add("tracelevel=" + tracelevel)); + if (speedTest) query.add("speedTest=true"); return query.toString(); } -- cgit v1.2.3