Skip to content

Commit f6b9116

Browse files
committed
Remove test dependencies on cluster state API master waiting
As preparation for running the cluster state API on the local node, we need to update these tests that currently depend on that API running on (and waiting for) the master node. Relates #127212
1 parent 95a1b4b commit f6b9116

File tree

11 files changed

+55
-259
lines changed

11 files changed

+55
-259
lines changed

plugins/discovery-azure-classic/src/internalClusterTest/java/org/elasticsearch/discovery/azure/classic/AzureSimpleTests.java

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.elasticsearch.cloud.azure.classic.management.AzureComputeService.Discovery;
1414
import org.elasticsearch.cloud.azure.classic.management.AzureComputeService.Management;
1515
import org.elasticsearch.common.settings.Settings;
16-
import org.elasticsearch.core.TimeValue;
1716
import org.elasticsearch.test.ESIntegTestCase;
1817

1918
import static org.hamcrest.Matchers.containsString;
@@ -28,16 +27,7 @@ public void testOneNodeShouldRunUsingPrivateIp() {
2827

2928
final String node1 = internalCluster().startNode(settings);
3029
registerAzureNode(node1);
31-
assertNotNull(
32-
client().admin()
33-
.cluster()
34-
.prepareState(TEST_REQUEST_TIMEOUT)
35-
.setMasterNodeTimeout(TimeValue.timeValueSeconds(1))
36-
.get()
37-
.getState()
38-
.nodes()
39-
.getMasterNodeId()
40-
);
30+
awaitMasterNode();
4131

4232
// We expect having 1 node as part of the cluster, let's test that
4333
assertNumberOfNodes(1);
@@ -50,16 +40,7 @@ public void testOneNodeShouldRunUsingPublicIp() {
5040

5141
final String node1 = internalCluster().startNode(settings);
5242
registerAzureNode(node1);
53-
assertNotNull(
54-
client().admin()
55-
.cluster()
56-
.prepareState(TEST_REQUEST_TIMEOUT)
57-
.setMasterNodeTimeout(TimeValue.timeValueSeconds(1))
58-
.get()
59-
.getState()
60-
.nodes()
61-
.getMasterNodeId()
62-
);
43+
awaitMasterNode();
6344

6445
// We expect having 1 node as part of the cluster, let's test that
6546
assertNumberOfNodes(1);

plugins/discovery-azure-classic/src/internalClusterTest/java/org/elasticsearch/discovery/azure/classic/AzureTwoStartedNodesTests.java

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.elasticsearch.cloud.azure.classic.management.AzureComputeService.Discovery;
1414
import org.elasticsearch.cloud.azure.classic.management.AzureComputeService.Management;
1515
import org.elasticsearch.common.settings.Settings;
16-
import org.elasticsearch.core.TimeValue;
1716
import org.elasticsearch.test.ESIntegTestCase;
1817

1918
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 0, numClientNodes = 0)
@@ -31,30 +30,12 @@ public void testTwoNodesShouldRunUsingPrivateOrPublicIp() {
3130
logger.info("--> start first node");
3231
final String node1 = internalCluster().startNode(settings);
3332
registerAzureNode(node1);
34-
assertNotNull(
35-
client().admin()
36-
.cluster()
37-
.prepareState(TEST_REQUEST_TIMEOUT)
38-
.setMasterNodeTimeout(TimeValue.timeValueSeconds(1))
39-
.get()
40-
.getState()
41-
.nodes()
42-
.getMasterNodeId()
43-
);
33+
awaitMasterNode();
4434

4535
logger.info("--> start another node");
4636
final String node2 = internalCluster().startNode(settings);
4737
registerAzureNode(node2);
48-
assertNotNull(
49-
client().admin()
50-
.cluster()
51-
.prepareState(TEST_REQUEST_TIMEOUT)
52-
.setMasterNodeTimeout(TimeValue.timeValueSeconds(1))
53-
.get()
54-
.getState()
55-
.nodes()
56-
.getMasterNodeId()
57-
);
38+
awaitMasterNode();
5839

5940
// We expect having 2 nodes as part of the cluster, let's test that
6041
assertNumberOfNodes(2);

server/src/internalClusterTest/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ public void testElectMasterWithLatestVersion() throws Exception {
146146

147147
isolateAllNodes.stopDisrupting();
148148

149+
awaitMasterNode();
149150
final ClusterState state = clusterAdmin().prepareState(TEST_REQUEST_TIMEOUT).get().getState();
150151
if (state.metadata().getProject().hasIndex("test") == false) {
151152
fail("index 'test' was lost. current cluster state: " + state);

server/src/internalClusterTest/java/org/elasticsearch/readiness/ReadinessClusterIT.java

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99
package org.elasticsearch.readiness;
1010

11-
import org.elasticsearch.client.internal.Client;
1211
import org.elasticsearch.cluster.ClusterChangedEvent;
1312
import org.elasticsearch.cluster.ClusterState;
1413
import org.elasticsearch.cluster.ClusterStateListener;
@@ -18,9 +17,7 @@
1817
import org.elasticsearch.cluster.service.ClusterService;
1918
import org.elasticsearch.common.settings.Settings;
2019
import org.elasticsearch.core.Strings;
21-
import org.elasticsearch.core.TimeValue;
2220
import org.elasticsearch.core.Tuple;
23-
import org.elasticsearch.discovery.MasterNotDiscoveredException;
2421
import org.elasticsearch.plugins.Plugin;
2522
import org.elasticsearch.reservedstate.service.FileSettingsService;
2623
import org.elasticsearch.test.ESIntegTestCase;
@@ -48,7 +45,6 @@
4845
import static org.elasticsearch.test.NodeRoles.nonDataNode;
4946
import static org.hamcrest.Matchers.allOf;
5047
import static org.hamcrest.Matchers.containsString;
51-
import static org.hamcrest.Matchers.equalTo;
5248
import static org.hamcrest.Matchers.hasSize;
5349
import static org.hamcrest.Matchers.notNullValue;
5450

@@ -110,44 +106,30 @@ protected Collection<Class<? extends Plugin>> getMockPlugins() {
110106
return Collections.unmodifiableList(plugins);
111107
}
112108

113-
private void assertMasterNode(Client client, String node) {
114-
assertThat(
115-
client.admin().cluster().prepareState(TEST_REQUEST_TIMEOUT).get().getState().nodes().getMasterNode().getName(),
116-
equalTo(node)
117-
);
118-
}
119-
120-
private void expectMasterNotFound() {
121-
expectThrows(
122-
MasterNotDiscoveredException.class,
123-
clusterAdmin().prepareState(TEST_REQUEST_TIMEOUT).setMasterNodeTimeout(TimeValue.timeValueMillis(100))
124-
);
125-
}
126-
127109
@AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/108613")
128110
public void testReadinessDuringRestarts() throws Exception {
129111
internalCluster().setBootstrapMasterNodeIndex(0);
130112
writeFileSettings(testJSON);
131113
logger.info("--> start data node / non master node");
132114
String dataNode = internalCluster().startNode(Settings.builder().put(dataOnlyNode()).put("discovery.initial_state_timeout", "1s"));
133115

134-
expectMasterNotFound();
116+
awaitMasterNotFound();
135117
assertFalse(internalCluster().getInstance(ReadinessService.class, dataNode).ready());
136118

137119
logger.info("--> start master node");
138120
final String masterNode = internalCluster().startMasterOnlyNode();
139121

140-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
122+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
141123
tcpReadinessProbeTrue(internalCluster().getInstance(ReadinessService.class, dataNode));
142124
tcpReadinessProbeTrue(internalCluster().getInstance(ReadinessService.class, masterNode));
143125

144126
final var masterReadinessService = internalCluster().getInstance(ReadinessService.class, masterNode);
145-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
127+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
146128

147129
logger.info("--> stop master node");
148130
Settings masterDataPathSettings = internalCluster().dataPathSettings(internalCluster().getMasterName());
149131
internalCluster().stopCurrentMasterNode();
150-
expectMasterNotFound();
132+
awaitMasterNotFound();
151133

152134
tcpReadinessProbeFalse(masterReadinessService);
153135

@@ -156,8 +138,8 @@ public void testReadinessDuringRestarts() throws Exception {
156138
Settings.builder().put(nonDataNode(masterNode())).put(masterDataPathSettings)
157139
);
158140

159-
assertMasterNode(internalCluster().nonMasterClient(), nextMasterEligibleNodeName);
160-
assertMasterNode(internalCluster().masterClient(), nextMasterEligibleNodeName);
141+
awaitMasterNode(internalCluster().getNonMasterNodeName(), nextMasterEligibleNodeName);
142+
awaitMasterNode(internalCluster().getMasterName(), nextMasterEligibleNodeName);
161143
tcpReadinessProbeTrue(internalCluster().getInstance(ReadinessService.class, nextMasterEligibleNodeName));
162144
}
163145

@@ -168,7 +150,7 @@ public void testReadinessDuringRestartsNormalOrder() throws Exception {
168150
String masterNode = internalCluster().startMasterOnlyNode();
169151
internalCluster().validateClusterFormed();
170152

171-
assertMasterNode(internalCluster().masterClient(), masterNode);
153+
awaitMasterNode(internalCluster().getMasterName(), masterNode);
172154

173155
logger.info("--> start 2 data nodes");
174156
List<String> dataNodes = internalCluster().startDataOnlyNodes(2);
@@ -196,7 +178,7 @@ public Settings onNodeStopped(String nodeName) throws Exception {
196178
internalCluster().restartNode(masterNode, new InternalTestCluster.RestartCallback() {
197179
@Override
198180
public Settings onNodeStopped(String nodeName) throws Exception {
199-
expectMasterNotFound();
181+
awaitMasterNotFound();
200182

201183
logger.info("--> master node [{}] stopped", nodeName);
202184

@@ -271,7 +253,7 @@ public void testNotReadyOnBadFileSettings() throws Exception {
271253
final String masterNode = internalCluster().startMasterOnlyNode(
272254
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
273255
);
274-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
256+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
275257
var savedClusterState = setupClusterStateListenerForError(masterNode);
276258

277259
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
@@ -294,22 +276,22 @@ public void testReadyAfterRestartWithBadFileSettings() throws Exception {
294276
String dataNode = internalCluster().startNode(Settings.builder().put(dataOnlyNode()).put("discovery.initial_state_timeout", "1s"));
295277
String masterNode = internalCluster().startMasterOnlyNode();
296278

297-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
279+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
298280
assertBusy(() -> assertTrue("master node ready", internalCluster().getInstance(ReadinessService.class, masterNode).ready()));
299281
assertBusy(() -> assertTrue("data node ready", internalCluster().getInstance(ReadinessService.class, dataNode).ready()));
300282

301283
logger.info("--> stop master node");
302284
Settings masterDataPathSettings = internalCluster().dataPathSettings(internalCluster().getMasterName());
303285
internalCluster().stopCurrentMasterNode();
304-
expectMasterNotFound();
286+
awaitMasterNotFound();
305287

306288
logger.info("--> write bad file settings before restarting master node");
307289
writeFileSettings(testErrorJSON);
308290

309291
logger.info("--> restart master node");
310292
String nextMasterNode = internalCluster().startNode(Settings.builder().put(nonDataNode(masterNode())).put(masterDataPathSettings));
311293

312-
assertMasterNode(internalCluster().nonMasterClient(), nextMasterNode);
294+
awaitMasterNode(internalCluster().getNonMasterNodeName(), nextMasterNode);
313295

314296
var savedClusterState = setupClusterStateListenerForError(nextMasterNode);
315297
assertTrue(savedClusterState.await(20, TimeUnit.SECONDS));
@@ -324,7 +306,7 @@ public void testReadyWhenMissingFileSettings() throws Exception {
324306
final String masterNode = internalCluster().startMasterOnlyNode(
325307
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
326308
);
327-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
309+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
328310
var savedClusterState = setupClusterStateListener(masterNode);
329311

330312
// we need this after we setup the listener above, in case the node started and processed
@@ -382,7 +364,7 @@ public void testReadyAfterCorrectFileSettings() throws Exception {
382364

383365
logger.info("--> start master node");
384366
final String masterNode = internalCluster().startMasterOnlyNode();
385-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
367+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
386368
var readinessProbeListening = setupReadinessProbeListener(masterNode);
387369

388370
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);

server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/ComponentTemplatesFileSettingsIT.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.elasticsearch.action.admin.indices.template.put.PutComponentTemplateAction;
1818
import org.elasticsearch.action.admin.indices.template.put.TransportPutComposableIndexTemplateAction;
1919
import org.elasticsearch.action.admin.indices.template.reservedstate.ReservedComposableIndexTemplateAction;
20-
import org.elasticsearch.client.internal.Client;
2120
import org.elasticsearch.cluster.ClusterChangedEvent;
2221
import org.elasticsearch.cluster.ClusterStateListener;
2322
import org.elasticsearch.cluster.metadata.ComponentTemplate;
@@ -35,7 +34,6 @@
3534
import java.nio.charset.StandardCharsets;
3635
import java.util.Map;
3736
import java.util.concurrent.CountDownLatch;
38-
import java.util.concurrent.ExecutionException;
3937
import java.util.concurrent.TimeUnit;
4038
import java.util.concurrent.atomic.AtomicLong;
4139

@@ -46,7 +44,6 @@
4644
import static org.hamcrest.Matchers.anEmptyMap;
4745
import static org.hamcrest.Matchers.containsInAnyOrder;
4846
import static org.hamcrest.Matchers.containsString;
49-
import static org.hamcrest.Matchers.equalTo;
5047
import static org.hamcrest.Matchers.hasSize;
5148
import static org.hamcrest.Matchers.notNullValue;
5249

@@ -355,13 +352,6 @@ public class ComponentTemplatesFileSettingsIT extends ESIntegTestCase {
355352
}
356353
}""";
357354

358-
private void assertMasterNode(Client client, String node) throws ExecutionException, InterruptedException {
359-
assertThat(
360-
client.admin().cluster().prepareState(TEST_REQUEST_TIMEOUT).execute().get().getState().nodes().getMasterNode().getName(),
361-
equalTo(node)
362-
);
363-
}
364-
365355
private void writeJSONFile(String node, String json) throws Exception {
366356
FileSettingsServiceIT.writeJSONFile(node, json, logger, versionCounter.incrementAndGet());
367357
}
@@ -543,7 +533,7 @@ public void testSettingsApplied() throws Exception {
543533

544534
logger.info("--> start master node");
545535
final String masterNode = internalCluster().startMasterOnlyNode();
546-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
536+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
547537

548538
assertClusterStateSaveOK(savedClusterState.v1(), savedClusterState.v2());
549539

@@ -611,7 +601,7 @@ public void testErrorSaved() throws Exception {
611601

612602
logger.info("--> start master node");
613603
final String masterNode = internalCluster().startMasterOnlyNode();
614-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
604+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
615605
var savedClusterState = setupClusterStateListenerForError(masterNode);
616606

617607
writeJSONFile(masterNode, testErrorJSON);

server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
1515
import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
1616
import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse;
17-
import org.elasticsearch.client.internal.Client;
1817
import org.elasticsearch.cluster.ClusterChangedEvent;
1918
import org.elasticsearch.cluster.ClusterStateListener;
2019
import org.elasticsearch.cluster.metadata.ReservedStateErrorMetadata;
@@ -129,13 +128,6 @@ public void resetVersionCounter() {
129128
}
130129
}""";
131130

132-
private void assertMasterNode(Client client, String node) {
133-
assertThat(
134-
client.admin().cluster().prepareState(TEST_REQUEST_TIMEOUT).get().getState().nodes().getMasterNode().getName(),
135-
equalTo(node)
136-
);
137-
}
138-
139131
public static void writeJSONFile(String node, String json, Logger logger, Long version) throws Exception {
140132
FileSettingsService fileSettingsService = internalCluster().getInstance(FileSettingsService.class, node);
141133
writeJSONFile(node, json, logger, version, fileSettingsService.watchedFile());
@@ -254,7 +246,7 @@ public void testSettingsApplied() throws Exception {
254246

255247
logger.info("--> start master node");
256248
final String masterNode = internalCluster().startMasterOnlyNode();
257-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
249+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
258250
var savedClusterState = setupClusterStateListener(masterNode, versionCounter.incrementAndGet());
259251

260252
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
@@ -281,7 +273,7 @@ public void testSettingsAppliedOnStart() throws Exception {
281273

282274
logger.info("--> start master node");
283275
final String masterNode = internalCluster().startMasterOnlyNode();
284-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
276+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
285277

286278
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
287279

@@ -297,7 +289,7 @@ public void testReservedStatePersistsOnRestart() throws Exception {
297289
final String masterNode = internalCluster().startMasterOnlyNode(
298290
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
299291
);
300-
assertMasterNode(internalCluster().masterClient(), masterNode);
292+
awaitMasterNode(internalCluster().getMasterName(), masterNode);
301293
var savedClusterState = setupClusterStateListener(masterNode, versionCounter.incrementAndGet());
302294

303295
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
@@ -375,7 +367,7 @@ public void testErrorSaved() throws Exception {
375367
final String masterNode = internalCluster().startMasterOnlyNode(
376368
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
377369
);
378-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
370+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
379371
var savedClusterState = setupClusterStateListenerForError(masterNode);
380372

381373
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
@@ -399,7 +391,7 @@ public void testErrorCanRecoverOnRestart() throws Exception {
399391
final String masterNode = internalCluster().startMasterOnlyNode(
400392
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
401393
);
402-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
394+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
403395
var savedClusterState = setupClusterStateListenerForError(masterNode);
404396

405397
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
@@ -435,7 +427,7 @@ public void testNewErrorOnRestartReprocessing() throws Exception {
435427
final String masterNode = internalCluster().startMasterOnlyNode(
436428
Settings.builder().put(INITIAL_STATE_TIMEOUT_SETTING.getKey(), "0s").build()
437429
);
438-
assertMasterNode(internalCluster().nonMasterClient(), masterNode);
430+
awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode);
439431
var savedClusterState = setupClusterStateListenerForError(masterNode);
440432

441433
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);

0 commit comments

Comments
 (0)