summaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-container-plugin/src/main/java/com')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandler.java4
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java13
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java5
3 files changed, 18 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandler.java
index a6fdcb10a00..848fe4b5726 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandler.java
@@ -101,6 +101,10 @@ public interface OperationHandler {
default Optional<String> get(RestUri restUri, Optional<String> fieldSet) throws RestApiException {
return get(restUri);
}
+
+ default Optional<String> get(RestUri restUri, Optional<String> fieldSet, Optional<String> cluster) throws RestApiException {
+ return get(restUri, fieldSet);
+ }
/** Called just before this is disposed of */
default void shutdown() {}
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
index 4ca43f5fde2..333f1d2f8c9 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java
@@ -279,9 +279,13 @@ public class OperationHandlerImpl implements OperationHandler {
}
@Override
- public Optional<String> get(RestUri restUri, Optional<String> fieldSet) throws RestApiException {
+ public Optional<String> get(RestUri restUri, Optional<String> fieldSet, Optional<String> cluster) throws RestApiException {
SyncSession syncSession = syncSessions.alloc();
- setRoute(syncSession, Optional.empty());
+ // Explicit unary used instead of map() due to unhandled exceptions, blargh.
+ Optional<String> route = cluster.isPresent()
+ ? Optional.of(clusterDefToRoute(resolveClusterDef(cluster, clusterEnumerator.enumerateClusters())))
+ : Optional.empty();
+ setRoute(syncSession, route);
try {
DocumentId id = new DocumentId(restUri.generateFullId());
final Document document = syncSession.get(id, fieldSet.orElse(restUri.getDocumentType() + ":[document]"), DocumentProtocol.Priority.NORMAL_1);
@@ -301,6 +305,11 @@ public class OperationHandlerImpl implements OperationHandler {
}
@Override
+ public Optional<String> get(RestUri restUri, Optional<String> fieldSet) throws RestApiException {
+ return get(restUri, fieldSet, Optional.empty());
+ }
+
+ @Override
public Optional<String> get(RestUri restUri) throws RestApiException {
return get(restUri, Optional.empty());
}
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
index d2fd8d92495..7e572dae941 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java
@@ -262,8 +262,9 @@ public class RestApi extends LoggingRequestHandler {
}
private HttpResponse handleGet(RestUri restUri, HttpRequest request) throws RestApiException {
- final Optional<String> fieldSet = requestProperty("fieldSet", request);
- final Optional<String> getDocument = operationHandler.get(restUri, fieldSet);
+ final Optional<String> fieldSet = requestProperty(FIELD_SET, request);
+ final Optional<String> cluster = requestProperty(CLUSTER, request);
+ final Optional<String> getDocument = operationHandler.get(restUri, fieldSet, cluster);
final ObjectNode resultNode = mapper.createObjectNode();
if (getDocument.isPresent()) {
final JsonNode parseNode;