aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@oath.com>2018-12-06 17:16:29 +0100
committerGitHub <noreply@github.com>2018-12-06 17:16:29 +0100
commit9f9693d524562a356b7ead63c953d8c7995c09b0 (patch)
tree04d170dd7a4a9c7003ea537cef42c49f97b42a70 /vespaclient-container-plugin
parent07bdb8cb62350a2e1fbc0bbd25109600bf1d23a9 (diff)
Revert "Add and use cross cluster bucket space config"
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/OperationHandlerImpl.java18
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/RestApi.java11
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java2
3 files changed, 17 insertions, 14 deletions
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 2b12c7cd78c..65e7191e164 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
@@ -50,7 +50,7 @@ public class OperationHandlerImpl implements OperationHandler {
}
public interface BucketSpaceResolver {
- Optional<String> clusterBucketSpaceFromDocumentType(String clusterId, String docType);
+ Optional<String> clusterBucketSpaceFromDocumentType(String clusterConfigId, String docType);
}
public static class BucketSpaceRoute {
@@ -91,6 +91,20 @@ public class OperationHandlerImpl implements OperationHandler {
private final ConcurrentResourcePool<SyncSession> syncSessions;
+ private static ClusterEnumerator defaultClusterEnumerator() {
+ return () -> new ClusterList("client").getStorageClusters();
+ }
+
+ private static BucketSpaceResolver defaultBucketResolver() {
+ return (clusterConfigId, docType) -> Optional.ofNullable(BucketSpaceEnumerator
+ .fromConfig(clusterConfigId).getDoctypeToSpaceMapping()
+ .get(docType));
+ }
+
+ public OperationHandlerImpl(DocumentAccess documentAccess, ClusterEnumerator clusterEnumerator, MetricReceiver metricReceiver) {
+ this(documentAccess, clusterEnumerator, defaultBucketResolver(), metricReceiver);
+ }
+
public OperationHandlerImpl(DocumentAccess documentAccess, ClusterEnumerator clusterEnumerator,
BucketSpaceResolver bucketSpaceResolver, MetricReceiver metricReceiver) {
this.documentAccess = documentAccess;
@@ -321,7 +335,7 @@ public class OperationHandlerImpl implements OperationHandler {
String targetBucketSpace;
if (!restUri.isRootOnly()) {
String docType = restUri.getDocumentType();
- Optional<String> resolvedSpace = bucketSpaceResolver.clusterBucketSpaceFromDocumentType(clusterDef.getName(), docType);
+ Optional<String> resolvedSpace = bucketSpaceResolver.clusterBucketSpaceFromDocumentType(clusterDef.getConfigId(), docType);
if (!resolvedSpace.isPresent()) {
throw new RestApiException(Response.createErrorResponse(400, String.format(
"Document type '%s' in cluster '%s' is not mapped to a known bucket space", docType, clusterDef.getName()),
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 baf7dcb0f68..f088db31c23 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
@@ -30,7 +30,6 @@ import com.yahoo.documentapi.messagebus.loadtypes.LoadTypeSet;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.text.Text;
import com.yahoo.vespa.config.content.LoadTypeConfig;
-import com.yahoo.vespa.config.content.core.AllClustersBucketSpacesConfig;
import com.yahoo.vespaclient.ClusterDef;
import com.yahoo.vespaclient.ClusterList;
import com.yahoo.vespaxmlparser.VespaXMLFeedReader;
@@ -76,7 +75,6 @@ public class RestApi extends LoggingRequestHandler {
@Inject
public RestApi(LoggingRequestHandler.Context parentCtx, DocumentmanagerConfig documentManagerConfig,
LoadTypeConfig loadTypeConfig, ThreadpoolConfig threadpoolConfig,
- AllClustersBucketSpacesConfig bucketSpacesConfig,
ClusterListConfig clusterListConfig, MetricReceiver metricReceiver)
{
super(parentCtx);
@@ -85,7 +83,6 @@ public class RestApi extends LoggingRequestHandler {
this.operationHandler = new OperationHandlerImpl(
new MessageBusDocumentAccess(params),
fixedClusterEnumeratorFromConfig(clusterListConfig),
- fixedBucketSpaceResolverFromConfig(bucketSpacesConfig),
metricReceiver);
this.singleDocumentParser = new SingleDocumentParser(new DocumentTypeManager(documentManagerConfig));
// 40% of the threads can be blocked before we deny requests.
@@ -123,14 +120,6 @@ public class RestApi extends LoggingRequestHandler {
return () -> clusters;
}
- private static OperationHandlerImpl.BucketSpaceResolver fixedBucketSpaceResolverFromConfig(
- AllClustersBucketSpacesConfig bucketSpacesConfig) {
- return (clusterId, docType) ->
- Optional.ofNullable(bucketSpacesConfig.cluster(clusterId))
- .map(cluster -> cluster.documentType(docType))
- .map(type -> type.bucketSpace());
- }
-
private static Optional<String> requestProperty(String parameter, HttpRequest request) {
final String property = request.getProperty(parameter);
if (property != null && ! property.isEmpty()) {
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
index 30f039c31fb..4c04070cec4 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/OperationHandlerImplTest.java
@@ -132,7 +132,7 @@ public class OperationHandlerImplTest {
});
when(documentAccess.createSyncSession(any(SyncParameters.class))).thenReturn(mockSyncSession);
OperationHandlerImpl.ClusterEnumerator clusterEnumerator = () -> Arrays.asList(new ClusterDef("foo", "configId"));
- OperationHandlerImpl.BucketSpaceResolver bucketSpaceResolver = (clusterId, docType) -> Optional.ofNullable(bucketSpaces.get(docType));
+ OperationHandlerImpl.BucketSpaceResolver bucketSpaceResolver = (configId, docType) -> Optional.ofNullable(bucketSpaces.get(docType));
return new OperationHandlerImpl(documentAccess, clusterEnumerator, bucketSpaceResolver, MetricReceiver.nullImplementation);
}
}