Skip to content

Commit d53c941

Browse files
Make xpack.monitoring.enabled setting a no-op (#55617) (#56061)
* Make xpack.monitoring.enabled setting a no-op This commit turns xpack.monitoring.enabled into a no-op. Mostly, this involved removing the setting from the setup for integration tests. Monitoring may introduce some complexity for test setup and teardown, so we should keep an eye out for turbulence and failures * Docs for making deprecated setting a no-op
1 parent 69f50fe commit d53c941

File tree

24 files changed

+28
-114
lines changed

24 files changed

+28
-114
lines changed

docs/reference/migration/migrate_7_0/settings.asciidoc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,11 @@ In Elasticsearch 7.8.0, the following settings no longer have any effect, and
296296
have been deprecated:
297297

298298
* `xpack.ilm.enabled`
299+
* `xpack.monitoring.enabled`
299300

300-
In other words, even if `xpack.ilm.enabled` is set to `false`, the ILM APIs
301-
will be available.
301+
Previously, these settings could be set to `false` in order to disable the
302+
feature's APIs in a cluster. As of 7.8.0, these basic license features are
303+
always enabled for the {default-dist}.
302304

303305
If you have disabled ILM so that you can use another tool to manage Watcher
304306
indices, the newly introduced `xpack.watcher.use_ilm_index_management` setting
@@ -308,12 +310,11 @@ Additionally, the following settings have been deprecated:
308310

309311
* `xpack.enrich.enabled`
310312
* `xpack.flattened.enabled`
311-
* `xpack.monitoring.enabled`
312313
* `xpack.rollup.enabled`
313314
* `xpack.slm.enabled`
314315
* `xpack.sql.enabled`
315316
* `xpack.transform.enabled`
316317
* `xpack.vectors.enabled`
317318

318319
In future releases, it will not be possible to disable the APIs for Enrichment,
319-
Flattened mappings, Monitoring, Rollup, SLM, SQL, Transforms, and Vectors.
320+
Flattened mappings, Rollup, SLM, SQL, Transforms, and Vectors.

docs/reference/monitoring/collecting-monitoring-data.asciidoc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ To learn about monitoring in general, see <<monitor-elasticsearch-cluster>>.
3030

3131
. Configure your cluster to collect monitoring data:
3232

33-
.. Verify that the deprecated `xpack.monitoring.enabled` setting is not set to
34-
`false` on any node in the cluster. For more information, see
35-
<<monitoring-settings>>.
36-
3733
.. Verify that the `xpack.monitoring.elasticsearch.collection.enabled` setting
3834
is `true`, which is its default value, on each node in the cluster.
3935
+

docs/reference/monitoring/esms.asciidoc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,6 @@ Add the following setting in the {kib} configuration file (`kibana.yml`):
118118
xpack.monitoring.kibana.collection.enabled: false
119119
----------------------------------
120120

121-
Leave the `xpack.monitoring.enabled` set to its default value (`true`).
122-
123121
For more information, see
124122
{kibana-ref}/monitoring-settings-kb.html[Monitoring settings in {kib}].
125123
--

docs/reference/settings/monitoring-settings.asciidoc

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,7 @@ For more information, see <<monitor-elasticsearch-cluster>>.
2828

2929
`xpack.monitoring.enabled`::
3030
deprecated:[7.8.0,Basic License features should always be enabled] +
31-
Set to `true` (default) to enable {es} {monitoring} for {es} on the node.
32-
+
33-
--
34-
NOTE: To enable data collection, you must also set `xpack.monitoring.collection.enabled`
35-
to `true`. Its default value is `false`.
36-
--
31+
This deprecated setting has no effect.
3732

3833
[float]
3934
[[monitoring-collection-settings]]

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/CcrSingleNodeTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public abstract class CcrSingleNodeTestCase extends ESSingleNodeTestCase {
4545
protected Settings nodeSettings() {
4646
Settings.Builder builder = Settings.builder();
4747
builder.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
48-
builder.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
4948
builder.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
5049
builder.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
5150
builder.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackSettings.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,12 @@ private XPackSettings() {
6161
/** Setting for enabling or disabling security. Defaults to true. */
6262
public static final Setting<Boolean> SECURITY_ENABLED = Setting.boolSetting("xpack.security.enabled", true, Setting.Property.NodeScope);
6363

64-
/** Setting for enabling or disabling monitoring. */
64+
/**
65+
* Setting for enabling or disabling monitoring.
66+
* <p>
67+
* This setting is now a no-op: setting it to false is permitted, but does nothing.
68+
*/
69+
@Deprecated // since = "7.8.0"
6570
public static final Setting<Boolean> MONITORING_ENABLED = Setting.boolSetting("xpack.monitoring.enabled", true,
6671
Property.NodeScope, Property.Deprecated);
6772

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/monitoring/MonitoringFeatureSetUsage.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,8 @@ public MonitoringFeatureSetUsage(StreamInput in) throws IOException {
3232
}
3333
}
3434

35-
public MonitoringFeatureSetUsage(boolean available, boolean enabled,
36-
boolean collectionEnabled, Map<String, Object> exporters) {
37-
super(XPackField.MONITORING, available, enabled);
35+
public MonitoringFeatureSetUsage(boolean available, boolean collectionEnabled, Map<String, Object> exporters) {
36+
super(XPackField.MONITORING, available, true);
3837
this.exporters = exporters;
3938
this.collectionEnabled = collectionEnabled;
4039
}

x-pack/plugin/core/src/test/java/org/elasticsearch/license/LicensesManagerServiceTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ protected Settings nodeSettings() {
3737
return Settings.builder()
3838
.put(super.nodeSettings())
3939
.put(XPackSettings.SECURITY_ENABLED.getKey(), false)
40-
.put(XPackSettings.MONITORING_ENABLED.getKey(), false)
4140
.put(XPackSettings.WATCHER_ENABLED.getKey(), false)
4241
.put(XPackSettings.GRAPH_ENABLED.getKey(), false)
4342
.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false)

x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/AbstractEqlIntegTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public abstract class AbstractEqlIntegTestCase extends ESIntegTestCase {
2525
protected Settings nodeSettings(int nodeOrdinal) {
2626
Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal));
2727
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
28-
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
2928
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
3029
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
3130
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);

x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleInitialisationTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ protected Settings nodeSettings(int nodeOrdinal) {
9898
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
9999
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
100100
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
101-
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
102101
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
103102
settings.put(LifecycleSettings.LIFECYCLE_POLL_INTERVAL, "1s");
104103

x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/slm/SnapshotLifecycleInitialisationTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ protected Settings nodeSettings() {
4747
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
4848
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
4949
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
50-
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
5150
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
5251
settings.put(Environment.PATH_REPO_SETTING.getKey(), repositoryLocation);
5352

x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ protected Settings nodeSettings() {
4444
newSettings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");
4545
// Disable security otherwise delete-by-query action fails to get authorized
4646
newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
47-
newSettings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
4847
newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
4948
// Disable ILM history index so that the tests don't have to clean it up
5049
newSettings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false);

x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/AnnotationIndexIT.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public class AnnotationIndexIT extends MlSingleNodeTestCase {
2626
protected Settings nodeSettings() {
2727
Settings.Builder newSettings = Settings.builder();
2828
newSettings.put(super.nodeSettings());
29-
newSettings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
3029
newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
3130
newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
3231
return newSettings.build();

x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/support/BaseMlIntegTestCase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ protected Settings nodeSettings(int nodeOrdinal) {
9595
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
9696
settings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");
9797
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
98-
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
9998
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
10099
settings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false);
101100
return settings.build();

x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import org.elasticsearch.threadpool.ThreadPool;
3535
import org.elasticsearch.watcher.ResourceWatcherService;
3636
import org.elasticsearch.xpack.core.XPackPlugin;
37-
import org.elasticsearch.xpack.core.XPackSettings;
3837
import org.elasticsearch.xpack.core.monitoring.MonitoringField;
3938
import org.elasticsearch.xpack.core.monitoring.action.MonitoringBulkAction;
4039
import org.elasticsearch.xpack.core.ssl.SSLService;
@@ -66,7 +65,6 @@
6665
import java.util.Set;
6766
import java.util.function.Supplier;
6867

69-
import static java.util.Collections.emptyList;
7068
import static java.util.Collections.singletonList;
7169
import static org.elasticsearch.common.settings.Setting.boolSetting;
7270

@@ -85,26 +83,20 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
8583
true, Setting.Property.Dynamic, Setting.Property.NodeScope, Setting.Property.Deprecated);
8684

8785
protected final Settings settings;
88-
private final boolean enabled;
8986
private final boolean transportClientMode;
9087

9188
private Exporters exporters;
9289

9390
public Monitoring(Settings settings) {
9491
this.settings = settings;
9592
this.transportClientMode = XPackPlugin.transportClientMode(settings);
96-
this.enabled = XPackSettings.MONITORING_ENABLED.get(settings);
9793
}
9894

9995
// overridable by tests
10096
protected SSLService getSslService() { return XPackPlugin.getSharedSslService(); }
10197
protected XPackLicenseState getLicenseState() { return XPackPlugin.getSharedLicenseState(); }
10298
protected LicenseService getLicenseService() { return XPackPlugin.getSharedLicenseService(); }
10399

104-
boolean isEnabled() {
105-
return enabled;
106-
}
107-
108100
boolean isTransportClient() {
109101
return transportClientMode;
110102
}
@@ -114,7 +106,7 @@ public Collection<Module> createGuiceModules() {
114106
List<Module> modules = new ArrayList<>();
115107
modules.add(b -> {
116108
XPackPlugin.bindFeatureSet(b, MonitoringFeatureSet.class);
117-
if (transportClientMode || enabled == false) {
109+
if (transportClientMode) {
118110
b.bind(MonitoringService.class).toProvider(Providers.of(null));
119111
b.bind(Exporters.class).toProvider(Providers.of(null));
120112
}
@@ -129,10 +121,6 @@ public Collection<Object> createComponents(Client client, ClusterService cluster
129121
NodeEnvironment nodeEnvironment, NamedWriteableRegistry namedWriteableRegistry,
130122
IndexNameExpressionResolver expressionResolver,
131123
Supplier<RepositoriesService> repositoriesServiceSupplier) {
132-
if (enabled == false) {
133-
return Collections.emptyList();
134-
}
135-
136124
final ClusterSettings clusterSettings = clusterService.getClusterSettings();
137125
final CleanerService cleanerService = new CleanerService(settings, clusterSettings, threadPool, getLicenseState());
138126
final SSLService dynamicSSLService = getSslService().createDynamicSSLService();
@@ -161,19 +149,13 @@ public Collection<Object> createComponents(Client client, ClusterService cluster
161149

162150
@Override
163151
public List<ActionHandler<? extends ActionRequest, ? extends ActionResponse>> getActions() {
164-
if (false == enabled) {
165-
return emptyList();
166-
}
167152
return singletonList(new ActionHandler<>(MonitoringBulkAction.INSTANCE, TransportMonitoringBulkAction.class));
168153
}
169154

170155
@Override
171156
public List<RestHandler> getRestHandlers(Settings settings, RestController restController, ClusterSettings clusterSettings,
172157
IndexScopedSettings indexScopedSettings, SettingsFilter settingsFilter, IndexNameExpressionResolver indexNameExpressionResolver,
173158
Supplier<DiscoveryNodes> nodesInCluster) {
174-
if (false == enabled) {
175-
return emptyList();
176-
}
177159
return singletonList(new RestMonitoringBulkAction());
178160
}
179161

x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringFeatureSet.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@
88
import org.elasticsearch.action.ActionListener;
99
import org.elasticsearch.common.Nullable;
1010
import org.elasticsearch.common.inject.Inject;
11-
import org.elasticsearch.common.settings.Settings;
1211
import org.elasticsearch.license.XPackLicenseState;
1312
import org.elasticsearch.xpack.core.XPackFeatureSet;
1413
import org.elasticsearch.xpack.core.XPackField;
15-
import org.elasticsearch.xpack.core.XPackSettings;
1614
import org.elasticsearch.xpack.core.monitoring.MonitoringFeatureSetUsage;
1715
import org.elasticsearch.xpack.monitoring.exporter.Exporter;
1816
import org.elasticsearch.xpack.monitoring.exporter.Exporters;
@@ -22,17 +20,14 @@
2220

2321
public class MonitoringFeatureSet implements XPackFeatureSet {
2422

25-
private final boolean enabled;
2623
private final MonitoringService monitoring;
2724
private final XPackLicenseState licenseState;
2825
private final Exporters exporters;
2926

3027
@Inject
31-
public MonitoringFeatureSet(Settings settings,
32-
@Nullable MonitoringService monitoring,
28+
public MonitoringFeatureSet(@Nullable MonitoringService monitoring,
3329
@Nullable XPackLicenseState licenseState,
3430
@Nullable Exporters exporters) {
35-
this.enabled = XPackSettings.MONITORING_ENABLED.get(settings);
3631
this.monitoring = monitoring;
3732
this.licenseState = licenseState;
3833
this.exporters = exporters;
@@ -50,7 +45,7 @@ public boolean available() {
5045

5146
@Override
5247
public boolean enabled() {
53-
return enabled;
48+
return true;
5449
}
5550

5651
@Override
@@ -62,7 +57,7 @@ public Map<String, Object> nativeCodeInfo() {
6257
public void usage(ActionListener<XPackFeatureSet.Usage> listener) {
6358
final boolean collectionEnabled = monitoring != null && monitoring.isMonitoringActive();
6459

65-
listener.onResponse(new MonitoringFeatureSetUsage(available(), enabled(), collectionEnabled, exportersUsage(exporters)));
60+
listener.onResponse(new MonitoringFeatureSetUsage(available(), collectionEnabled, exportersUsage(exporters)));
6661
}
6762

6863
static Map<String, Object> exportersUsage(Exporters exporters) {

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringFeatureSetTests.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@
1010
import org.elasticsearch.common.bytes.BytesReference;
1111
import org.elasticsearch.common.io.stream.BytesStreamOutput;
1212
import org.elasticsearch.common.io.stream.StreamInput;
13-
import org.elasticsearch.common.settings.Setting;
14-
import org.elasticsearch.common.settings.Settings;
1513
import org.elasticsearch.common.xcontent.ToXContent;
1614
import org.elasticsearch.common.xcontent.XContentBuilder;
1715
import org.elasticsearch.license.XPackLicenseState;
1816
import org.elasticsearch.test.ESTestCase;
1917
import org.elasticsearch.test.rest.yaml.ObjectPath;
2018
import org.elasticsearch.xpack.core.XPackFeatureSet;
21-
import org.elasticsearch.xpack.core.XPackSettings;
2219
import org.elasticsearch.xpack.core.XPackFeatureSet.Usage;
2320
import org.elasticsearch.xpack.core.monitoring.MonitoringFeatureSetUsage;
2421
import org.elasticsearch.xpack.monitoring.exporter.Exporter;
@@ -44,23 +41,19 @@ public class MonitoringFeatureSetTests extends ESTestCase {
4441
private final Exporters exporters = mock(Exporters.class);
4542

4643
public void testAvailable() {
47-
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(Settings.EMPTY, monitoring, licenseState, exporters);
44+
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(monitoring, licenseState, exporters);
4845
boolean available = randomBoolean();
4946
when(licenseState.isAllowed(XPackLicenseState.Feature.MONITORING)).thenReturn(available);
5047
assertThat(featureSet.available(), is(available));
5148
}
5249

53-
public void testEnabledSetting() {
54-
boolean enabled = randomBoolean();
55-
Settings.Builder settings = Settings.builder();
56-
settings.put("xpack.monitoring.enabled", enabled);
57-
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(settings.build(), monitoring, licenseState, exporters);
58-
assertThat(featureSet.enabled(), is(enabled));
59-
assertSettingDeprecationsAndWarnings(new Setting<?>[] { XPackSettings.MONITORING_ENABLED } );
50+
public void testMonitoringEnabledByDefault() {
51+
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(monitoring, licenseState, exporters);
52+
assertThat(featureSet.enabled(), is(true));
6053
}
6154

6255
public void testEnabledDefault() {
63-
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(Settings.EMPTY, monitoring, licenseState, exporters);
56+
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(monitoring, licenseState, exporters);
6457
assertThat(featureSet.enabled(), is(true));
6558
}
6659

@@ -100,7 +93,7 @@ public void testUsage() throws Exception {
10093
when(exporters.getEnabledExporters()).thenReturn(exporterList);
10194
when(monitoring.isMonitoringActive()).thenReturn(collectionEnabled);
10295

103-
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(Settings.EMPTY, monitoring, licenseState, exporters);
96+
MonitoringFeatureSet featureSet = new MonitoringFeatureSet(monitoring, licenseState, exporters);
10497
PlainActionFuture<Usage> future = new PlainActionFuture<>();
10598
featureSet.usage(future);
10699
XPackFeatureSet.Usage monitoringUsage = future.get();

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringPluginClientTests.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/collector/cluster/ClusterStatsCollectorTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public void testDoCollect() throws Exception {
206206
.thenReturn(indices);
207207

208208
final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse(
209-
singletonList(new MonitoringFeatureSetUsage(true, true, false, null)));
209+
singletonList(new MonitoringFeatureSetUsage(true, false, null)));
210210

211211
@SuppressWarnings("unchecked")
212212
final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class);
@@ -305,7 +305,7 @@ public void testDoCollectNoLicense() throws Exception {
305305
when(client.admin()).thenReturn(adminClient);
306306

307307
final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse(
308-
singletonList(new MonitoringFeatureSetUsage(true, true, false, null)));
308+
singletonList(new MonitoringFeatureSetUsage(true, false, null)));
309309
@SuppressWarnings("unchecked")
310310
final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class);
311311
when(client.execute(same(XPackUsageAction.INSTANCE), any(XPackUsageRequest.class))).thenReturn(xPackUsageFuture);

0 commit comments

Comments
 (0)