Skip to content

Commit 0410229

Browse files
authored
Remove all mentions of eis and gateway and deprecate flags that do (#116692)
1 parent e7a2a20 commit 0410229

File tree

11 files changed

+92
-20
lines changed

11 files changed

+92
-20
lines changed

docs/changelog/116692.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 116692
2+
summary: Remove all mentions of eis and gateway and deprecate flags that do
3+
area: Machine Learning
4+
type: enhancement
5+
issues: []

x-pack/plugin/inference/qa/inference-service-tests/src/javaRestTest/java/org/elasticsearch/xpack/inference/InferenceCrudIT.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ public void testApisWithoutTaskType() throws IOException {
134134
@SuppressWarnings("unchecked")
135135
public void testGetServicesWithoutTaskType() throws IOException {
136136
List<Object> services = getAllServices();
137-
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
137+
if ((ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()
138+
|| ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled())) {
138139
assertThat(services.size(), equalTo(18));
139140
} else {
140141
assertThat(services.size(), equalTo(17));
@@ -169,7 +170,8 @@ public void testGetServicesWithoutTaskType() throws IOException {
169170
"watsonxai"
170171
)
171172
);
172-
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
173+
if ((ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()
174+
|| ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled())) {
173175
providerList.add(6, "elastic");
174176
}
175177
assertArrayEquals(providers, providerList.toArray());
@@ -257,7 +259,8 @@ public void testGetServicesWithCompletionTaskType() throws IOException {
257259
public void testGetServicesWithSparseEmbeddingTaskType() throws IOException {
258260
List<Object> services = getServices(TaskType.SPARSE_EMBEDDING);
259261

260-
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
262+
if ((ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()
263+
|| ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled())) {
261264
assertThat(services.size(), equalTo(5));
262265
} else {
263266
assertThat(services.size(), equalTo(4));
@@ -272,7 +275,8 @@ public void testGetServicesWithSparseEmbeddingTaskType() throws IOException {
272275
Arrays.sort(providers);
273276

274277
var providerList = new ArrayList<>(Arrays.asList("alibabacloud-ai-search", "elasticsearch", "hugging_face", "test_service"));
275-
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
278+
if ((ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()
279+
|| ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled())) {
276280
providerList.add(1, "elastic");
277281
}
278282
assertArrayEquals(providers, providerList.toArray());

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

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
package org.elasticsearch.xpack.inference;
99

10+
import org.apache.logging.log4j.LogManager;
11+
import org.apache.logging.log4j.Logger;
1012
import org.apache.lucene.util.SetOnce;
1113
import org.elasticsearch.action.ActionRequest;
1214
import org.elasticsearch.action.ActionResponse;
@@ -91,7 +93,6 @@
9193
import org.elasticsearch.xpack.inference.services.cohere.CohereService;
9294
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService;
9395
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceComponents;
94-
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceFeature;
9596
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSettings;
9697
import org.elasticsearch.xpack.inference.services.elasticsearch.ElasticsearchInternalService;
9798
import org.elasticsearch.xpack.inference.services.googleaistudio.GoogleAiStudioService;
@@ -113,6 +114,9 @@
113114
import java.util.stream.Stream;
114115

115116
import static java.util.Collections.singletonList;
117+
import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService.ELASTIC_INFERENCE_SERVICE_IDENTIFIER;
118+
import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG;
119+
import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG;
116120

117121
public class InferencePlugin extends Plugin implements ActionPlugin, ExtensiblePlugin, SystemIndexPlugin, MapperPlugin, SearchPlugin {
118122

@@ -135,11 +139,13 @@ public class InferencePlugin extends Plugin implements ActionPlugin, ExtensibleP
135139
public static final String NAME = "inference";
136140
public static final String UTILITY_THREAD_POOL_NAME = "inference_utility";
137141

142+
private static final Logger log = LogManager.getLogger(InferencePlugin.class);
143+
138144
private final Settings settings;
139145
private final SetOnce<HttpRequestSender.Factory> httpFactory = new SetOnce<>();
140146
private final SetOnce<AmazonBedrockRequestSender.Factory> amazonBedrockFactory = new SetOnce<>();
141147
private final SetOnce<ServiceComponents> serviceComponents = new SetOnce<>();
142-
private final SetOnce<ElasticInferenceServiceComponents> eisComponents = new SetOnce<>();
148+
private final SetOnce<ElasticInferenceServiceComponents> elasticInferenceServiceComponents = new SetOnce<>();
143149
private final SetOnce<InferenceServiceRegistry> inferenceServiceRegistry = new SetOnce<>();
144150
private final SetOnce<ShardBulkInferenceActionFilter> shardBulkInferenceActionFilter = new SetOnce<>();
145151
private List<InferenceServiceExtension> inferenceServiceExtensions;
@@ -207,12 +213,35 @@ public Collection<?> createComponents(PluginServices services) {
207213
var inferenceServices = new ArrayList<>(inferenceServiceExtensions);
208214
inferenceServices.add(this::getInferenceServiceFactories);
209215

210-
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
211-
ElasticInferenceServiceSettings eisSettings = new ElasticInferenceServiceSettings(settings);
212-
eisComponents.set(new ElasticInferenceServiceComponents(eisSettings.getEisGatewayUrl()));
216+
// Set elasticInferenceUrl based on feature flags to support transitioning to the new Elastic Inference Service URL without exposing
217+
// internal names like "eis" or "gateway".
218+
ElasticInferenceServiceSettings inferenceServiceSettings = new ElasticInferenceServiceSettings(settings);
219+
220+
String elasticInferenceUrl = null;
221+
222+
if (ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
223+
elasticInferenceUrl = inferenceServiceSettings.getElasticInferenceServiceUrl();
224+
} else if (DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
225+
log.warn(
226+
"Deprecated flag {} detected for enabling {}. Please use {}.",
227+
ELASTIC_INFERENCE_SERVICE_IDENTIFIER,
228+
DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG,
229+
ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG
230+
);
231+
elasticInferenceUrl = inferenceServiceSettings.getEisGatewayUrl();
232+
}
233+
234+
if (elasticInferenceUrl != null) {
235+
elasticInferenceServiceComponents.set(new ElasticInferenceServiceComponents(elasticInferenceUrl));
213236

214237
inferenceServices.add(
215-
() -> List.of(context -> new ElasticInferenceService(httpFactory.get(), serviceComponents.get(), eisComponents.get()))
238+
() -> List.of(
239+
context -> new ElasticInferenceService(
240+
httpFactory.get(),
241+
serviceComponents.get(),
242+
elasticInferenceServiceComponents.get()
243+
)
244+
)
216245
);
217246
}
218247

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/action/elastic/ElasticInferenceServiceActionCreator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSparseEmbeddingsModel;
1616
import org.elasticsearch.xpack.inference.telemetry.TraceContext;
1717

18+
import java.util.Locale;
1819
import java.util.Objects;
1920

2021
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.constructFailedToSendRequestMessage;
22+
import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService.ELASTIC_INFERENCE_SERVICE_IDENTIFIER;
2123

2224
public class ElasticInferenceServiceActionCreator implements ElasticInferenceServiceActionVisitor {
2325

@@ -36,7 +38,10 @@ public ElasticInferenceServiceActionCreator(Sender sender, ServiceComponents ser
3638
@Override
3739
public ExecutableAction create(ElasticInferenceServiceSparseEmbeddingsModel model) {
3840
var requestManager = new ElasticInferenceServiceSparseEmbeddingsRequestManager(model, serviceComponents, traceContext);
39-
var errorMessage = constructFailedToSendRequestMessage(model.uri(), "Elastic Inference Service sparse embeddings");
41+
var errorMessage = constructFailedToSendRequestMessage(
42+
model.uri(),
43+
String.format(Locale.ROOT, "%s sparse embeddings", ELASTIC_INFERENCE_SERVICE_IDENTIFIER)
44+
);
4045
return new SenderExecutableAction(sender, requestManager, errorMessage);
4146
}
4247
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/http/sender/ElasticInferenceServiceSparseEmbeddingsRequestManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
import org.elasticsearch.xpack.inference.telemetry.TraceContext;
2323

2424
import java.util.List;
25+
import java.util.Locale;
2526
import java.util.function.Supplier;
2627

2728
import static org.elasticsearch.xpack.inference.common.Truncator.truncate;
29+
import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService.ELASTIC_INFERENCE_SERVICE_IDENTIFIER;
2830

2931
public class ElasticInferenceServiceSparseEmbeddingsRequestManager extends ElasticInferenceServiceRequestManager {
3032

@@ -40,7 +42,7 @@ public class ElasticInferenceServiceSparseEmbeddingsRequestManager extends Elast
4042

4143
private static ResponseHandler createSparseEmbeddingsHandler() {
4244
return new ElasticInferenceServiceResponseHandler(
43-
"Elastic Inference Service sparse embeddings",
45+
String.format(Locale.ROOT, "%s sparse embeddings", ELASTIC_INFERENCE_SERVICE_IDENTIFIER),
4446
ElasticInferenceServiceSparseEmbeddingsResponseEntity::fromResponse
4547
);
4648
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/response/elastic/ElasticInferenceServiceSparseEmbeddingsResponseEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class ElasticInferenceServiceSparseEmbeddingsResponseEntity {
3333
"Failed to find required field [%s] in Elastic Inference Service embeddings response";
3434

3535
/**
36-
* Parses the EIS json response.
36+
* Parses the Elastic Inference Service json response.
3737
*
3838
* For a request like:
3939
*

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
public class ElasticInferenceService extends SenderService {
6363

6464
public static final String NAME = "elastic";
65+
public static final String ELASTIC_INFERENCE_SERVICE_IDENTIFIER = "Elastic Inference Service";
6566

6667
private final ElasticInferenceServiceComponents elasticInferenceServiceComponents;
6768

@@ -70,10 +71,10 @@ public class ElasticInferenceService extends SenderService {
7071
public ElasticInferenceService(
7172
HttpRequestSender.Factory factory,
7273
ServiceComponents serviceComponents,
73-
ElasticInferenceServiceComponents eisComponents
74+
ElasticInferenceServiceComponents elasticInferenceServiceComponents
7475
) {
7576
super(factory, serviceComponents);
76-
this.elasticInferenceServiceComponents = eisComponents;
77+
this.elasticInferenceServiceComponents = elasticInferenceServiceComponents;
7778
}
7879

7980
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77

88
package org.elasticsearch.xpack.inference.services.elastic;
99

10-
public record ElasticInferenceServiceComponents(String eisGatewayUrl) {}
10+
public record ElasticInferenceServiceComponents(String elasticInferenceServiceUrl) {}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
public class ElasticInferenceServiceFeature {
1717

18-
public static final FeatureFlag ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG = new FeatureFlag("eis");
18+
@Deprecated
19+
public static final FeatureFlag DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG = new FeatureFlag("eis");
1920

21+
public static final FeatureFlag ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG = new FeatureFlag("elastic_inference_service");
2022
}

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,37 @@
1414

1515
public class ElasticInferenceServiceSettings {
1616

17+
@Deprecated
1718
static final Setting<String> EIS_GATEWAY_URL = Setting.simpleString("xpack.inference.eis.gateway.url", Setting.Property.NodeScope);
1819

20+
static final Setting<String> ELASTIC_INFERENCE_SERVICE_URL = Setting.simpleString(
21+
"xpack.inference.elastic.url",
22+
Setting.Property.NodeScope
23+
);
24+
1925
// Adjust this variable to be volatile, if the setting can be updated at some point in time
26+
@Deprecated
2027
private final String eisGatewayUrl;
2128

29+
private final String elasticInferenceServiceUrl;
30+
2231
public ElasticInferenceServiceSettings(Settings settings) {
2332
eisGatewayUrl = EIS_GATEWAY_URL.get(settings);
33+
elasticInferenceServiceUrl = ELASTIC_INFERENCE_SERVICE_URL.get(settings);
34+
2435
}
2536

2637
public static List<Setting<?>> getSettingsDefinitions() {
27-
return List.of(EIS_GATEWAY_URL);
38+
return List.of(EIS_GATEWAY_URL, ELASTIC_INFERENCE_SERVICE_URL);
2839
}
2940

41+
@Deprecated
3042
public String getEisGatewayUrl() {
3143
return eisGatewayUrl;
3244
}
45+
46+
public String getElasticInferenceServiceUrl() {
47+
return elasticInferenceServiceUrl;
48+
}
49+
3350
}

0 commit comments

Comments
 (0)