Skip to content

Commit bb45627

Browse files
authored
SOLR-17931: Deal with deprecated methods on DocCollection (#3862)
Move test only methods to SolrCloudTestCase
1 parent 3cb1f83 commit bb45627

25 files changed

+114
-119
lines changed

solr/core/src/test/org/apache/solr/cloud/AddReplicaTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,17 @@ public void testAddMultipleReplicas() throws Exception {
7474
DocCollection docCollection = cloudClient.getClusterState().getCollectionOrNull(collection);
7575
assertNotNull(docCollection);
7676
assertEquals(4, docCollection.getReplicas().size());
77-
assertEquals(2, docCollection.getReplicas(EnumSet.of(Replica.Type.NRT)).size());
78-
assertEquals(1, docCollection.getReplicas(EnumSet.of(Replica.Type.TLOG)).size());
79-
assertEquals(1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).size());
77+
assertEquals(2, getReplicas(docCollection, EnumSet.of(Replica.Type.NRT)).size());
78+
assertEquals(1, getReplicas(docCollection, EnumSet.of(Replica.Type.TLOG)).size());
79+
assertEquals(1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).size());
8080

8181
docCollection = cloudClient.getClusterState().getCollectionOrNull(collection);
8282
assertNotNull(docCollection);
8383
// sanity check that everything is as before
8484
assertEquals(4, docCollection.getReplicas().size());
85-
assertEquals(2, docCollection.getReplicas(EnumSet.of(Replica.Type.NRT)).size());
86-
assertEquals(1, docCollection.getReplicas(EnumSet.of(Replica.Type.TLOG)).size());
87-
assertEquals(1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).size());
85+
assertEquals(2, getReplicas(docCollection, EnumSet.of(Replica.Type.NRT)).size());
86+
assertEquals(1, getReplicas(docCollection, EnumSet.of(Replica.Type.TLOG)).size());
87+
assertEquals(1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).size());
8888

8989
// adding any number of replicas is supported if an explicit create node set is specified
9090
// so test that as well
@@ -107,9 +107,9 @@ public void testAddMultipleReplicas() throws Exception {
107107
assertNotNull(docCollection);
108108
// sanity check that everything is as before
109109
assertEquals(9, docCollection.getReplicas().size());
110-
assertEquals(5, docCollection.getReplicas(EnumSet.of(Replica.Type.NRT)).size());
111-
assertEquals(2, docCollection.getReplicas(EnumSet.of(Replica.Type.TLOG)).size());
112-
assertEquals(2, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).size());
110+
assertEquals(5, getReplicas(docCollection, EnumSet.of(Replica.Type.NRT)).size());
111+
assertEquals(2, getReplicas(docCollection, EnumSet.of(Replica.Type.TLOG)).size());
112+
assertEquals(2, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).size());
113113
}
114114

115115
@Test

solr/core/src/test/org/apache/solr/cloud/CleanupOldIndexTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.Locale;
2424
import java.util.concurrent.TimeUnit;
2525
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
26-
import org.apache.solr.common.cloud.DocCollection;
2726
import org.apache.solr.core.CoreContainer;
2827
import org.apache.solr.core.SolrCore;
2928
import org.apache.solr.embedded.JettySolrRunner;
@@ -117,7 +116,7 @@ public void test() throws Exception {
117116
COLLECTION,
118117
DEFAULT_TIMEOUT,
119118
TimeUnit.SECONDS,
120-
(n, c) -> DocCollection.isFullyActive(n, c, 1, 2));
119+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 1, 2));
121120

122121
assertFalse(Files.isDirectory(oldIndexDir1));
123122
assertFalse(Files.isDirectory(oldIndexDir2));

solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
3434
import org.apache.solr.client.solrj.request.UpdateRequest;
3535
import org.apache.solr.client.solrj.response.QueryResponse;
36-
import org.apache.solr.common.cloud.DocCollection;
3736
import org.apache.solr.common.params.ModifiableSolrParams;
3837
import org.apache.solr.common.params.SolrParams;
3938
import org.apache.solr.embedded.JettySolrRunner;
@@ -93,7 +92,7 @@ public static void setupCluster() throws Exception {
9392
COLLECTION,
9493
DEFAULT_TIMEOUT,
9594
TimeUnit.SECONDS,
96-
(n, c) -> DocCollection.isFullyActive(n, c, 2, 1));
95+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 2, 1));
9796

9897
fiveHundredsByNode = new LinkedHashMap<>();
9998
long httpOk = 0;

solr/core/src/test/org/apache/solr/cloud/CollectionStateZnodeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void testZkNodeLocation() throws Exception {
4848
waitForState(
4949
"Collection not created",
5050
collectionName,
51-
(n, c) -> DocCollection.isFullyActive(n, c, 2, 2));
51+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 2, 2));
5252
assertTrue(
5353
"Collection path does not exist",
5454
zkClient().exists(DocCollection.getCollectionPath(collectionName), true));

solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ public void deleteInactiveReplicaTest() throws Exception {
6565
"Expected a cluster of 2 shards and 2 replicas",
6666
collectionName,
6767
(n, c) -> {
68-
return DocCollection.isFullyActive(n, c, numShards, replicationFactor);
68+
return SolrCloudTestCase.replicasForCollectionAreFullyActive(
69+
n, c, numShards, replicationFactor);
6970
});
7071

7172
DocCollection collectionState = getCollectionState(collectionName);

solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public void setupCluster(boolean security) throws Exception {
100100
waitForState(
101101
"Waiting for collection creation",
102102
COLLECTION,
103-
(n, c) -> DocCollection.isFullyActive(n, c, 2, 2));
103+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 2, 2));
104104
}
105105

106106
@Test

solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import org.apache.solr.common.SolrDocument;
4646
import org.apache.solr.common.SolrDocumentList;
4747
import org.apache.solr.common.SolrInputDocument;
48-
import org.apache.solr.common.cloud.DocCollection;
4948
import org.apache.solr.common.cloud.Replica;
5049
import org.apache.solr.common.cloud.ZkStateReader;
5150
import org.apache.solr.common.params.ModifiableSolrParams;
@@ -82,7 +81,7 @@ public void testReplicaVersionHandling() throws Exception {
8281
COLLECTION,
8382
DEFAULT_TIMEOUT,
8483
TimeUnit.SECONDS,
85-
(n, c) -> DocCollection.isFullyActive(n, c, 1, 3));
84+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 1, 3));
8685

8786
final Replica leader = stateReader.getLeaderRetry(COLLECTION, shardId);
8887

solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public static String createNewCollection() throws Exception {
8989
name,
9090
DEFAULT_TIMEOUT,
9191
TimeUnit.SECONDS,
92-
(n, c) -> DocCollection.isFullyActive(n, c, 2, 2));
92+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 2, 2));
9393
return name;
9494
}
9595

@@ -167,7 +167,7 @@ public void testDeleteByIdImplicitRouter() throws Exception {
167167
testCollectionName,
168168
DEFAULT_TIMEOUT,
169169
TimeUnit.SECONDS,
170-
(n, c1) -> DocCollection.isFullyActive(n, c1, 2, 2));
170+
(n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2));
171171

172172
final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName);
173173
try (SolrClient shard1 = getHttpSolrClient(docCol.getSlice("shard1").getLeader());
@@ -288,7 +288,7 @@ public void testRTGCompositeRouterWithRouterField() throws Exception {
288288
testCollectionName,
289289
DEFAULT_TIMEOUT,
290290
TimeUnit.SECONDS,
291-
(n, c1) -> DocCollection.isFullyActive(n, c1, 2, 2));
291+
(n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2));
292292

293293
// Add a few documents with diff routes
294294
cloudClient.add(testCollectionName, sdoc("id", "1", "routefield_s", "europe"));
@@ -322,7 +322,7 @@ public void testDeleteByIdCompositeRouterWithRouterField() throws Exception {
322322
testCollectionName,
323323
DEFAULT_TIMEOUT,
324324
TimeUnit.SECONDS,
325-
(n, c1) -> DocCollection.isFullyActive(n, c1, 2, 2));
325+
(n, c1) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c1, 2, 2));
326326

327327
final DocCollection docCol = cloudClient.getClusterState().getCollection(testCollectionName);
328328
try (SolrClient shard1 = getHttpSolrClient(docCol.getSlice("shard1").getLeader());
@@ -464,7 +464,7 @@ public void testThatCantForwardToLeaderFails() throws Exception {
464464
collectionName,
465465
DEFAULT_TIMEOUT,
466466
TimeUnit.SECONDS,
467-
(n, c) -> DocCollection.isFullyActive(n, c, 2, 1));
467+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 2, 1));
468468

469469
{ // HACK: Check the leaderProps for the shard hosted on the node we're going to kill...
470470
List<Replica> replicas =

solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionWithEmptyReplica.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
3030
import org.apache.solr.client.solrj.response.QueryResponse;
3131
import org.apache.solr.common.SolrInputDocument;
32-
import org.apache.solr.common.cloud.DocCollection;
3332
import org.apache.solr.common.cloud.Replica;
3433
import org.apache.solr.common.cloud.Slice;
3534
import org.apache.solr.embedded.JettySolrRunner;
@@ -96,7 +95,7 @@ public void test() throws Exception {
9695
COLLECTION_NAME,
9796
DEFAULT_TIMEOUT,
9897
TimeUnit.SECONDS,
99-
(n, c) -> DocCollection.isFullyActive(n, c, 1, 2));
98+
(n, c) -> SolrCloudTestCase.replicasForCollectionAreFullyActive(n, c, 1, 2));
10099

101100
// now query each replica and check for consistency
102101
assertConsistentReplicas(

solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,11 @@ public void testCreateDelete() throws Exception {
185185
assertEquals(
186186
"Expecting 6 pull replicas, 3 per shard",
187187
6,
188-
docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).size());
188+
getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).size());
189189
assertEquals(
190190
"Expecting 2 writer replicas, one per shard",
191191
2,
192-
docCollection.getReplicas(EnumSet.of(Replica.Type.NRT)).size());
192+
getReplicas(docCollection, EnumSet.of(Replica.Type.NRT)).size());
193193
for (Slice s : docCollection.getSlices()) {
194194
// read-only replicas can never become leaders
195195
assertNotSame(s.getLeader().getType(), Replica.Type.PULL);
@@ -560,7 +560,7 @@ private void doTestNoLeader(boolean removeReplica) throws Exception {
560560
assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound());
561561
}
562562

563-
waitForNumDocsInAllReplicas(1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)));
563+
waitForNumDocsInAllReplicas(1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)));
564564

565565
// Delete leader replica from shard1
566566
ignoreException("No registered leader was found"); // These are expected
@@ -611,7 +611,7 @@ private void doTestNoLeader(boolean removeReplica) throws Exception {
611611

612612
// Also fails if I send the update to the pull replica explicitly
613613
try (SolrClient pullReplicaClient =
614-
getHttpSolrClient(docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0))) {
614+
getHttpSolrClient(getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).get(0))) {
615615
expectThrows(
616616
SolrException.class,
617617
() ->
@@ -625,7 +625,7 @@ private void doTestNoLeader(boolean removeReplica) throws Exception {
625625
}
626626

627627
// Queries should still work
628-
waitForNumDocsInAllReplicas(1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)));
628+
waitForNumDocsInAllReplicas(1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)));
629629
// Add nrt replica back. Since there is no nrt now, new nrt will have no docs. There will be
630630
// data loss, since it will become the leader and pull replicas will replicate from it.
631631
// Maybe we want to change this. Replicate from pull replicas is not a good idea, since they are
@@ -652,7 +652,7 @@ private void doTestNoLeader(boolean removeReplica) throws Exception {
652652
// different?
653653
if (removeReplica) {
654654
// Pull replicas will replicate the empty index if a new replica was added and becomes leader
655-
waitForNumDocsInAllReplicas(0, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)));
655+
waitForNumDocsInAllReplicas(0, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)));
656656
}
657657

658658
// add docs agin
@@ -663,8 +663,8 @@ private void doTestNoLeader(boolean removeReplica) throws Exception {
663663
assertEquals(1, leaderClient.query(new SolrQuery("*:*")).getResults().getNumFound());
664664
}
665665
waitForNumDocsInAllReplicas(
666-
1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)), "id:2", null, null);
667-
waitForNumDocsInAllReplicas(1, docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)));
666+
1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)), "id:2", null, null);
667+
waitForNumDocsInAllReplicas(1, getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)));
668668
}
669669

670670
public void testKillPullReplica() throws Exception {
@@ -729,12 +729,11 @@ public void testSkipLeaderRecoveryProperty() throws Exception {
729729
waitForState("Collection init never finished?", collectionName, activeReplicaCount(0, 1, 2));
730730

731731
assertEquals(
732-
2, getCollectionState(collectionName).getReplicas(EnumSet.of(Replica.Type.PULL)).size());
732+
2, getReplicas(getCollectionState(collectionName), EnumSet.of(Replica.Type.PULL)).size());
733733

734734
// set our 'skip' property on one of the PULL replicas, and keep track of this replica
735735
final String pullThatSkipsRecovery =
736-
getCollectionState(collectionName)
737-
.getReplicas(EnumSet.of(Replica.Type.PULL))
736+
getReplicas(getCollectionState(collectionName), EnumSet.of(Replica.Type.PULL))
738737
.get(0)
739738
.getName();
740739
CollectionAdminRequest.addReplicaProperty(
@@ -767,7 +766,7 @@ public void testSkipLeaderRecoveryProperty() throws Exception {
767766
activeReplicaCount(0, 0, 2));
768767
waitForNumDocsInAllReplicas(
769768
numDocsAdded,
770-
getCollectionState(collectionName).getReplicas(EnumSet.of(Replica.Type.PULL)));
769+
getReplicas(getCollectionState(collectionName), EnumSet.of(Replica.Type.PULL)));
771770

772771
// Add yetanother PULL replica while the leader is down.
773772
// This new replica will immediately stall going into recoveery, since the leader is down.
@@ -780,7 +779,7 @@ public void testSkipLeaderRecoveryProperty() throws Exception {
780779
(liveNodes, colState) -> {
781780
int active = 0;
782781
int down = 0;
783-
for (Replica r : colState.getReplicas(EnumSet.of(Replica.Type.PULL))) {
782+
for (Replica r : getReplicas(colState, EnumSet.of(Replica.Type.PULL))) {
784783
if (r.getState().equals(Replica.State.ACTIVE)) {
785784
active++;
786785
} else if (r.getState().equals(Replica.State.DOWN)) {
@@ -793,7 +792,7 @@ public void testSkipLeaderRecoveryProperty() throws Exception {
793792
// But even if when set our 'skip' property on this new PULL replica, it's *next* (re)start
794793
// should still block waiting for RECOVERY since it won't have an active index.
795794
final String pullThatWantsToSkipRecoveryButMustRecoverOnce =
796-
getCollectionState(collectionName).getReplicas(EnumSet.of(Replica.Type.PULL)).stream()
795+
getReplicas(getCollectionState(collectionName), EnumSet.of(Replica.Type.PULL)).stream()
797796
.filter(r -> r.getState().equals(Replica.State.DOWN))
798797
.map(r -> r.getName())
799798
.findFirst()
@@ -929,19 +928,19 @@ static DocCollection assertNumberOfReplicas(
929928
assertEquals(
930929
"Unexpected number of writer replicas: " + docCollection,
931930
numNrtReplicas,
932-
docCollection.getReplicas(EnumSet.of(Replica.Type.NRT)).stream()
931+
getReplicas(docCollection, EnumSet.of(Replica.Type.NRT)).stream()
933932
.filter(r -> !activeOnly || r.getState() == Replica.State.ACTIVE)
934933
.count());
935934
assertEquals(
936935
"Unexpected number of pull replicas: " + docCollection,
937936
numPullReplicas,
938-
docCollection.getReplicas(EnumSet.of(Replica.Type.PULL)).stream()
937+
getReplicas(docCollection, EnumSet.of(Replica.Type.PULL)).stream()
939938
.filter(r -> !activeOnly || r.getState() == Replica.State.ACTIVE)
940939
.count());
941940
assertEquals(
942941
"Unexpected number of active replicas: " + docCollection,
943942
numTlogReplicas,
944-
docCollection.getReplicas(EnumSet.of(Replica.Type.TLOG)).stream()
943+
getReplicas(docCollection, EnumSet.of(Replica.Type.TLOG)).stream()
945944
.filter(r -> !activeOnly || r.getState() == Replica.State.ACTIVE)
946945
.count());
947946
return docCollection;

0 commit comments

Comments
 (0)