5
5
*/
6
6
package org .elasticsearch .xpack .eql .plugin ;
7
7
8
+ import org .elasticsearch .Build ;
8
9
import org .elasticsearch .action .ActionRequest ;
9
10
import org .elasticsearch .action .ActionResponse ;
10
11
import org .elasticsearch .cluster .metadata .IndexNameExpressionResolver ;
11
12
import org .elasticsearch .cluster .node .DiscoveryNodes ;
12
13
import org .elasticsearch .common .settings .ClusterSettings ;
13
14
import org .elasticsearch .common .settings .IndexScopedSettings ;
15
+ import org .elasticsearch .common .settings .Setting ;
14
16
import org .elasticsearch .common .settings .Settings ;
15
17
import org .elasticsearch .common .settings .SettingsFilter ;
16
18
import org .elasticsearch .plugins .ActionPlugin ;
20
22
import org .elasticsearch .xpack .eql .action .EqlSearchAction ;
21
23
22
24
import java .util .Arrays ;
25
+ import java .util .Collections ;
23
26
import java .util .List ;
24
27
import java .util .function .Supplier ;
25
28
26
29
public class EqlPlugin extends Plugin implements ActionPlugin {
30
+
31
+ public static final Setting <Boolean > EQL_ENABLED_SETTING = Setting .boolSetting (
32
+ "xpack.eql.enabled" ,
33
+ false ,
34
+ Setting .Property .NodeScope
35
+ );
36
+
37
+
27
38
@ Override
28
39
public List <ActionHandler <? extends ActionRequest , ? extends ActionResponse >> getActions () {
29
40
return Arrays .asList (
30
41
new ActionHandler <>(EqlSearchAction .INSTANCE , TransportEqlSearchAction .class )
31
42
);
32
43
}
33
44
45
+ /**
46
+ * The settings defined by EQL plugin.
47
+ *
48
+ * @return the settings
49
+ */
50
+ @ Override
51
+ public List <Setting <?>> getSettings () {
52
+ if (isSnapshot ()) {
53
+ return List .of (EQL_ENABLED_SETTING );
54
+ } else {
55
+ return List .of ();
56
+ }
57
+ }
58
+
59
+ boolean isSnapshot () {
60
+ return Build .CURRENT .isSnapshot ();
61
+ }
62
+
34
63
@ Override
35
64
public List <RestHandler > getRestHandlers (Settings settings ,
36
65
RestController restController ,
@@ -39,7 +68,11 @@ public List<RestHandler> getRestHandlers(Settings settings,
39
68
SettingsFilter settingsFilter ,
40
69
IndexNameExpressionResolver indexNameExpressionResolver ,
41
70
Supplier <DiscoveryNodes > nodesInCluster ) {
42
- return Arrays .asList (
43
- new RestEqlSearchAction (restController ));
71
+
72
+ boolean enabled = EQL_ENABLED_SETTING .get (settings );
73
+ if (!enabled ) {
74
+ return Collections .emptyList ();
75
+ }
76
+ return Arrays .asList (new RestEqlSearchAction (restController ));
44
77
}
45
78
}
0 commit comments