From 2072f52dddc525a2e1dff65e70d559e392fad74a Mon Sep 17 00:00:00 2001 From: Max Hniebergall Date: Fri, 25 Oct 2024 17:17:32 -0400 Subject: [PATCH 1/2] Put default endpoitns behind feature flag --- .../DefaultDistributionDescriptor.java | 2 +- .../integration/ModelRegistryIT.java | 6 +- .../inference/registry/ModelRegistry.java | 154 +++++++++++------- .../ElasticsearchInternalService.java | 25 ++- .../registry/ModelRegistryTests.java | 92 ++++++----- .../ElasticsearchInternalServiceTests.java | 12 +- 6 files changed, 174 insertions(+), 117 deletions(-) diff --git a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java index a1c2b9e3d1854..837c1a7a22825 100644 --- a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java +++ b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java @@ -35,7 +35,7 @@ public boolean isSnapshot() { } public Path getDistributionDir() { - return distributionDir.resolve("elasticsearch-" + version + (snapshot ? "-SNAPSHOT" : "")); + return distributionDir.resolve("elasticsearch-" + version); } public DistributionType getType() { diff --git a/x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/ModelRegistryIT.java b/x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/ModelRegistryIT.java index be6b3725b0f35..a83e60de1feb8 100644 --- a/x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/ModelRegistryIT.java +++ b/x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/ModelRegistryIT.java @@ -31,6 +31,7 @@ import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.xcontent.ToXContentObject; import org.elasticsearch.xcontent.XContentBuilder; +import org.elasticsearch.xpack.inference.DefaultElserFeatureFlag; import org.elasticsearch.xpack.inference.InferencePlugin; import org.elasticsearch.xpack.inference.chunking.ChunkingSettingsTests; import org.elasticsearch.xpack.inference.registry.ModelRegistry; @@ -316,8 +317,9 @@ public void testGetAllModels_WithDefaults() throws Exception { listener.onResponse(defaultConfigs); return Void.TYPE; }).when(service).defaultConfigs(any()); - - defaultIds.forEach(modelRegistry::addDefaultIds); + if (DefaultElserFeatureFlag.isEnabled()) { + defaultIds.forEach(modelRegistry::addDefaultIds); + } AtomicReference putModelHolder = new AtomicReference<>(); AtomicReference exceptionHolder = new AtomicReference<>(); diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/registry/ModelRegistry.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/registry/ModelRegistry.java index 4506a05d58054..ca76b75a2666e 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/registry/ModelRegistry.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/registry/ModelRegistry.java @@ -49,6 +49,7 @@ import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xpack.core.ClientHelper; +import org.elasticsearch.xpack.inference.DefaultElserFeatureFlag; import org.elasticsearch.xpack.inference.InferenceIndex; import org.elasticsearch.xpack.inference.InferenceSecretsIndex; import org.elasticsearch.xpack.inference.services.ServiceUtils; @@ -117,19 +118,23 @@ public ModelRegistry(Client client) { * @param defaultConfigIds The defaults */ public void addDefaultIds(InferenceService.DefaultConfigId defaultConfigIds) { - var matched = idMatchedDefault(defaultConfigIds.inferenceId(), this.defaultConfigIds); - if (matched.isPresent()) { - throw new IllegalStateException( - "Cannot add default endpoint to the inference endpoint registry with duplicate inference id [" - + defaultConfigIds.inferenceId() - + "] declared by service [" - + defaultConfigIds.service().name() - + "]. The inference Id is already use by [" - + matched.get().service().name() - + "] service." - ); + if (DefaultElserFeatureFlag.isEnabled()) { + var matched = idMatchedDefault(defaultConfigIds.inferenceId(), this.defaultConfigIds); + if (matched.isPresent()) { + throw new IllegalStateException( + "Cannot add default endpoint to the inference endpoint registry with duplicate inference id [" + + defaultConfigIds.inferenceId() + + "] declared by service [" + + defaultConfigIds.service().name() + + "]. The inference Id is already use by [" + + matched.get().service().name() + + "] service." + ); + } + this.defaultConfigIds.add(defaultConfigIds); + } else { + logger.error("Attempted to addDefaultIds [{}] with the feature flag disabled", defaultConfigIds.inferenceId()); } - this.defaultConfigIds.add(defaultConfigIds); } /** @@ -142,7 +147,7 @@ public void getModelWithSecrets(String inferenceEntityId, ActionListener lis // There should be a hit for the configurations if (searchResponse.getHits().getHits().length == 0) { var maybeDefault = idMatchedDefault(inferenceEntityId, defaultConfigIds); - if (maybeDefault.isPresent()) { + if (DefaultElserFeatureFlag.isEnabled() && maybeDefault.isPresent()) { getDefaultConfig(true, maybeDefault.get(), listener); } else { delegate.onFailure(inferenceNotFoundException(inferenceEntityId)); @@ -209,8 +214,12 @@ private ResourceNotFoundException inferenceNotFoundException(String inferenceEnt public void getModelsByTaskType(TaskType taskType, ActionListener> listener) { ActionListener searchListener = listener.delegateFailureAndWrap((delegate, searchResponse) -> { var modelConfigs = parseHitsAsModels(searchResponse.getHits()).stream().map(ModelRegistry::unparsedModelFromMap).toList(); - var defaultConfigsForTaskType = taskTypeMatchedDefaults(taskType, defaultConfigIds); - addAllDefaultConfigsIfMissing(true, modelConfigs, defaultConfigsForTaskType, delegate); + if (DefaultElserFeatureFlag.isEnabled()) { + var defaultConfigsForTaskType = taskTypeMatchedDefaults(taskType, defaultConfigIds); + addAllDefaultConfigsIfMissing(true, modelConfigs, defaultConfigsForTaskType, delegate); + } else { + delegate.onResponse(modelConfigs); + } }); QueryBuilder queryBuilder = QueryBuilders.constantScoreQuery(QueryBuilders.termsQuery(TASK_TYPE_FIELD, taskType.toString())); @@ -240,7 +249,11 @@ public void getModelsByTaskType(TaskType taskType, ActionListener> listener) { ActionListener searchListener = listener.delegateFailureAndWrap((delegate, searchResponse) -> { var foundConfigs = parseHitsAsModels(searchResponse.getHits()).stream().map(ModelRegistry::unparsedModelFromMap).toList(); - addAllDefaultConfigsIfMissing(persistDefaultEndpoints, foundConfigs, defaultConfigIds, delegate); + if (DefaultElserFeatureFlag.isEnabled()) { + addAllDefaultConfigsIfMissing(persistDefaultEndpoints, foundConfigs, defaultConfigIds, delegate); + } else { + delegate.onResponse(foundConfigs); + } }); // In theory the index should only contain model config documents @@ -264,26 +277,32 @@ private void addAllDefaultConfigsIfMissing( List matchedDefaults, ActionListener> listener ) { - var foundIds = foundConfigs.stream().map(UnparsedModel::inferenceEntityId).collect(Collectors.toSet()); - var missing = matchedDefaults.stream().filter(d -> foundIds.contains(d.inferenceId()) == false).toList(); + if (DefaultElserFeatureFlag.isEnabled()) { - if (missing.isEmpty()) { - listener.onResponse(foundConfigs); - } else { - var groupedListener = new GroupedActionListener( - missing.size(), - listener.delegateFailure((delegate, listOfModels) -> { - var allConfigs = new ArrayList(); - allConfigs.addAll(foundConfigs); - allConfigs.addAll(listOfModels); - allConfigs.sort(Comparator.comparing(UnparsedModel::inferenceEntityId)); - delegate.onResponse(allConfigs); - }) - ); + var foundIds = foundConfigs.stream().map(UnparsedModel::inferenceEntityId).collect(Collectors.toSet()); + var missing = matchedDefaults.stream().filter(d -> foundIds.contains(d.inferenceId()) == false).toList(); + + if (missing.isEmpty()) { + listener.onResponse(foundConfigs); + } else { + var groupedListener = new GroupedActionListener( + missing.size(), + listener.delegateFailure((delegate, listOfModels) -> { + var allConfigs = new ArrayList(); + allConfigs.addAll(foundConfigs); + allConfigs.addAll(listOfModels); + allConfigs.sort(Comparator.comparing(UnparsedModel::inferenceEntityId)); + delegate.onResponse(allConfigs); + }) + ); - for (var required : missing) { - getDefaultConfig(persistDefaultEndpoints, required, groupedListener); + for (var required : missing) { + getDefaultConfig(persistDefaultEndpoints, required, groupedListener); + } } + } else { + logger.error("Attempted to add default configs with the feature flag disabled"); + assert false; } } @@ -292,40 +311,52 @@ private void getDefaultConfig( InferenceService.DefaultConfigId defaultConfig, ActionListener listener ) { - defaultConfig.service().defaultConfigs(listener.delegateFailureAndWrap((delegate, models) -> { - boolean foundModel = false; - for (var m : models) { - if (m.getInferenceEntityId().equals(defaultConfig.inferenceId())) { - foundModel = true; - if (persistDefaultEndpoints) { - storeDefaultEndpoint(m, () -> listener.onResponse(modelToUnparsedModel(m))); - } else { - listener.onResponse(modelToUnparsedModel(m)); + if (DefaultElserFeatureFlag.isEnabled()) { + + defaultConfig.service().defaultConfigs(listener.delegateFailureAndWrap((delegate, models) -> { + boolean foundModel = false; + for (var m : models) { + if (m.getInferenceEntityId().equals(defaultConfig.inferenceId())) { + foundModel = true; + if (persistDefaultEndpoints) { + storeDefaultEndpoint(m, () -> listener.onResponse(modelToUnparsedModel(m))); + } else { + listener.onResponse(modelToUnparsedModel(m)); + } + break; } - break; } - } - if (foundModel == false) { - listener.onFailure( - new IllegalStateException("Configuration not found for default inference id [" + defaultConfig.inferenceId() + "]") - ); - } - })); + if (foundModel == false) { + listener.onFailure( + new IllegalStateException("Configuration not found for default inference id [" + defaultConfig.inferenceId() + "]") + ); + } + })); + } else { + logger.error("Attempted to get default configs with the feature flag disabled"); + assert false; + } } private void storeDefaultEndpoint(Model preconfigured, Runnable runAfter) { - var responseListener = ActionListener.wrap(success -> { - logger.debug("Added default inference endpoint [{}]", preconfigured.getInferenceEntityId()); - }, exception -> { - if (exception instanceof ResourceAlreadyExistsException) { - logger.debug("Default inference id [{}] already exists", preconfigured.getInferenceEntityId()); - } else { - logger.error("Failed to store default inference id [" + preconfigured.getInferenceEntityId() + "]", exception); - } - }); + if (DefaultElserFeatureFlag.isEnabled()) { + + var responseListener = ActionListener.wrap(success -> { + logger.debug("Added default inference endpoint [{}]", preconfigured.getInferenceEntityId()); + }, exception -> { + if (exception instanceof ResourceAlreadyExistsException) { + logger.debug("Default inference id [{}] already exists", preconfigured.getInferenceEntityId()); + } else { + logger.error("Failed to store default inference id [" + preconfigured.getInferenceEntityId() + "]", exception); + } + }); - storeModel(preconfigured, ActionListener.runAfter(responseListener, runAfter)); + storeModel(preconfigured, ActionListener.runAfter(responseListener, runAfter)); + } else { + logger.error("Attempted to store default endpoint with the feature flag disabled"); + assert false; + } } private ArrayList parseHitsAsModels(SearchHits hits) { @@ -673,6 +704,7 @@ static List taskTypeMatchedDefaults( TaskType taskType, List defaultConfigIds ) { + assert DefaultElserFeatureFlag.isEnabled(); return defaultConfigIds.stream() .filter(defaultConfigId -> defaultConfigId.taskType().equals(taskType)) .collect(Collectors.toList()); diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalService.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalService.java index 3500577227fc2..db386b45e315e 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalService.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalService.java @@ -47,6 +47,7 @@ import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TextExpansionConfigUpdate; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TextSimilarityConfig; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TextSimilarityConfigUpdate; +import org.elasticsearch.xpack.inference.DefaultElserFeatureFlag; import org.elasticsearch.xpack.inference.chunking.ChunkingSettingsBuilder; import org.elasticsearch.xpack.inference.chunking.EmbeddingRequestChunker; import org.elasticsearch.xpack.inference.services.ConfigurationParseContext; @@ -113,7 +114,7 @@ public void parseRequestConfig( Map config, ActionListener modelListener ) { - if (inferenceEntityId.equals(DEFAULT_ELSER_ID)) { + if (DefaultElserFeatureFlag.isEnabled() && inferenceEntityId.equals(DEFAULT_ELSER_ID)) { modelListener.onFailure( new ElasticsearchStatusException( "[{}] is a reserved inference Id. Cannot create a new inference endpoint with a reserved Id", @@ -769,6 +770,8 @@ private RankedDocsResults textSimilarityResultsToRankedDocs( } public List defaultConfigIds() { + assert DefaultElserFeatureFlag.isEnabled(); + return List.of( new DefaultConfigId(DEFAULT_ELSER_ID, TaskType.SPARSE_EMBEDDING, this), new DefaultConfigId(DEFAULT_E5_ID, TaskType.TEXT_EMBEDDING, this) @@ -817,13 +820,18 @@ public void updateModelsWithDynamicFields(List models, ActionListener> defaultsListener) { - preferredModelVariantFn.accept(defaultsListener.delegateFailureAndWrap((delegate, preferredModelVariant) -> { - if (PreferredModelVariant.LINUX_X86_OPTIMIZED.equals(preferredModelVariant)) { - defaultsListener.onResponse(defaultConfigsLinuxOptimized()); - } else { - defaultsListener.onResponse(defaultConfigsPlatfromAgnostic()); - } - })); + if (DefaultElserFeatureFlag.isEnabled()) { + preferredModelVariantFn.accept(defaultsListener.delegateFailureAndWrap((delegate, preferredModelVariant) -> { + if (PreferredModelVariant.LINUX_X86_OPTIMIZED.equals(preferredModelVariant)) { + defaultsListener.onResponse(defaultConfigsLinuxOptimized()); + } else { + defaultsListener.onResponse(defaultConfigsPlatfromAgnostic()); + } + })); + } else { + logger.error("Attempted to add default configs with the feature flag disabled"); + assert false; + } } private List defaultConfigsLinuxOptimized() { @@ -865,6 +873,7 @@ private List defaultConfigs(boolean useLinuxOptimizedModel) { @Override boolean isDefaultId(String inferenceId) { + assert DefaultElserFeatureFlag.isEnabled(); return DEFAULT_ELSER_ID.equals(inferenceId) || DEFAULT_E5_ID.equals(inferenceId); } diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/registry/ModelRegistryTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/registry/ModelRegistryTests.java index 409d62426949c..93766bdba1966 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/registry/ModelRegistryTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/registry/ModelRegistryTests.java @@ -31,6 +31,7 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.xpack.inference.DefaultElserFeatureFlag; import org.elasticsearch.xpack.inference.model.TestModel; import org.junit.After; import org.junit.Before; @@ -294,53 +295,62 @@ public void testStoreModel_ThrowsException_WhenFailureIsNotAVersionConflict() { } public void testIdMatchedDefault() { - var defaultConfigIds = new ArrayList(); - defaultConfigIds.add(new InferenceService.DefaultConfigId("foo", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); - defaultConfigIds.add(new InferenceService.DefaultConfigId("bar", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); - - var matched = ModelRegistry.idMatchedDefault("bar", defaultConfigIds); - assertEquals(defaultConfigIds.get(1), matched.get()); - matched = ModelRegistry.idMatchedDefault("baz", defaultConfigIds); - assertFalse(matched.isPresent()); + if (DefaultElserFeatureFlag.isEnabled()) { + + var defaultConfigIds = new ArrayList(); + defaultConfigIds.add(new InferenceService.DefaultConfigId("foo", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); + defaultConfigIds.add(new InferenceService.DefaultConfigId("bar", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); + + var matched = ModelRegistry.idMatchedDefault("bar", defaultConfigIds); + assertEquals(defaultConfigIds.get(1), matched.get()); + matched = ModelRegistry.idMatchedDefault("baz", defaultConfigIds); + assertFalse(matched.isPresent()); + } } public void testTaskTypeMatchedDefaults() { - var defaultConfigIds = new ArrayList(); - defaultConfigIds.add(new InferenceService.DefaultConfigId("s1", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); - defaultConfigIds.add(new InferenceService.DefaultConfigId("s2", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); - defaultConfigIds.add(new InferenceService.DefaultConfigId("d1", TaskType.TEXT_EMBEDDING, mock(InferenceService.class))); - defaultConfigIds.add(new InferenceService.DefaultConfigId("c1", TaskType.COMPLETION, mock(InferenceService.class))); - - var matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.SPARSE_EMBEDDING, defaultConfigIds); - assertThat(matched, contains(defaultConfigIds.get(0), defaultConfigIds.get(1))); - matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.TEXT_EMBEDDING, defaultConfigIds); - assertThat(matched, contains(defaultConfigIds.get(2))); - matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.RERANK, defaultConfigIds); - assertThat(matched, empty()); + if (DefaultElserFeatureFlag.isEnabled()) { + + var defaultConfigIds = new ArrayList(); + defaultConfigIds.add(new InferenceService.DefaultConfigId("s1", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); + defaultConfigIds.add(new InferenceService.DefaultConfigId("s2", TaskType.SPARSE_EMBEDDING, mock(InferenceService.class))); + defaultConfigIds.add(new InferenceService.DefaultConfigId("d1", TaskType.TEXT_EMBEDDING, mock(InferenceService.class))); + defaultConfigIds.add(new InferenceService.DefaultConfigId("c1", TaskType.COMPLETION, mock(InferenceService.class))); + + var matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.SPARSE_EMBEDDING, defaultConfigIds); + assertThat(matched, contains(defaultConfigIds.get(0), defaultConfigIds.get(1))); + matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.TEXT_EMBEDDING, defaultConfigIds); + assertThat(matched, contains(defaultConfigIds.get(2))); + matched = ModelRegistry.taskTypeMatchedDefaults(TaskType.RERANK, defaultConfigIds); + assertThat(matched, empty()); + } } public void testDuplicateDefaultIds() { - var client = mockBulkClient(); - var registry = new ModelRegistry(client); - - var id = "my-inference"; - var mockServiceA = mock(InferenceService.class); - when(mockServiceA.name()).thenReturn("service-a"); - var mockServiceB = mock(InferenceService.class); - when(mockServiceB.name()).thenReturn("service-b"); - - registry.addDefaultIds(new InferenceService.DefaultConfigId(id, randomFrom(TaskType.values()), mockServiceA)); - var ise = expectThrows( - IllegalStateException.class, - () -> registry.addDefaultIds(new InferenceService.DefaultConfigId(id, randomFrom(TaskType.values()), mockServiceB)) - ); - assertThat( - ise.getMessage(), - containsString( - "Cannot add default endpoint to the inference endpoint registry with duplicate inference id [my-inference] declared by " - + "service [service-b]. The inference Id is already use by [service-a] service." - ) - ); + if (DefaultElserFeatureFlag.isEnabled()) { + + var client = mockBulkClient(); + var registry = new ModelRegistry(client); + + var id = "my-inference"; + var mockServiceA = mock(InferenceService.class); + when(mockServiceA.name()).thenReturn("service-a"); + var mockServiceB = mock(InferenceService.class); + when(mockServiceB.name()).thenReturn("service-b"); + + registry.addDefaultIds(new InferenceService.DefaultConfigId(id, randomFrom(TaskType.values()), mockServiceA)); + var ise = expectThrows( + IllegalStateException.class, + () -> registry.addDefaultIds(new InferenceService.DefaultConfigId(id, randomFrom(TaskType.values()), mockServiceB)) + ); + assertThat( + ise.getMessage(), + containsString( + "Cannot add default endpoint to the inference endpoint registry with duplicate inference id [my-inference] declared by " + + "service [service-b]. The inference Id is already use by [service-a] service." + ) + ); + } } private Client mockBulkClient() { diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalServiceTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalServiceTests.java index d90579831a3da..df852677146e5 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalServiceTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElasticsearchInternalServiceTests.java @@ -56,6 +56,7 @@ import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TextExpansionConfig; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TextSimilarityConfig; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TokenizationConfigUpdate; +import org.elasticsearch.xpack.inference.DefaultElserFeatureFlag; import org.elasticsearch.xpack.inference.InferencePlugin; import org.elasticsearch.xpack.inference.chunking.ChunkingSettingsTests; import org.elasticsearch.xpack.inference.chunking.EmbeddingRequestChunker; @@ -1445,10 +1446,13 @@ public void testEmbeddingTypeFromTaskTypeAndSettings() { } public void testIsDefaultId() { - var service = createService(mock(Client.class)); - assertTrue(service.isDefaultId(".elser-2-elasticsearch")); - assertTrue(service.isDefaultId(".multilingual-e5-small-elasticsearch")); - assertFalse(service.isDefaultId("foo")); + if (DefaultElserFeatureFlag.isEnabled()) { + + var service = createService(mock(Client.class)); + assertTrue(service.isDefaultId(".elser-2-elasticsearch")); + assertTrue(service.isDefaultId(".multilingual-e5-small-elasticsearch")); + assertFalse(service.isDefaultId("foo")); + } } private ElasticsearchInternalService createService(Client client) { From 658e9e96b4e0780b64fd2b027f45dda91024d872 Mon Sep 17 00:00:00 2001 From: Max Hniebergall Date: Mon, 28 Oct 2024 09:37:03 -0400 Subject: [PATCH 2/2] undo irrelevent change --- .../local/distribution/DefaultDistributionDescriptor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java index 837c1a7a22825..a1c2b9e3d1854 100644 --- a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java +++ b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/distribution/DefaultDistributionDescriptor.java @@ -35,7 +35,7 @@ public boolean isSnapshot() { } public Path getDistributionDir() { - return distributionDir.resolve("elasticsearch-" + version); + return distributionDir.resolve("elasticsearch-" + version + (snapshot ? "-SNAPSHOT" : "")); } public DistributionType getType() {