Skip to content

Commit

Permalink
Deprecate xpack.eql.enabled setting and make it a no-op (#61375)
Browse files Browse the repository at this point in the history
* Deprecate xpack.eql.enabled and make it a no-op
* Remove uses of xpack.eql.enabled
  • Loading branch information
williamrandolph authored Sep 16, 2020
1 parent 9b9889b commit 035dfce
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 49 deletions.
1 change: 0 additions & 1 deletion client/rest-high-level/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@ testClusters.all {
setting 'xpack.security.authc.api_key.enabled', 'true'
setting 'xpack.security.http.ssl.enabled', 'false'
setting 'xpack.security.transport.ssl.enabled', 'false'
setting 'xpack.eql.enabled', 'true'
// Truststore settings are not used since TLS is not enabled. Included for testing the get certificates API
setting 'xpack.security.http.ssl.certificate_authorities', 'testnode.crt'
setting 'xpack.security.transport.ssl.truststore.path', 'testnode.jks'
Expand Down
1 change: 0 additions & 1 deletion docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ testClusters.integTest {
systemProperty 'es.autoscaling_feature_flag_registered', 'true'
}
setting 'xpack.autoscaling.enabled', 'true'
setting 'xpack.eql.enabled', 'true'
keystorePassword 's3cr3t'
}

Expand Down
1 change: 0 additions & 1 deletion x-pack/plugin/eql/qa/rest/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ dependencies {

testClusters.all {
testDistribution = 'DEFAULT'
setting 'xpack.eql.enabled', 'true'
setting 'xpack.license.self_generated.type', 'basic'
setting 'xpack.monitoring.collection.enabled', 'true'
}
1 change: 0 additions & 1 deletion x-pack/plugin/eql/qa/security/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ dependencies {

testClusters.all {
testDistribution = 'DEFAULT'
setting 'xpack.eql.enabled', 'true'
setting 'xpack.license.self_generated.type', 'basic'
setting 'xpack.monitoring.collection.enabled', 'true'
setting 'xpack.security.enabled', 'true'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.test.ESIntegTestCase;
import org.elasticsearch.xpack.core.XPackSettings;
import org.elasticsearch.xpack.eql.plugin.EqlPlugin;

import java.util.Collection;
import java.util.Collections;
Expand All @@ -28,7 +27,6 @@ protected Settings nodeSettings(int nodeOrdinal) {
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
settings.put(EqlPlugin.EQL_ENABLED_SETTING.getKey(), true);
settings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");
return settings.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import org.elasticsearch.action.support.ActionFilters;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.XPackLicenseState;
import org.elasticsearch.transport.TransportService;
import org.elasticsearch.xpack.core.XPackField;
Expand All @@ -22,9 +21,9 @@ public class EqlInfoTransportAction extends XPackInfoFeatureTransportAction {

@Inject
public EqlInfoTransportAction(TransportService transportService, ActionFilters actionFilters,
Settings settings, XPackLicenseState licenseState) {
XPackLicenseState licenseState) {
super(XPackInfoFeatureAction.EQL.name(), transportService, actionFilters);
this.enabled = EqlPlugin.isEnabled(settings);
this.enabled = EqlPlugin.isEnabled();
this.licenseState = licenseState;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.XPackLicenseState;
import org.elasticsearch.protocol.xpack.XPackUsageRequest;
import org.elasticsearch.tasks.Task;
Expand Down Expand Up @@ -41,10 +40,10 @@ public class EqlUsageTransportAction extends XPackUsageFeatureTransportAction {
@Inject
public EqlUsageTransportAction(TransportService transportService, ClusterService clusterService, ThreadPool threadPool,
ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver,
Settings settings, XPackLicenseState licenseState, Client client) {
XPackLicenseState licenseState, Client client) {
super(XPackUsageFeatureAction.EQL.name(), transportService, clusterService, threadPool, actionFilters,
indexNameExpressionResolver);
this.enabled = EqlPlugin.isEnabled(settings);
this.enabled = EqlPlugin.isEnabled();
this.licenseState = licenseState;
this.client = client;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,14 @@

public class EqlPlugin extends Plugin implements ActionPlugin {

private final boolean enabled;

public static final Setting<Boolean> EQL_ENABLED_SETTING = Setting.boolSetting(
"xpack.eql.enabled",
true,
Setting.Property.NodeScope
Setting.Property.NodeScope,
Setting.Property.Deprecated
);

public EqlPlugin(final Settings settings) {
this.enabled = EQL_ENABLED_SETTING.get(settings);
public EqlPlugin() {
}

@Override
Expand Down Expand Up @@ -86,16 +84,10 @@ public List<Setting<?>> getSettings() {

@Override
public List<ActionHandler<? extends ActionRequest, ? extends ActionResponse>> getActions() {
if (enabled) {
return List.of(
new ActionHandler<>(EqlSearchAction.INSTANCE, TransportEqlSearchAction.class),
new ActionHandler<>(EqlStatsAction.INSTANCE, TransportEqlStatsAction.class),
new ActionHandler<>(EqlAsyncGetResultAction.INSTANCE, TransportEqlAsyncGetResultAction.class),
new ActionHandler<>(XPackUsageFeatureAction.EQL, EqlUsageTransportAction.class),
new ActionHandler<>(XPackInfoFeatureAction.EQL, EqlInfoTransportAction.class)
);
}
return List.of(
new ActionHandler<>(EqlSearchAction.INSTANCE, TransportEqlSearchAction.class),
new ActionHandler<>(EqlStatsAction.INSTANCE, TransportEqlStatsAction.class),
new ActionHandler<>(EqlAsyncGetResultAction.INSTANCE, TransportEqlAsyncGetResultAction.class),
new ActionHandler<>(XPackUsageFeatureAction.EQL, EqlUsageTransportAction.class),
new ActionHandler<>(XPackInfoFeatureAction.EQL, EqlInfoTransportAction.class)
);
Expand All @@ -106,8 +98,8 @@ boolean isSnapshot() {
}

// TODO: this needs to be used by all plugin methods - including getActions and createComponents
public static boolean isEnabled(Settings settings) {
return EQL_ENABLED_SETTING.get(settings);
public static boolean isEnabled() {
return true; // basic license level features are always enabled
}

@Override
Expand All @@ -119,15 +111,12 @@ public List<RestHandler> getRestHandlers(Settings settings,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<DiscoveryNodes> nodesInCluster) {

if (enabled) {
return List.of(
new RestEqlSearchAction(),
new RestEqlStatsAction(),
new RestEqlGetAsyncResultAction(),
new RestEqlDeleteAsyncResultAction()
);
}
return List.of();
return List.of(
new RestEqlSearchAction(),
new RestEqlStatsAction(),
new RestEqlGetAsyncResultAction(),
new RestEqlDeleteAsyncResultAction()
);
}

// overridable by tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,16 @@ public void init() throws Exception {

public void testAvailable() {
EqlInfoTransportAction featureSet = new EqlInfoTransportAction(
mock(TransportService.class), mock(ActionFilters.class), Settings.EMPTY, licenseState);
mock(TransportService.class), mock(ActionFilters.class), licenseState);
boolean available = randomBoolean();
when(licenseState.isAllowed(XPackLicenseState.Feature.EQL)).thenReturn(available);
assertThat(featureSet.available(), is(available));
}

public void testEnabled() {
boolean enabled = randomBoolean();
Settings.Builder settings = Settings.builder();
settings.put("xpack.eql.enabled", enabled);

EqlInfoTransportAction featureSet = new EqlInfoTransportAction(
mock(TransportService.class), mock(ActionFilters.class), settings.build(), licenseState);
assertThat(featureSet.enabled(), is(enabled));
mock(TransportService.class), mock(ActionFilters.class), licenseState);
assertThat(featureSet.enabled(), is(true));
}

@SuppressWarnings("unchecked")
Expand Down Expand Up @@ -105,7 +101,7 @@ public void testUsageStats() throws Exception {
when(clusterService.localNode()).thenReturn(mockNode);

var usageAction = new EqlUsageTransportAction(mock(TransportService.class), clusterService, null,
mock(ActionFilters.class), null, Settings.builder().put("xpack.eql.enabled", true).build(), licenseState, client);
mock(ActionFilters.class), null, licenseState, client);
PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>();
usageAction.masterOperation(mock(Task.class), null, null, future);
EqlFeatureSetUsage eqlUsage = (EqlFeatureSetUsage) future.get().getUsage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class LocalStateEQLXPackPlugin extends LocalStateCompositeXPackPlugin {
public LocalStateEQLXPackPlugin(final Settings settings, final Path configPath) {
super(settings, configPath);
LocalStateEQLXPackPlugin thisVar = this;
plugins.add(new EqlPlugin(settings) {
plugins.add(new EqlPlugin() {
@Override
protected XPackLicenseState getLicenseState() {
return thisVar.getLicenseState();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@

package org.elasticsearch.xpack.eql.plugin;

import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.test.ESTestCase;

import static org.hamcrest.Matchers.hasItem;

public class EqlPluginTests extends ESTestCase {
public void testEnabledSettingRegisteredInSnapshotBuilds() {
final EqlPlugin plugin = new EqlPlugin(Settings.EMPTY) {
final EqlPlugin plugin = new EqlPlugin() {

@Override
protected boolean isSnapshot() {
Expand All @@ -25,7 +24,7 @@ protected boolean isSnapshot() {
}

public void testEnabledSettingNotRegisteredInNonSnapshotBuilds() {
final EqlPlugin plugin = new EqlPlugin(Settings.EMPTY) {
final EqlPlugin plugin = new EqlPlugin() {

@Override
protected boolean isSnapshot() {
Expand Down

0 comments on commit 035dfce

Please sign in to comment.