Skip to content

Commit 011eec7

Browse files
committed
no basic check
1 parent 7862d7f commit 011eec7

File tree

4 files changed

+13
-77
lines changed

4 files changed

+13
-77
lines changed

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,21 @@
1313
import org.elasticsearch.xpack.core.XPackField;
1414
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService;
1515

16-
import static org.elasticsearch.xpack.inference.InferencePlugin.EIS_INFERENCE_FEATURE;
1716
import static org.elasticsearch.xpack.inference.InferencePlugin.INFERENCE_API_FEATURE;
1817

1918
public class InferenceLicenceCheck {
2019

2120
private InferenceLicenceCheck() {}
2221

22+
/**
23+
* Is the Inference service compliant with the current license.
24+
* @param serviceName The Inference service name
25+
* @param licenseState The current license state
26+
* @return True if the licence is sufficient
27+
*/
2328
public static boolean isServiceLicenced(String serviceName, XPackLicenseState licenseState) {
24-
if (ElasticInferenceService.NAME.equals(serviceName)) {
25-
return EIS_INFERENCE_FEATURE.check(licenseState);
26-
} else {
27-
return INFERENCE_API_FEATURE.check(licenseState);
28-
}
29+
// EIS is always available.
30+
return ElasticInferenceService.NAME.equals(serviceName) || INFERENCE_API_FEATURE.check(licenseState);
2931
}
3032

3133
public static ElasticsearchSecurityException complianceException(String serviceName) {

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,6 @@ public class InferencePlugin extends Plugin
214214
License.OperationMode.ENTERPRISE
215215
);
216216

217-
public static final LicensedFeature.Momentary EIS_INFERENCE_FEATURE = LicensedFeature.momentary(
218-
"inference",
219-
"Elastic Inference Service",
220-
License.OperationMode.BASIC
221-
);
222-
223217
public static final String X_ELASTIC_PRODUCT_USE_CASE_HTTP_HEADER = "X-elastic-product-use-case";
224218
public static final String X_ELASTIC_ES_VERSION = "X-elastic-es-version";
225219

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/InferenceLicenceCheckTests.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616
import static org.mockito.Mockito.when;
1717

1818
public class InferenceLicenceCheckTests extends ESTestCase {
19-
public void testIsServiceLicenced_WithElasticInferenceService_WhenLicensed() {
19+
public void testIsServiceLicenced_WithElasticInferenceService_BasicLicence() {
2020
var licenseState = MockLicenseState.createMock();
21-
when(licenseState.isAllowed(InferencePlugin.EIS_INFERENCE_FEATURE)).thenReturn(true);
21+
when(licenseState.isAllowed(InferencePlugin.INFERENCE_API_FEATURE)).thenReturn(false);
2222

2323
assertTrue(InferenceLicenceCheck.isServiceLicenced(ElasticInferenceService.NAME, licenseState));
2424
}
2525

26-
public void testIsServiceLicenced_WithElasticInferenceService_WhenNotLicensed() {
26+
public void testIsServiceLicenced_WithElasticInferenceService_EntLicensed() {
2727
var licenseState = MockLicenseState.createMock();
28-
when(licenseState.isAllowed(InferencePlugin.EIS_INFERENCE_FEATURE)).thenReturn(false);
28+
when(licenseState.isAllowed(InferencePlugin.INFERENCE_API_FEATURE)).thenReturn(true);
2929

30-
assertFalse(InferenceLicenceCheck.isServiceLicenced(ElasticInferenceService.NAME, licenseState));
30+
assertTrue(InferenceLicenceCheck.isServiceLicenced(ElasticInferenceService.NAME, licenseState));
3131
}
3232

3333
public void testIsServiceLicenced_WithOtherService_WhenLicensed() {
@@ -46,7 +46,6 @@ public void testIsServiceLicenced_WithOtherService_WhenNotLicensed() {
4646

4747
public void testIsServiceLicenced_WithMultipleServices() {
4848
var licenseState = MockLicenseState.createMock();
49-
when(licenseState.isAllowed(InferencePlugin.EIS_INFERENCE_FEATURE)).thenReturn(true);
5049
when(licenseState.isAllowed(InferencePlugin.INFERENCE_API_FEATURE)).thenReturn(false);
5150

5251
// Elastic Inference Service should be licensed

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/action/filter/ShardBulkInferenceActionFilterTests.java

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,13 @@
4141
import org.elasticsearch.index.IndexVersion;
4242
import org.elasticsearch.index.IndexingPressure;
4343
import org.elasticsearch.index.mapper.InferenceMetadataFieldsMapper;
44-
import org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper;
4544
import org.elasticsearch.index.shard.ShardId;
4645
import org.elasticsearch.inference.ChunkInferenceInput;
4746
import org.elasticsearch.inference.ChunkedInference;
4847
import org.elasticsearch.inference.InferenceService;
4948
import org.elasticsearch.inference.InferenceServiceRegistry;
5049
import org.elasticsearch.inference.MinimalServiceSettings;
5150
import org.elasticsearch.inference.Model;
52-
import org.elasticsearch.inference.SimilarityMeasure;
5351
import org.elasticsearch.inference.TaskType;
5452
import org.elasticsearch.inference.UnparsedModel;
5553
import org.elasticsearch.inference.telemetry.InferenceStats;
@@ -71,7 +69,6 @@
7169
import org.elasticsearch.xpack.inference.mapper.SemanticTextField;
7270
import org.elasticsearch.xpack.inference.model.TestModel;
7371
import org.elasticsearch.xpack.inference.registry.ModelRegistry;
74-
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceService;
7572
import org.junit.After;
7673
import org.junit.Before;
7774
import org.mockito.stubbing.Answer;
@@ -225,62 +222,6 @@ public void testLicenseInvalidForInference() throws InterruptedException {
225222
awaitLatch(chainExecuted, 10, TimeUnit.SECONDS);
226223
}
227224

228-
@SuppressWarnings({ "unchecked", "rawtypes" })
229-
public void testLicenseInvalidForEis() throws InterruptedException {
230-
final InferenceStats inferenceStats = InferenceStatsTests.mockInferenceStats();
231-
StaticModel model = new StaticModel(
232-
randomAlphanumericOfLength(5),
233-
TaskType.TEXT_EMBEDDING,
234-
ElasticInferenceService.NAME,
235-
new TestModel.TestServiceSettings("foo", 128, SimilarityMeasure.COSINE, DenseVectorFieldMapper.ElementType.BYTE),
236-
new TestModel.TestTaskSettings(randomInt(3)),
237-
new TestModel.TestSecretSettings(randomAlphaOfLength(4))
238-
);
239-
240-
var licenseState = MockLicenseState.createMock();
241-
when(licenseState.isAllowed(InferencePlugin.EIS_INFERENCE_FEATURE)).thenReturn(false);
242-
ShardBulkInferenceActionFilter filter = createFilter(
243-
threadPool,
244-
Map.of(model.getInferenceEntityId(), model),
245-
NOOP_INDEXING_PRESSURE,
246-
useLegacyFormat,
247-
licenseState,
248-
inferenceStats
249-
);
250-
CountDownLatch chainExecuted = new CountDownLatch(1);
251-
ActionFilterChain actionFilterChain = (task, action, request, listener) -> {
252-
try {
253-
BulkShardRequest bulkShardRequest = (BulkShardRequest) request;
254-
assertThat(bulkShardRequest.items().length, equalTo(1));
255-
256-
BulkItemResponse.Failure failure = bulkShardRequest.items()[0].getPrimaryResponse().getFailure();
257-
assertNotNull(failure);
258-
assertThat(failure.getCause(), instanceOf(ElasticsearchSecurityException.class));
259-
assertThat(
260-
failure.getMessage(),
261-
containsString(org.elasticsearch.core.Strings.format("current license is non-compliant for [%s]", XPackField.INFERENCE))
262-
);
263-
} finally {
264-
chainExecuted.countDown();
265-
}
266-
267-
};
268-
ActionListener actionListener = mock(ActionListener.class);
269-
Task task = mock(Task.class);
270-
271-
Map<String, InferenceFieldMetadata> inferenceFieldMap = Map.of(
272-
"obj.field1",
273-
new InferenceFieldMetadata("obj.field1", model.getInferenceEntityId(), new String[] { "obj.field1" }, null)
274-
);
275-
BulkItemRequest[] items = new BulkItemRequest[1];
276-
items[0] = new BulkItemRequest(0, new IndexRequest("test").source("obj.field1", "Test"));
277-
BulkShardRequest request = new BulkShardRequest(new ShardId("test", "test", 0), WriteRequest.RefreshPolicy.NONE, items);
278-
request.setInferenceFieldMap(inferenceFieldMap);
279-
280-
filter.apply(task, TransportShardBulkAction.ACTION_NAME, request, actionListener, actionFilterChain);
281-
awaitLatch(chainExecuted, 10, TimeUnit.SECONDS);
282-
}
283-
284225
@SuppressWarnings({ "unchecked", "rawtypes" })
285226
public void testInferenceNotFound() throws Exception {
286227
final InferenceStats inferenceStats = InferenceStatsTests.mockInferenceStats();

0 commit comments

Comments
 (0)