Skip to content

Commit fdc434f

Browse files
Fixing test and allowing duplicate calls
1 parent ca426ec commit fdc434f

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/InferenceRevokeDefaultEndpointsIT.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,11 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
204204
service.defaultConfigIds(),
205205
is(
206206
List.of(
207+
new InferenceService.DefaultConfigId(
208+
".elser-v2-elastic",
209+
MinimalServiceSettings.sparseEmbedding(),
210+
service
211+
),
207212
new InferenceService.DefaultConfigId(
208213
".rainbow-sprinkles-elastic",
209214
MinimalServiceSettings.chatCompletion(),
@@ -216,7 +221,8 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
216221

217222
PlainActionFuture<List<Model>> listener = new PlainActionFuture<>();
218223
service.defaultConfigs(listener);
219-
assertThat(listener.actionGet(TIMEOUT).get(0).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
224+
assertThat(listener.actionGet(TIMEOUT).get(0).getConfigurations().getInferenceEntityId(), is(".elser-v2-elastic"));
225+
assertThat(listener.actionGet(TIMEOUT).get(1).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
220226

221227
var getModelListener = new PlainActionFuture<UnparsedModel>();
222228
// persists the default endpoints
@@ -244,12 +250,22 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
244250
try (var service = createElasticInferenceService()) {
245251
service.waitForAuthorizationToComplete(TIMEOUT);
246252
assertThat(service.supportedStreamingTasks(), is(EnumSet.noneOf(TaskType.class)));
247-
assertTrue(service.defaultConfigIds().isEmpty());
253+
assertThat(
254+
service.defaultConfigIds(),
255+
is(
256+
List.of(
257+
new InferenceService.DefaultConfigId(
258+
".elser-v2-elastic",
259+
MinimalServiceSettings.sparseEmbedding(),
260+
service
261+
)
262+
)
263+
)
264+
);
248265
assertThat(service.supportedTaskTypes(), is(EnumSet.of(TaskType.SPARSE_EMBEDDING)));
249266

250267
var getModelListener = new PlainActionFuture<UnparsedModel>();
251268
modelRegistry.getModel(".rainbow-sprinkles-elastic", getModelListener);
252-
253269
var exception = expectThrows(ResourceNotFoundException.class, () -> getModelListener.actionGet(TIMEOUT));
254270
assertThat(exception.getMessage(), is("Inference endpoint not found [.rainbow-sprinkles-elastic]"));
255271
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/registry/ModelRegistry.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,20 @@ public boolean containsDefaultConfigId(String inferenceEntityId) {
126126
return defaultConfigIds.containsKey(inferenceEntityId);
127127
}
128128

129+
/**
130+
* Adds the default configuration information if it does not already exist internally.
131+
* @param defaultConfigId the default endpoint information
132+
*/
133+
public synchronized void putDefaultIdIfAbsent(InferenceService.DefaultConfigId defaultConfigId) {
134+
defaultConfigIds.putIfAbsent(defaultConfigId.inferenceId(), defaultConfigId);
135+
}
136+
129137
/**
130138
* Set the default inference ids provided by the services
131-
* @param defaultConfigId The default
139+
* @param defaultConfigId The default endpoint information
140+
* @throws IllegalStateException if the {@link InferenceService.DefaultConfigId#inferenceId()} already exists internally
132141
*/
133-
public synchronized void addDefaultIds(InferenceService.DefaultConfigId defaultConfigId) {
142+
public synchronized void addDefaultIds(InferenceService.DefaultConfigId defaultConfigId) throws IllegalStateException {
134143
var config = defaultConfigIds.get(defaultConfigId.inferenceId());
135144
if (config != null) {
136145
throw new IllegalStateException(

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elastic/ElasticInferenceService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ private synchronized void setAuthorizedContent(ElasticInferenceServiceAuthorizat
209209

210210
configuration = new Configuration(authRef.get().taskTypesAndModels.getAuthorizedTaskTypes());
211211

212-
defaultConfigIds().forEach(modelRegistry::addDefaultIds);
212+
defaultConfigIds().forEach(modelRegistry::putDefaultIdIfAbsent);
213213
handleRevokedDefaultConfigs(authorizedDefaultModelIds);
214214
}
215215

0 commit comments

Comments
 (0)