Skip to content

Commit 0096136

Browse files
Add license check
1 parent 807af2c commit 0096136

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportExplainDataFrameAnalyticsAction.java

+11
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515
import org.elasticsearch.cluster.service.ClusterService;
1616
import org.elasticsearch.common.collect.Tuple;
1717
import org.elasticsearch.common.inject.Inject;
18+
import org.elasticsearch.license.LicenseUtils;
19+
import org.elasticsearch.license.XPackLicenseState;
1820
import org.elasticsearch.tasks.Task;
1921
import org.elasticsearch.transport.TransportService;
22+
import org.elasticsearch.xpack.core.XPackField;
2023
import org.elasticsearch.xpack.core.ml.action.ExplainDataFrameAnalyticsAction;
2124
import org.elasticsearch.xpack.core.ml.action.PutDataFrameAnalyticsAction;
2225
import org.elasticsearch.xpack.core.ml.dataframe.explain.FieldSelection;
@@ -40,6 +43,7 @@
4043
public class TransportExplainDataFrameAnalyticsAction
4144
extends HandledTransportAction<PutDataFrameAnalyticsAction.Request, ExplainDataFrameAnalyticsAction.Response> {
4245

46+
private final XPackLicenseState licenseState;
4347
private final TransportService transportService;
4448
private final ClusterService clusterService;
4549
private final NodeClient client;
@@ -50,18 +54,25 @@ public TransportExplainDataFrameAnalyticsAction(TransportService transportServic
5054
ActionFilters actionFilters,
5155
ClusterService clusterService,
5256
NodeClient client,
57+
XPackLicenseState licenseState,
5358
MemoryUsageEstimationProcessManager processManager) {
5459
super(ExplainDataFrameAnalyticsAction.NAME, transportService, actionFilters, PutDataFrameAnalyticsAction.Request::new);
5560
this.transportService = transportService;
5661
this.clusterService = Objects.requireNonNull(clusterService);
5762
this.client = Objects.requireNonNull(client);
63+
this.licenseState = licenseState;
5864
this.processManager = Objects.requireNonNull(processManager);
5965
}
6066

6167
@Override
6268
protected void doExecute(Task task,
6369
PutDataFrameAnalyticsAction.Request request,
6470
ActionListener<ExplainDataFrameAnalyticsAction.Response> listener) {
71+
if (licenseState.isMachineLearningAllowed() == false) {
72+
listener.onFailure(LicenseUtils.newComplianceException(XPackField.MACHINE_LEARNING));
73+
return;
74+
}
75+
6576
DiscoveryNode localNode = clusterService.localNode();
6677
if (MachineLearning.isMlNode(localNode)) {
6778
explain(task, request, listener);

0 commit comments

Comments
 (0)