Skip to content

Commit 9155464

Browse files
jxie-1ywangd
andauthored
Separate mock task manager from mock transport service (#138609)
* Separate mock task manager from mock transport service * Remove MockTransportService dependency from MockNode * Revert "Remove MockTransportService dependency from MockNode" This reverts commit 11ddaaf. * Update test/framework/src/main/java/org/elasticsearch/node/MockNode.java Co-authored-by: Yang Wang <yang.wang@elastic.co> --------- Co-authored-by: Yang Wang <yang.wang@elastic.co>
1 parent 8455f98 commit 9155464

File tree

6 files changed

+42
-31
lines changed

6 files changed

+42
-31
lines changed

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,8 @@ private void construct(
711711
modules.bindToInstance(RootObjectMapperNamespaceValidator.class, namespaceValidator);
712712

713713
assert nodeEnvironment.nodeId() != null : "node ID must be set before constructing the Node";
714-
TaskManager taskManager = new TaskManager(
714+
TaskManager taskManager = serviceProvider.newTaskManager(
715+
pluginsService,
715716
settings,
716717
threadPool,
717718
Stream.concat(

server/src/main/java/org/elasticsearch/node/NodeServiceProvider.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.elasticsearch.transport.TransportService;
5151

5252
import java.util.Map;
53+
import java.util.Set;
5354
import java.util.function.Function;
5455
import java.util.function.LongSupplier;
5556

@@ -63,6 +64,17 @@ PluginsService newPluginService(Environment initialEnvironment, PluginsLoader pl
6364
return new PluginsService(initialEnvironment.settings(), initialEnvironment.configDir(), pluginsLoader);
6465
}
6566

67+
TaskManager newTaskManager(
68+
PluginsService pluginsService,
69+
Settings settings,
70+
ThreadPool threadPool,
71+
Set<String> taskHeaders,
72+
Tracer tracer,
73+
String nodeId
74+
) {
75+
return new TaskManager(settings, threadPool, taskHeaders, tracer, nodeId);
76+
}
77+
6678
ScriptService newScriptService(
6779
PluginsService pluginsService,
6880
Settings settings,

server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskManagerTestCase.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
import static java.util.Collections.emptySet;
6363
import static org.elasticsearch.test.ClusterServiceUtils.createClusterService;
6464
import static org.elasticsearch.test.ClusterServiceUtils.setState;
65-
import static org.elasticsearch.test.transport.MockTransportService.createTaskManager;
6665

6766
/**
6867
* The test case for unit testing task manager and related transport actions
@@ -177,7 +176,7 @@ public TestNode(String name, ThreadPool threadPool, Settings settings) {
177176
discoveryNode.set(DiscoveryNodeUtils.create(name, address.publishAddress(), emptyMap(), emptySet()));
178177
return discoveryNode.get();
179178
};
180-
TaskManager taskManager = createTaskManager(settings, threadPool, emptySet(), Tracer.NOOP, name);
179+
TaskManager taskManager = MockTaskManager.create(settings, threadPool, emptySet(), Tracer.NOOP, name);
181180
transportService = new TransportService(
182181
settings,
183182
new Netty4Transport(

test/framework/src/main/java/org/elasticsearch/node/MockNode.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.elasticsearch.telemetry.tracing.Tracer;
5050
import org.elasticsearch.test.ESTestCase;
5151
import org.elasticsearch.test.MockHttpTransport;
52+
import org.elasticsearch.test.tasks.MockTaskManager;
5253
import org.elasticsearch.test.transport.MockTransportService;
5354
import org.elasticsearch.test.transport.StubbableTransport;
5455
import org.elasticsearch.threadpool.ThreadPool;
@@ -63,6 +64,7 @@
6364
import java.util.Collection;
6465
import java.util.Collections;
6566
import java.util.Map;
67+
import java.util.Set;
6668
import java.util.concurrent.TimeUnit;
6769
import java.util.function.Function;
6870
import java.util.function.LongSupplier;
@@ -78,6 +80,21 @@
7880
public class MockNode extends Node {
7981

8082
private static class MockServiceProvider extends NodeServiceProvider {
83+
@Override
84+
TaskManager newTaskManager(
85+
PluginsService pluginsService,
86+
Settings settings,
87+
ThreadPool threadPool,
88+
Set<String> taskHeaders,
89+
Tracer tracer,
90+
String nodeId
91+
) {
92+
if (pluginsService.filterPlugins(MockTransportService.TestPlugin.class).findAny().isEmpty()) {
93+
return super.newTaskManager(pluginsService, settings, threadPool, taskHeaders, tracer, nodeId);
94+
}
95+
return MockTaskManager.create(settings, threadPool, taskHeaders, tracer, nodeId);
96+
}
97+
8198
@Override
8299
BigArrays newBigArrays(
83100
PluginsService pluginsService,
@@ -208,7 +225,7 @@ protected TransportService newTransportService(
208225
interceptor,
209226
localNodeFactory,
210227
clusterSettings,
211-
MockTransportService.createTaskManager(settings, threadPool, taskManager.getTaskHeaders(), Tracer.NOOP, nodeId),
228+
taskManager,
212229
linkedProjectConfigService,
213230
telemetryProvider,
214231
projectResolver

test/framework/src/main/java/org/elasticsearch/test/tasks/MockTaskManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.concurrent.CopyOnWriteArrayList;
2727

2828
import static org.elasticsearch.core.Strings.format;
29+
import static org.mockito.Mockito.spy;
2930

3031
/**
3132
* A mock task manager that allows adding listeners for events
@@ -52,6 +53,13 @@ public MockTaskManager(Settings settings, ThreadPool threadPool, Set<String> tas
5253
super(settings, threadPool, taskHeaders, Tracer.NOOP);
5354
}
5455

56+
public static TaskManager create(Settings settings, ThreadPool threadPool, Set<String> taskHeaders, Tracer tracer, String nodeId) {
57+
var taskManager = MockTaskManager.USE_MOCK_TASK_MANAGER_SETTING.get(settings)
58+
? new MockTaskManager(settings, threadPool, taskHeaders)
59+
: new TaskManager(settings, threadPool, taskHeaders, tracer, nodeId);
60+
return MockTaskManager.SPY_TASK_MANAGER_SETTING.get(settings) ? spy(taskManager) : taskManager;
61+
}
62+
5563
@Override
5664
public Task register(String type, String action, TaskAwareRequest request) {
5765
Task task = super.register(type, action, request);

test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@
9494

9595
import static org.junit.Assert.assertNotNull;
9696
import static org.junit.Assert.assertTrue;
97-
import static org.mockito.Mockito.spy;
9897

9998
/**
10099
* A mock delegate service that allows to simulate different network topology failures.
@@ -265,7 +264,7 @@ public MockTransportService(
265264
interceptor,
266265
localNodeFactory,
267266
clusterSettings,
268-
createTaskManager(settings, threadPool, taskHeaders, Tracer.NOOP, nodeId),
267+
MockTaskManager.create(settings, threadPool, taskHeaders, Tracer.NOOP, nodeId),
269268
new ClusterSettingsLinkedProjectConfigService(settings, clusterSettings, DefaultProjectResolver.INSTANCE),
270269
new TelemetryProvider() {
271270
final MeterRegistry meterRegistry = new RecordingMeterRegistry();
@@ -330,31 +329,6 @@ private static TransportAddress[] extractTransportAddresses(TransportService tra
330329
return transportAddresses.toArray(new TransportAddress[transportAddresses.size()]);
331330
}
332331

333-
public static TaskManager createTaskManager(
334-
Settings settings,
335-
ThreadPool threadPool,
336-
Set<String> taskHeaders,
337-
Tracer tracer,
338-
String nodeId
339-
) {
340-
TaskManager mockTaskManager = createMockTaskManager(settings, threadPool, taskHeaders, tracer, nodeId);
341-
return MockTaskManager.SPY_TASK_MANAGER_SETTING.get(settings) ? spy(mockTaskManager) : mockTaskManager;
342-
}
343-
344-
private static TaskManager createMockTaskManager(
345-
Settings settings,
346-
ThreadPool threadPool,
347-
Set<String> taskHeaders,
348-
Tracer tracer,
349-
String nodeId
350-
) {
351-
if (MockTaskManager.USE_MOCK_TASK_MANAGER_SETTING.get(settings)) {
352-
return new MockTaskManager(settings, threadPool, taskHeaders);
353-
} else {
354-
return new TaskManager(settings, threadPool, taskHeaders, tracer, nodeId);
355-
}
356-
}
357-
358332
/**
359333
* Clears all the registered rules.
360334
*/

0 commit comments

Comments
 (0)