summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2021-01-05 12:29:17 +0100
committerGitHub <noreply@github.com>2021-01-05 12:29:17 +0100
commit75b2e4c11ea6463c335f1c77dab3fdb5493e5600 (patch)
tree1c01f7e4d6492ed9e508d8841f975e2c1fc177c6 /vespaclient-container-plugin
parent25f217ff7f0c4f8ae921b71788a083c6b6acf2cc (diff)
Revert "Jonmv/remove storage policy"
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java14
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java11
2 files changed, 17 insertions, 8 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index 2988ce07ae6..5a370209f1c 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -377,6 +377,10 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
.map(parameters::withRoute)
.orElse(parameters);
break;
+ case CONDITION:
+ parameters = getProperty(request, ROUTE).map(parameters::withRoute)
+ .orElse(parameters);
+ break;
case FIELD_SET:
parameters = getProperty(request, FIELD_SET).map(parameters::withFieldSet)
.orElse(parameters);
@@ -698,7 +702,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
this.reader = reader;
}
- /** Write is complete when we have stored the buffer — call completion handler. */
+ /** Write is complete when we have stored the buffer — call completion handler. */
@Override
public void write(ByteBuffer buf, CompletionHandler handler) {
try {
@@ -944,15 +948,18 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
static class StorageCluster {
private final String name;
+ private final String configId;
private final Map<String, String> documentBuckets;
- StorageCluster(String name, Map<String, String> documentBuckets) {
+ StorageCluster(String name, String configId, Map<String, String> documentBuckets) {
this.name = requireNonNull(name);
+ this.configId = requireNonNull(configId);
this.documentBuckets = Map.copyOf(documentBuckets);
}
String name() { return name; }
- String route() { return name() + "-direct"; }
+ String configId() { return configId; }
+ String route() { return "[Storage:cluster=" + name() + ";clusterconfigid=" + configId() + "]"; }
Optional<String> bucketOf(String documentType) { return Optional.ofNullable(documentBuckets.get(documentType)); }
}
@@ -961,6 +968,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
return clusters.storage().stream()
.collect(toUnmodifiableMap(storage -> storage.name(),
storage -> new StorageCluster(storage.name(),
+ storage.configid(),
buckets.cluster(storage.name())
.documentType().entrySet().stream()
.collect(toMap(entry -> entry.getKey(),
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index 2b47f9c92c2..826821981ba 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -113,6 +113,7 @@ public class DocumentV1ApiTest {
}
final Map<String, StorageCluster> clusters = Map.of("content", new StorageCluster("content",
+ "config-id",
Map.of("music", "default")));
ManualClock clock;
MockDocumentAccess access;
@@ -138,7 +139,7 @@ public class DocumentV1ApiTest {
public void testResolveCluster() {
assertEquals("content",
DocumentV1ApiHandler.resolveCluster(Optional.empty(), clusters).name());
- assertEquals("content-direct",
+ assertEquals("[Storage:cluster=content;clusterconfigid=config-id]",
DocumentV1ApiHandler.resolveCluster(Optional.of("content"), clusters).route());
try {
DocumentV1ApiHandler.resolveCluster(Optional.empty(), Map.of());
@@ -156,8 +157,8 @@ public class DocumentV1ApiTest {
}
try {
Map<String, StorageCluster> twoClusters = new TreeMap<>();
- twoClusters.put("one", new StorageCluster("one", Map.of()));
- twoClusters.put("two", new StorageCluster("two", Map.of()));
+ twoClusters.put("one", new StorageCluster("one", "one-config", Map.of()));
+ twoClusters.put("two", new StorageCluster("two", "two-config", Map.of()));
DocumentV1ApiHandler.resolveCluster(Optional.empty(), twoClusters);
fail("More than one cluster and no document type should fail");
}
@@ -192,7 +193,7 @@ public class DocumentV1ApiTest {
// GET at root is a visit. Numeric parameters have an upper bound.
access.expect(parameters -> {
- assertEquals("content-direct", parameters.getRoute().toString());
+ assertEquals("[Storage:cluster=content;clusterconfigid=config-id]", parameters.getRoute().toString());
assertEquals("default", parameters.getBucketSpace());
assertEquals(1024, parameters.getMaxTotalHits());
assertEquals(100, ((StaticThrottlePolicy) parameters.getThrottlePolicy()).getMaxPendingCount());
@@ -274,7 +275,7 @@ public class DocumentV1ApiTest {
// GET with full document ID is a document get operation which returns 404 when no document is found
access.session.expect((id, parameters) -> {
assertEquals(doc1.getId(), id);
- assertEquals(parameters().withRoute("content-direct").withFieldSet("go"), parameters);
+ assertEquals(parameters().withRoute("[Storage:cluster=content;clusterconfigid=config-id]").withFieldSet("go"), parameters);
parameters.responseHandler().get().handleResponse(new DocumentResponse(0, null));
return new Result(Result.ResultType.SUCCESS, null);
});