This is an automated email from the ASF dual-hosted git repository.
epugh pushed a commit to branch branch_10_0
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_10_0 by this push:
new 327121d0e8c SOLR-16312: Merge AbstractDistribZkTestBase into
AbstractFullDistribZkTestBase (#3912)
327121d0e8c is described below
commit 327121d0e8caacf65bef9f4f8487dd055abe55fd
Author: Eric Pugh <[email protected]>
AuthorDate: Mon Dec 1 07:31:41 2025 -0500
SOLR-16312: Merge AbstractDistribZkTestBase into
AbstractFullDistribZkTestBase (#3912)
---
.../org/apache/solr/cli/SolrCLIZkToolsTest.java | 20 +-
.../org/apache/solr/cli/ZkSubcommandsTest.java | 4 +-
.../solr/cloud/ChaosMonkeyShardSplitTest.java | 8 +-
.../solr/cloud/LeaderElectionContextKeyTest.java | 4 +-
.../test/org/apache/solr/cloud/OverseerTest.java | 2 +-
.../solr/cloud/ParallelCommitExecutionTest.java | 2 +-
.../TestCloudPhrasesIdentificationComponent.java | 2 +-
.../solr/cloud/TestCloudPseudoReturnFields.java | 2 +-
.../org/apache/solr/cloud/TestCloudRecovery2.java | 2 +-
.../apache/solr/cloud/TestRandomFlRTGCloud.java | 2 +-
.../cloud/TestStressCloudBlindAtomicUpdates.java | 2 +-
.../LocalFSCloudIncrementalBackupTest.java | 4 +-
.../solr/cloud/api/collections/ShardSplitTest.java | 70 ++--
.../TestCollectionsAPIViaSolrCloudCluster.java | 6 +-
.../core/snapshots/TestSolrCloudSnapshots.java | 4 +-
.../component/CustomHighlightComponentTest.java | 4 +-
.../component/SearchHandlerAppendsCloudTest.java | 4 +-
.../solr/handler/component/UpdateLogCloudTest.java | 8 +-
.../transform/TestSubQueryTransformerDistrib.java | 6 +-
.../search/facet/TestCloudJSONFacetJoinDomain.java | 4 +-
.../solr/search/facet/TestCloudJSONFacetSKG.java | 4 +-
.../search/facet/TestCloudJSONFacetSKGEquiv.java | 4 +-
.../solr/search/join/TestCloudNestedDocsSort.java | 4 +-
.../apache/solr/servlet/HttpSolrCallCloudTest.java | 4 +-
.../client/solrj/io/graph/GraphExpressionTest.java | 4 +-
.../apache/solr/client/solrj/io/sql/JdbcTest.java | 4 +-
.../client/solrj/io/stream/JDBCStreamTest.java | 4 +-
.../client/solrj/io/stream/MathExpressionTest.java | 4 +-
.../solrj/io/stream/SelectWithEvaluatorsTest.java | 4 +-
.../solrj/io/stream/StreamDecoratorTest.java | 4 +-
.../solrj/impl/CloudHttp2SolrClientTest.java | 6 +-
.../solr/cloud/AbstractDistribZkTestBase.java | 402 ---------------------
.../solr/cloud/AbstractFullDistribZkTestBase.java | 319 +++++++++++++++-
.../apache/solr/cloud/MultiSolrCloudTestCase.java | 2 +-
.../AbstractCloudBackupRestoreTestCase.java | 4 +-
.../collections/AbstractIncrementalBackupTest.java | 8 +-
.../client/solrj/apache/CloudSolrClientTest.java | 6 +-
37 files changed, 431 insertions(+), 516 deletions(-)
diff --git a/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java
b/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java
index c7101a0f493..d7c86595dbc 100644
--- a/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/SolrCLIZkToolsTest.java
@@ -27,7 +27,7 @@ import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkMaintenanceUtils;
@@ -72,7 +72,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
Path srcPathCheck = configSet.resolve("cloud-subdirs").resolve("conf");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"upconfig1", zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"upconfig1", zkAddr);
// Now do we have that config up on ZK?
verifyZkLocalPathsMatch(srcPathCheck, "/configs/upconfig1");
@@ -115,7 +115,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
Path srcPathCheck = configSet.resolve("cloud-subdirs").resolve("conf");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"downconfig1", zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"downconfig1", zkAddr);
// Now do we have that config up on ZK?
verifyZkLocalPathsMatch(srcPathCheck, "/configs/downconfig1");
@@ -134,7 +134,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Files.createFile(emptyFile);
// Now copy it up and back and insure it's still a file in the new place
- AbstractDistribZkTestBase.copyConfigUp(tmp.getParent(), "myconfset",
"downconfig2", zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(tmp.getParent(), "myconfset",
"downconfig2", zkAddr);
Path tmp2 = createTempDir("downConfigNewPlace2");
args =
new String[] {
@@ -157,7 +157,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
Path srcPathCheck = configSet.resolve("cloud-subdirs").resolve("conf");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs", "cp1",
zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"cp1", zkAddr);
// Now copy it somewhere else on ZK.
String[] args =
@@ -398,7 +398,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
Path srcPathCheck = configSet.resolve("cloud-subdirs").resolve("conf");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs", "mv1",
zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"mv1", zkAddr);
// Now move it somewhere else.
String[] args = new String[] {"mv", "--zk-host", zkAddr,
"zk:/configs/mv1", "zk:/mv2"};
@@ -467,7 +467,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"lister", zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"lister", zkAddr);
// Should only find a single level.
String[] args = new String[] {"ls", "--zk-host", zkAddr, "/configs"};
@@ -540,8 +540,8 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
Path configSet = TEST_PATH().resolve("configsets");
Path srcPathCheck = configSet.resolve("cloud-subdirs").resolve("conf");
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs", "rm1",
zkAddr);
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs", "rm2",
zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"rm1", zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"rm2", zkAddr);
// Should fail if recursive not set.
String[] args = new String[] {"rm", "--zk-host", zkAddr, "/configs/rm1"};
@@ -580,7 +580,7 @@ public class SolrCLIZkToolsTest extends SolrCloudTestCase {
// This should silently just refuse to do anything to the / or /zookeeper
args = new String[] {"rm", "--recursive", "--zk-host", zkAddr, "zk:/"};
- AbstractDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs", "rm3",
zkAddr);
+ AbstractFullDistribZkTestBase.copyConfigUp(configSet, "cloud-subdirs",
"rm3", zkAddr);
res = CLITestHelper.runTool(args, ZkRmTool.class);
assertNotEquals("Should fail when trying to remove /.", 0, res);
}
diff --git a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java
b/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java
index 2dad25d6719..26cc304ef84 100644
--- a/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/ZkSubcommandsTest.java
@@ -28,7 +28,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
import org.apache.lucene.tests.mockfile.FilterPath;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.AbstractZkTestCase;
import org.apache.solr.cloud.ZkConfigSetService;
import org.apache.solr.cloud.ZkTestServer;
@@ -605,7 +605,7 @@ public class ZkSubcommandsTest extends SolrTestCaseJ4 {
new SolrZkClient.Builder()
.withUrl(zkServer.getZkAddress())
.withTimeout(
- AbstractDistribZkTestBase.DEFAULT_CONNECTION_TIMEOUT,
TimeUnit.MILLISECONDS)
+ AbstractFullDistribZkTestBase.DEFAULT_CONNECTION_TIMEOUT,
TimeUnit.MILLISECONDS)
.build()) {
zkClient.getData("/", null, null, true);
} catch (KeeperException.NoAuthException e) {
diff --git
a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
index 103efc7856c..ca017ca376b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
@@ -67,9 +67,11 @@ public class ChaosMonkeyShardSplitTest extends
ShardSplitTest {
ClusterState clusterState = cloudClient.getClusterState();
final DocRouter router =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
+
clusterState.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
Slice shard1 =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getSlice(SHARD1);
+ clusterState
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
+ .getSlice(SHARD1);
DocRouter.Range shard1Range =
shard1.getRange() != null ? shard1.getRange() : router.fullRange();
final List<DocRouter.Range> ranges = router.partitionRange(2, shard1Range);
@@ -142,7 +144,7 @@ public class ChaosMonkeyShardSplitTest extends
ShardSplitTest {
killerThread.start();
killCounter.incrementAndGet();
- splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1, null,
null, false);
+ splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
null, null, false);
log.info("Layout after split: \n");
printLayout();
diff --git
a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionContextKeyTest.java
b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionContextKeyTest.java
index ea48ae83a96..e8519f6382c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionContextKeyTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionContextKeyTest.java
@@ -59,9 +59,9 @@ public class LeaderElectionContextKeyTest extends
SolrCloudTestCase {
.process(cluster.getSolrClient());
}
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
"testCollection1", cluster.getZkStateReader(), false, true, 30);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
"testCollection2", cluster.getZkStateReader(), false, true, 30);
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index b1aaf9e457b..757da989ad9 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.solr.cloud;
-import static
org.apache.solr.cloud.AbstractDistribZkTestBase.verifyReplicaStatus;
+import static
org.apache.solr.cloud.AbstractFullDistribZkTestBase.verifyReplicaStatus;
import static org.apache.zookeeper.WatchedEvent.NO_ZXID;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
diff --git
a/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
b/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
index 1f07d6fcf45..234640f3256 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ParallelCommitExecutionTest.java
@@ -100,7 +100,7 @@ public class ParallelCommitExecutionTest extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
diff --git
a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
index c0d79824b8b..1bd20b5db22 100644
---
a/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
+++
b/solr/core/src/test/org/apache/solr/cloud/TestCloudPhrasesIdentificationComponent.java
@@ -203,7 +203,7 @@ public class TestCloudPhrasesIdentificationComponent
extends SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
}
diff --git
a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
index 483c9b9ecf5..81969dae345 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java
@@ -1130,7 +1130,7 @@ public class TestCloudPseudoReturnFields extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java
b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java
index 3297529cfdf..84f8dbf3086 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery2.java
@@ -41,7 +41,7 @@ public class TestCloudRecovery2 extends SolrCloudTestCase {
CollectionAdminRequest.createCollection(COLLECTION, "config", 1, 2)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, 30);
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
index 3cf825f02bd..15cfa0d2c0a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
@@ -625,7 +625,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase
{
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
diff --git
a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
index 72593d91e2f..8f692d3006f 100644
---
a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
+++
b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
@@ -525,7 +525,7 @@ public class TestStressCloudBlindAtomicUpdates extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
ZkStateReader.from(client).forceUpdateCollection(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
diff --git
a/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java
b/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java
index 93d95752670..7661e6ce71e 100644
---
a/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/api/collections/LocalFSCloudIncrementalBackupTest.java
@@ -25,7 +25,7 @@ import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.core.backup.repository.BackupRepository;
import org.junit.BeforeClass;
@@ -140,7 +140,7 @@ public class LocalFSCloudIncrementalBackupTest extends
AbstractIncrementalBackup
.setRepositoryName(BACKUP_REPO_NAME)
.processAndWait(solrClient, 500);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(solrClient), false, false,
3);
assertEquals(
numDocs,
diff --git
a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
index 9a827e2a8b7..f231974cc90 100644
---
a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
+++
b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
@@ -49,7 +49,7 @@ import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.BasicDistributedZkTest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.cloud.StoppableIndexingThread;
@@ -134,7 +134,9 @@ public class ShardSplitTest extends BasicDistributedZkTest {
waitForThingsToLevelOut(15, TimeUnit.SECONDS);
DocCollection defCol =
-
cloudClient.getClusterState().getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+ cloudClient
+ .getClusterState()
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
Replica replica = defCol.getReplicas().get(0);
String nodeName = replica.getNodeName();
@@ -351,7 +353,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
private void splitAfterFailedSplit() throws KeeperException,
InterruptedException {
try {
CollectionAdminRequest.SplitShard splitShard =
-
CollectionAdminRequest.splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
CollectionAdminRequest.splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
splitShard.setShardName(SHARD1);
splitShard.process(cloudClient);
fail("Shard split was not supposed to succeed after failure injection!");
@@ -361,9 +363,10 @@ public class ShardSplitTest extends BasicDistributedZkTest
{
// assert that sub-shards cores exist and sub-shard is in construction
state
ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
-
zkStateReader.forceUpdateCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
zkStateReader.forceUpdateCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
ClusterState state = zkStateReader.getClusterState();
- DocCollection collection =
state.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+ DocCollection collection =
+ state.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
// should be cleaned up
Slice shard10 = collection.getSlice(SHARD1_0);
@@ -376,7 +379,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
TestInjection.reset(); // let the split succeed
try {
CollectionAdminRequest.SplitShard splitShard =
-
CollectionAdminRequest.splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
CollectionAdminRequest.splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
splitShard.setShardName(SHARD1);
splitShard.process(cloudClient);
// Yay!
@@ -516,7 +519,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
() -> {
ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
zkStateReader.registerCollectionStateWatcher(
- AbstractDistribZkTestBase.DEFAULT_COLLECTION,
+ AbstractFullDistribZkTestBase.DEFAULT_COLLECTION,
(liveNodes, collectionState) -> {
if (stop.get()) {
return true; // abort and remove the watch
@@ -527,7 +530,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
if (killed.compareAndSet(false, true)) {
log.info(
"Monkey thread found 2 replicas for {} {}",
- AbstractDistribZkTestBase.DEFAULT_COLLECTION,
+ AbstractFullDistribZkTestBase.DEFAULT_COLLECTION,
SHARD1);
CloudJettyRunner cjetty = shardToLeaderJetty.get(SHARD1);
try {
@@ -543,7 +546,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
}
log.info(
"Monkey thread found only one replica for {} {}",
- AbstractDistribZkTestBase.DEFAULT_COLLECTION,
+ AbstractFullDistribZkTestBase.DEFAULT_COLLECTION,
SHARD1);
return false;
});
@@ -553,7 +556,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
monkeyThread.start();
try {
CollectionAdminRequest.SplitShard splitShard =
-
CollectionAdminRequest.splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
CollectionAdminRequest.splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
splitShard.setShardName(SHARD1);
String asyncId = splitShard.processAsync(cloudClient);
RequestStatusState splitStatus = null;
@@ -590,23 +593,23 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
}
cjetty.jetty.start();
ZkStateReader.from(cloudClient)
- .forceUpdateCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
.forceUpdateCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
if (log.isInfoEnabled()) {
log.info(
"Current collection state: {}",
-
printClusterStateInfo(AbstractDistribZkTestBase.DEFAULT_COLLECTION));
+
printClusterStateInfo(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION));
}
// true if sub-shard states switch to 'active' eventually
AtomicBoolean areSubShardsActive = new AtomicBoolean(false);
if (splitStatus == RequestStatusState.COMPLETED) {
// all sub-shard replicas were created successfully so all cores must
recover eventually
-
waitForRecoveriesToFinish(AbstractDistribZkTestBase.DEFAULT_COLLECTION, true);
+
waitForRecoveriesToFinish(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION,
true);
// let's wait for the overseer to switch shard states
CountDownLatch latch = new CountDownLatch(1);
ZkStateReader.from(cloudClient)
.registerCollectionStateWatcher(
- AbstractDistribZkTestBase.DEFAULT_COLLECTION,
+ AbstractFullDistribZkTestBase.DEFAULT_COLLECTION,
(liveNodes, collectionState) -> {
Slice parent = collectionState.getSlice(SHARD1);
Slice slice10 = collectionState.getSlice(SHARD1_0);
@@ -657,7 +660,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
if (areSubShardsActive.get()) {
ClusterState clusterState = cloudClient.getClusterState();
DocCollection collection =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
clusterState.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
int numReplicasChecked =
assertConsistentReplicas(collection.getSlice(SHARD1_0));
assertEquals(
"We should have checked consistency for exactly 2 replicas of
shard1_0",
@@ -782,9 +785,11 @@ public class ShardSplitTest extends BasicDistributedZkTest
{
private void incompleteOrOverlappingCustomRangeTest() throws Exception {
ClusterState clusterState = cloudClient.getClusterState();
final DocRouter router =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
+
clusterState.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
Slice shard1 =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getSlice(SHARD1);
+ clusterState
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
+ .getSlice(SHARD1);
DocRouter.Range shard1Range =
shard1.getRange() != null ? shard1.getRange() : router.fullRange();
@@ -794,7 +799,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
// test with only one range
subRanges.add(ranges.get(0));
try {
- splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
+ splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
fail("Shard splitting with just one custom hash range should not
succeed");
} catch (SolrClient.RemoteSolrException e) {
log.info("Expected exception:", e);
@@ -805,7 +810,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
subRanges.add(ranges.get(3)); // order shouldn't matter
subRanges.add(ranges.get(0));
try {
- splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
+ splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
fail("Shard splitting with missing hashes in between given ranges should
not succeed");
} catch (SolrClient.RemoteSolrException e) {
log.info("Expected exception:", e);
@@ -818,7 +823,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
subRanges.add(ranges.get(2));
subRanges.add(new DocRouter.Range(ranges.get(3).min - 15,
ranges.get(3).max));
try {
- splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
+ splitShard(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
fail("Shard splitting with overlapping ranges should not succeed");
} catch (SolrClient.RemoteSolrException e) {
log.info("Expected exception:", e);
@@ -829,9 +834,11 @@ public class ShardSplitTest extends BasicDistributedZkTest
{
private void splitByUniqueKeyTest() throws Exception {
ClusterState clusterState = cloudClient.getClusterState();
final DocRouter router =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
+
clusterState.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
Slice shard1 =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getSlice(SHARD1);
+ clusterState
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
+ .getSlice(SHARD1);
DocRouter.Range shard1Range =
shard1.getRange() != null ? shard1.getRange() : router.fullRange();
List<DocRouter.Range> subRanges = new ArrayList<>();
@@ -849,12 +856,12 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
int numReplicas = shard1.getReplicas().size();
ZkStateReader.from(cloudClient)
- .forceUpdateCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION);
+
.forceUpdateCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION);
clusterState = cloudClient.getClusterState();
if (log.isDebugEnabled()) {
log.debug(
"-- COLLECTION: {}",
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION));
+
clusterState.getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION));
}
del("*:*");
for (int id = 0; id <= 100; id++) {
@@ -908,7 +915,8 @@ public class ShardSplitTest extends BasicDistributedZkTest {
try {
for (int i = 0; i < 3; i++) {
try {
- splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
+ splitShard(
+ AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1,
subRanges, null, false);
log.info("Layout after split: \n");
printLayout();
break;
@@ -1153,11 +1161,11 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
clusterState = zkStateReader.getClusterState();
slice1_0 =
clusterState
- .getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION)
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
.getSlice("shard1_0");
slice1_1 =
clusterState
- .getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION)
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
.getSlice("shard1_1");
if (slice1_0.getState() == Slice.State.ACTIVE && slice1_1.getState() ==
Slice.State.ACTIVE) {
break;
@@ -1189,7 +1197,7 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
SolrQuery query = new SolrQuery("*:*").setRows(1000).setFields("id",
"_version_");
query.set("distrib", false);
- Replica shard1_0 =
getLeaderFromZk(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_0);
+ Replica shard1_0 =
getLeaderFromZk(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_0);
QueryResponse response;
try (SolrClient shard1_0Client =
getHttpSolrClient(shard1_0.getBaseUrl(), shard1_0.getCoreName())) {
@@ -1197,7 +1205,7 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
}
long shard10Count = response.getResults().getNumFound();
- Replica shard1_1 =
getLeaderFromZk(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_1);
+ Replica shard1_1 =
getLeaderFromZk(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION, SHARD1_1);
QueryResponse response2;
try (SolrClient shard1_1Client =
getHttpSolrClient(shard1_1.getBaseUrl(), shard1_1.getCoreName())) {
@@ -1217,7 +1225,9 @@ public class ShardSplitTest extends
BasicDistributedZkTest {
ClusterState clusterState = cloudClient.getClusterState();
Slice slice =
-
clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getSlice(shard);
+ clusterState
+ .getCollection(AbstractFullDistribZkTestBase.DEFAULT_COLLECTION)
+ .getSlice(shard);
long[] numFound = new long[slice.getReplicasMap().size()];
int c = 0;
for (Replica replica : slice.getReplicas()) {
diff --git
a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionsAPIViaSolrCloudCluster.java
b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionsAPIViaSolrCloudCluster.java
index 5b7efcfb940..a836b07401e 100644
---
a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionsAPIViaSolrCloudCluster.java
+++
b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionsAPIViaSolrCloudCluster.java
@@ -37,7 +37,7 @@ import
org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.ClusterState;
@@ -167,7 +167,7 @@ public class TestCollectionsAPIViaSolrCloudCluster extends
SolrCloudTestCase {
assertEquals(nodeCount, cluster.getJettySolrRunners().size());
CollectionAdminRequest.deleteCollection(collectionName).process(client);
- AbstractDistribZkTestBase.waitForCollectionToDisappear(
+ AbstractFullDistribZkTestBase.waitForCollectionToDisappear(
collectionName, ZkStateReader.from(client), true, 330);
// create it again
@@ -206,7 +206,7 @@ public class TestCollectionsAPIViaSolrCloudCluster extends
SolrCloudTestCase {
// delete the collection
CollectionAdminRequest.deleteCollection(collectionName).process(client);
- AbstractDistribZkTestBase.waitForCollectionToDisappear(
+ AbstractFullDistribZkTestBase.waitForCollectionToDisappear(
collectionName, ZkStateReader.from(client), true, 330);
}
diff --git
a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java
b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java
index a6e04654eb6..9b23db09695 100644
---
a/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java
+++
b/solr/core/src/test/org/apache/solr/core/snapshots/TestSolrCloudSnapshots.java
@@ -33,7 +33,7 @@ import
org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest.ListSnapshots;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
@@ -216,7 +216,7 @@ public class TestSolrCloudSnapshots extends
SolrCloudTestCase {
} else {
assertEquals(RequestStatusState.COMPLETED,
restore.processAndWait(solrClient, 30)); // async
}
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(solrClient),
log.isDebugEnabled(), true, 30);
BackupRestoreUtils.verifyDocs(nDocs, solrClient, restoreCollectionName);
}
diff --git
a/solr/core/src/test/org/apache/solr/handler/component/CustomHighlightComponentTest.java
b/solr/core/src/test/org/apache/solr/handler/component/CustomHighlightComponentTest.java
index 3c7c79ca904..299940aff9a 100644
---
a/solr/core/src/test/org/apache/solr/handler/component/CustomHighlightComponentTest.java
+++
b/solr/core/src/test/org/apache/solr/handler/component/CustomHighlightComponentTest.java
@@ -27,7 +27,7 @@ import
org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.ConfigRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.NamedList;
@@ -118,7 +118,7 @@ public class CustomHighlightComponentTest extends
SolrCloudTestCase {
// create an empty collection
CollectionAdminRequest.createCollection(COLLECTION, "conf", numShards,
numReplicas)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, DEFAULT_TIMEOUT);
}
diff --git
a/solr/core/src/test/org/apache/solr/handler/component/SearchHandlerAppendsCloudTest.java
b/solr/core/src/test/org/apache/solr/handler/component/SearchHandlerAppendsCloudTest.java
index 1d9c2ca96e1..cb6b60b2681 100644
---
a/solr/core/src/test/org/apache/solr/handler/component/SearchHandlerAppendsCloudTest.java
+++
b/solr/core/src/test/org/apache/solr/handler/component/SearchHandlerAppendsCloudTest.java
@@ -26,7 +26,7 @@ import
org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.ConfigRequest;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -58,7 +58,7 @@ public class SearchHandlerAppendsCloudTest extends
SolrCloudTestCase {
// create an empty collection
CollectionAdminRequest.createCollection(COLLECTION, "conf", NUM_SHARDS,
NUM_REPLICAS)
.processAndWait(cluster.getSolrClient(), DEFAULT_TIMEOUT);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, ZkStateReader.from(cluster.getSolrClient()), false, true,
DEFAULT_TIMEOUT);
}
diff --git
a/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java
b/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java
index b4b7efe17d5..c36da38c8cd 100644
---
a/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java
+++
b/solr/core/src/test/org/apache/solr/handler/component/UpdateLogCloudTest.java
@@ -25,7 +25,7 @@ import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.MockDirectoryFactory;
@@ -68,7 +68,7 @@ public class UpdateLogCloudTest extends SolrCloudTestCase {
// create an empty collection
CollectionAdminRequest.createCollection(COLLECTION, "conf", NUM_SHARDS,
NUM_REPLICAS)
.processAndWait(cluster.getSolrClient(), DEFAULT_TIMEOUT);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, DEFAULT_TIMEOUT);
}
@@ -102,7 +102,7 @@ public class UpdateLogCloudTest extends SolrCloudTestCase {
}
cluster.getJettySolrRunner(specialIdx).stop();
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, DEFAULT_TIMEOUT);
new UpdateRequest()
@@ -112,7 +112,7 @@ public class UpdateLogCloudTest extends SolrCloudTestCase {
.commit(cluster.getSolrClient(), COLLECTION);
cluster.getJettySolrRunner(specialIdx).start();
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, DEFAULT_TIMEOUT);
int idx = 0;
diff --git
a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
index e4cb7ae836f..565c73dceec 100644
---
a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
+++
b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
@@ -43,7 +43,7 @@ import
org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
@@ -129,9 +129,9 @@ public class TestSubQueryTransformerDistrib extends
SolrCloudTestCase {
CloudSolrClient client = cluster.getSolrClient();
ZkStateReader zkStateReader = ZkStateReader.from(client);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(people, zkStateReader,
true, true, 30);
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(people,
zkStateReader, true, true, 30);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(depts, zkStateReader,
false, true, 30);
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(depts,
zkStateReader, false, true, 30);
}
@SuppressWarnings("serial")
diff --git
a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
index 594726be18e..0644631e7cb 100644
---
a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
+++
b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java
@@ -35,7 +35,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.cloud.TestCloudPivotFacet;
import org.apache.solr.common.SolrException;
@@ -1063,7 +1063,7 @@ public class TestCloudJSONFacetJoinDomain extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
}
diff --git
a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
index 06ada43f108..f1046806863 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java
@@ -38,7 +38,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -908,7 +908,7 @@ public class TestCloudJSONFacetSKG extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
diff --git
a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
index c612b1a9277..2ce2bd10563 100644
---
a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
+++
b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKGEquiv.java
@@ -40,7 +40,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -1316,7 +1316,7 @@ public class TestCloudJSONFacetSKGEquiv extends
SolrCloudTestCase {
public static void waitForRecoveriesToFinish(CloudSolrClient client) throws
Exception {
assertNotNull(client.getDefaultCollection());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
client.getDefaultCollection(), ZkStateReader.from(client), true, true,
330);
}
diff --git
a/solr/core/src/test/org/apache/solr/search/join/TestCloudNestedDocsSort.java
b/solr/core/src/test/org/apache/solr/search/join/TestCloudNestedDocsSort.java
index 2c0cea7e18b..0098aafc35d 100644
---
a/solr/core/src/test/org/apache/solr/search/join/TestCloudNestedDocsSort.java
+++
b/solr/core/src/test/org/apache/solr/search/join/TestCloudNestedDocsSort.java
@@ -29,7 +29,7 @@ import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrInputDocument;
@@ -76,7 +76,7 @@ public class TestCloudNestedDocsSort extends
SolrCloudTestCase {
client =
cluster.basicSolrClientBuilder().withDefaultCollection("collection1").build();
ZkStateReader zkStateReader = ZkStateReader.from(client);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
"collection1", zkStateReader, true, true, 30);
{
int id = 42;
diff --git
a/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
b/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
index 447ce487506..c3db96528dd 100644
--- a/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/HttpSolrCallCloudTest.java
@@ -29,7 +29,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.util.SuppressForbidden;
import org.apache.solr.embedded.JettySolrRunner;
@@ -53,7 +53,7 @@ public class HttpSolrCallCloudTest extends SolrCloudTestCase {
CollectionAdminRequest.createCollection(COLLECTION, "config", NUM_SHARD,
REPLICA_FACTOR)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, 30);
}
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
index 90a47751395..15b5d31e669 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
@@ -52,7 +52,7 @@ import
org.apache.solr.client.solrj.io.stream.metrics.SumMetric;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
@@ -89,7 +89,7 @@ public class GraphExpressionTest extends SolrCloudTestCase {
CollectionAdminRequest.createCollection(COLLECTION, "conf", 2, 1)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COLLECTION, cluster.getZkStateReader(), false, true, TIMEOUT);
}
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
index 1a182667a2e..7f719871a2c 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
@@ -34,7 +34,7 @@ import org.apache.lucene.tests.util.LuceneTestCase;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.Aliases;
@@ -80,7 +80,7 @@ public class JdbcTest extends SolrCloudTestCase {
cluster.waitForActiveCollection(collection, 2, 2);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true, DEFAULT_TIMEOUT);
if (useAlias) {
CollectionAdminRequest.createAlias(COLLECTIONORALIAS, collection)
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
index b8e200da234..2dd63e664ba 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/JDBCStreamTest.java
@@ -40,7 +40,7 @@ import
org.apache.solr.client.solrj.io.stream.metrics.MeanMetric;
import org.apache.solr.client.solrj.io.stream.metrics.MinMetric;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.junit.AfterClass;
import org.junit.Before;
@@ -80,7 +80,7 @@ public class JDBCStreamTest extends SolrCloudTestCase {
}
CollectionAdminRequest.createCollection(collection, "conf", 2, 1)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true, TIMEOUT);
if (useAlias) {
CollectionAdminRequest.createAlias(COLLECTIONORALIAS, collection)
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
index 9b598c42755..2ad9eb9dbce 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
@@ -31,7 +31,7 @@ import org.apache.solr.client.solrj.io.SolrClientCache;
import org.apache.solr.client.solrj.io.Tuple;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
@@ -75,7 +75,7 @@ public class MathExpressionTest extends SolrCloudTestCase {
CollectionAdminRequest.createCollection(collection, "conf", 2, 1)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true, TIMEOUT);
if (useAlias) {
CollectionAdminRequest.createAlias(COLLECTIONORALIAS, collection)
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/SelectWithEvaluatorsTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/SelectWithEvaluatorsTest.java
index 2abfa0fad3d..15785b4101a 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/SelectWithEvaluatorsTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/SelectWithEvaluatorsTest.java
@@ -29,7 +29,7 @@ import
org.apache.solr.client.solrj.io.eval.IfThenElseEvaluator;
import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -70,7 +70,7 @@ public class SelectWithEvaluatorsTest extends
SolrCloudTestCase {
}
CollectionAdminRequest.createCollection(collection, "conf", 2, 1)
.process(cluster.getSolrClient());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true, TIMEOUT);
if (useAlias) {
CollectionAdminRequest.createAlias(COLLECTIONORALIAS, collection)
diff --git
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
index 64d0f9bfc1b..58f6d910ada 100644
---
a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
+++
b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamDecoratorTest.java
@@ -58,7 +58,7 @@ import
org.apache.solr.client.solrj.io.stream.metrics.SumMetric;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.cloud.ClusterState;
@@ -109,7 +109,7 @@ public class StreamDecoratorTest extends SolrCloudTestCase {
cluster.waitForActiveCollection(collection, 2, 2);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true, TIMEOUT);
if (useAlias) {
CollectionAdminRequest.createAlias(COLLECTIONORALIAS, collection)
diff --git
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
index 22d581bd4b7..d09f2ea9ba0 100644
---
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
+++
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
@@ -55,7 +55,7 @@ import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
import org.apache.solr.client.solrj.response.SolrPingResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
@@ -1063,7 +1063,7 @@ public class CloudHttp2SolrClientTest extends
SolrCloudTestCase {
// change
.process(cluster.getSolrClient())
.getStatus());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COL, cluster.getZkStateReader(), true, true, 330);
// ...and delete our original leader.
assertEquals(
@@ -1074,7 +1074,7 @@ public class CloudHttp2SolrClientTest extends
SolrCloudTestCase {
// change
.process(cluster.getSolrClient())
.getStatus());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COL, cluster.getZkStateReader(), true, true, 330);
// stale_client's collection state cache should now only point at a
leader that no longer
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java
deleted file mode 100644
index ef1760592c7..00000000000
---
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.solr.cloud;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import java.lang.invoke.MethodHandles;
-import java.nio.file.Path;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.commons.io.file.PathUtils;
-import org.apache.solr.BaseDistributedSearchTestCase;
-import org.apache.solr.cli.ConfigSetUploadTool;
-import org.apache.solr.cli.DefaultToolRuntime;
-import org.apache.solr.cli.SolrCLI;
-import org.apache.solr.cli.ToolRuntime;
-import org.apache.solr.client.solrj.impl.CloudSolrClient;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.common.cloud.ClusterState;
-import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.Replica;
-import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.core.Diagnostics;
-import org.apache.solr.core.MockDirectoryFactory;
-import org.apache.solr.embedded.JettySolrRunner;
-import org.apache.zookeeper.KeeperException;
-import org.junit.BeforeClass;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class AbstractDistribZkTestBase extends
BaseDistributedSearchTestCase {
-
- private static final String REMOVE_VERSION_FIELD = "remove.version.field";
- private static final String ENABLE_UPDATE_LOG =
"solr.index.updatelog.enabled";
- private static final String ZK_HOST = "zkHost";
- private static final String ZOOKEEPER_FORCE_SYNC = "zookeeper.forceSync";
- protected static final String DEFAULT_COLLECTION = "collection1";
- protected volatile ZkTestServer zkServer;
- private final AtomicInteger homeCount = new AtomicInteger();
-
- private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- @BeforeClass
- public static void beforeThisClass() throws Exception {
- // Only For Manual Testing: this will force an fs based dir factory
- // useFactory(null);
- }
-
- @Override
- public void distribSetUp() throws Exception {
- super.distribSetUp();
-
- Path zkDir = testDir.resolve("zookeeper/server1/data");
- zkServer = new ZkTestServer(zkDir);
- zkServer.run();
-
- System.setProperty(ZK_HOST, zkServer.getZkAddress());
- System.setProperty(ENABLE_UPDATE_LOG, "true");
- System.setProperty(REMOVE_VERSION_FIELD, "true");
- System.setProperty(ZOOKEEPER_FORCE_SYNC, "false");
- System.setProperty(
-
MockDirectoryFactory.SOLR_TESTS_ALLOW_READING_FILES_STILL_OPEN_FOR_WRITE,
"true");
-
- String schema = getCloudSchemaFile();
- if (schema == null) schema = "schema.xml";
- zkServer.buildZooKeeper(getCloudSolrConfig(), schema);
-
- // set some system properties for use by tests
- System.setProperty("solr.test.sys.prop1", "propone");
- System.setProperty("solr.test.sys.prop2", "proptwo");
- }
-
- protected String getCloudSolrConfig() {
- return "solrconfig-tlog.xml";
- }
-
- protected String getCloudSchemaFile() {
- return getSchemaFile();
- }
-
- @Override
- protected void createServers(int numShards) throws Exception {
- // give everyone there own solrhome
- Path controlHome = getSolrHome().getParent().resolve("control" +
homeCount.incrementAndGet());
- PathUtils.copyDirectory(getSolrHome(), controlHome);
- setupJettySolrHome(controlHome);
-
- controlJetty = createJetty(controlHome, null); // let the shardId default
to shard1
- controlJetty.start();
- controlClient = createNewSolrClient(controlJetty.getLocalPort());
-
- assertTrue(
- CollectionAdminRequest.createCollection("control_collection", 1, 1)
- .setCreateNodeSet(controlJetty.getNodeName())
- .process(controlClient)
- .isSuccess());
-
- ZkStateReader zkStateReader =
- jettys.get(0).getCoreContainer().getZkController().getZkStateReader();
-
- waitForRecoveriesToFinish("control_collection", zkStateReader, false,
true, 15);
-
- StringBuilder sb = new StringBuilder();
- for (int i = 1; i <= numShards; i++) {
- if (sb.length() > 0) sb.append(',');
- // give everyone there own solrhome
- Path jettyHome = getSolrHome().getParent().resolve("jetty" +
homeCount.incrementAndGet());
- setupJettySolrHome(jettyHome);
- JettySolrRunner j = createJetty(jettyHome, null, "shard" + (i + 2));
- j.start();
- jettys.add(j);
- clients.add(createNewSolrClient(j.getLocalPort()));
- sb.append(buildUrl(j.getLocalPort()));
- }
-
- shards = sb.toString();
- }
-
- protected void waitForRecoveriesToFinish(
- String collection, ZkStateReader zkStateReader, boolean verbose) throws
Exception {
- waitForRecoveriesToFinish(collection, zkStateReader, verbose, true);
- }
-
- protected void waitForRecoveriesToFinish(
- String collection, ZkStateReader zkStateReader, boolean verbose, boolean
failOnTimeout)
- throws Exception {
- waitForRecoveriesToFinish(collection, zkStateReader, verbose,
failOnTimeout, 330, SECONDS);
- }
-
- public static void waitForRecoveriesToFinish(
- String collection,
- ZkStateReader zkStateReader,
- boolean verbose,
- boolean failOnTimeout,
- long timeoutSeconds)
- throws Exception {
- waitForRecoveriesToFinish(
- collection, zkStateReader, verbose, failOnTimeout, timeoutSeconds,
SECONDS);
- }
-
- public static void waitForRecoveriesToFinish(
- String collection,
- ZkStateReader zkStateReader,
- boolean verbose,
- boolean failOnTimeout,
- long timeout,
- TimeUnit unit)
- throws Exception {
- log.info(
- "Wait for recoveries to finish - collection:{} failOnTimeout:{}
timeout:{}{}",
- collection,
- failOnTimeout,
- timeout,
- unit);
- try {
- zkStateReader.waitForState(
- collection,
- timeout,
- unit,
- (liveNodes, docCollection) -> {
- if (docCollection == null) return false;
- boolean sawLiveRecovering = false;
-
- Map<String, Slice> slices = docCollection.getSlicesMap();
- assertNotNull("Could not find collection:" + collection, slices);
- for (Map.Entry<String, Slice> entry : slices.entrySet()) {
- Slice slice = entry.getValue();
- if (slice.getState()
- == Slice.State
- .CONSTRUCTION) { // similar to replica recovering;
pretend its the same
- // thing
- if (verbose) System.out.println("Found a slice in construction
state; will wait.");
- sawLiveRecovering = true;
- }
- Map<String, Replica> shards = slice.getReplicasMap();
- for (Map.Entry<String, Replica> shard : shards.entrySet()) {
- if (verbose)
- System.out.println(
- "replica:"
- + shard.getValue().getName()
- + " rstate:"
- + shard.getValue().getStr(ZkStateReader.STATE_PROP)
- + " live:"
- +
liveNodes.contains(shard.getValue().getNodeName()));
- final Replica.State state = shard.getValue().getState();
- if ((state == Replica.State.RECOVERING
- || state == Replica.State.DOWN
- || state == Replica.State.RECOVERY_FAILED)
- &&
liveNodes.contains(shard.getValue().getStr(ZkStateReader.NODE_NAME_PROP))) {
- return false;
- }
- }
- }
- if (!sawLiveRecovering) {
- if (verbose) System.out.println("no one is recoverying");
- return true;
- } else {
- return false;
- }
- });
- } catch (TimeoutException | InterruptedException e) {
- Diagnostics.logThreadDumps("Gave up waiting for recovery to finish.
THREAD DUMP:");
- zkStateReader.getZkClient().printLayoutToStream(System.out);
- fail("There are still nodes recovering - waited for " + timeout + unit);
- }
-
- log.info("Recoveries finished - collection:{}", collection);
- }
-
- public static void waitForCollectionToDisappear(
- String collection, ZkStateReader zkStateReader, boolean failOnTimeout,
int timeoutSeconds)
- throws Exception {
- log.info(
- "Wait for collection to disappear - collection: {} failOnTimeout:{}
timeout (sec):{}",
- collection,
- failOnTimeout,
- timeoutSeconds);
-
- zkStateReader.waitForState(
- collection, timeoutSeconds, TimeUnit.SECONDS, (docCollection) ->
docCollection == null);
- log.info("Collection has disappeared - collection:{}", collection);
- }
-
- static void waitForNewLeader(CloudSolrClient cloudClient, String shardName,
Replica oldLeader)
- throws Exception {
- log.info("Will wait for a node to become leader for 15 secs");
- ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
-
- long startNs = System.nanoTime();
- try {
- zkStateReader.waitForState(
- "collection1",
- 15,
- TimeUnit.SECONDS,
- (docCollection) -> {
- if (docCollection == null) return false;
-
- Slice slice = docCollection.getSlice(shardName);
- if (slice != null
- && slice.getLeader() != null
- && !slice.getLeader().equals(oldLeader)
- && slice.getLeader().getState() == Replica.State.ACTIVE) {
- if (log.isInfoEnabled()) {
- log.info(
- "Old leader {}, new leader {}. New leader got elected in
{} ms",
- oldLeader,
- slice.getLeader(),
- TimeUnit.NANOSECONDS.toMillis(System.nanoTime() -
startNs));
- }
- return true;
- }
- return false;
- });
- } catch (TimeoutException e) {
- // If we failed to get a new leader, print some diagnotics before the
test fails
- Diagnostics.logThreadDumps("Could not find new leader in specified
timeout");
- zkStateReader.getZkClient().printLayoutToStream(System.out);
- fail("Could not find new leader even after waiting for 15s");
- }
- }
-
- public static void verifyReplicaStatus(
- ZkStateReader reader,
- String collection,
- String shard,
- String coreNodeName,
- Replica.State expectedState)
- throws InterruptedException, TimeoutException {
- log.info("verifyReplicaStatus ({}) shard={} coreNodeName={}", collection,
shard, coreNodeName);
- reader.waitForState(
- collection,
- 15000,
- TimeUnit.MILLISECONDS,
- (collectionState) ->
- collectionState != null
- && collectionState.getSlice(shard) != null
- &&
collectionState.getSlice(shard).getReplicasMap().get(coreNodeName) != null
- &&
collectionState.getSlice(shard).getReplicasMap().get(coreNodeName).getState()
- == expectedState);
- }
-
- protected static void assertAllActive(String collection, ZkStateReader
zkStateReader)
- throws KeeperException, InterruptedException {
-
- zkStateReader.forceUpdateCollection(collection);
- ClusterState clusterState = zkStateReader.getClusterState();
- final DocCollection docCollection =
clusterState.getCollectionOrNull(collection);
- if (docCollection == null || docCollection.getSlices() == null) {
- throw new IllegalArgumentException("Cannot find collection:" +
collection);
- }
-
- Map<String, Slice> slices = docCollection.getSlicesMap();
- for (Map.Entry<String, Slice> entry : slices.entrySet()) {
- Slice slice = entry.getValue();
- if (slice.getState() != Slice.State.ACTIVE) {
- fail(
- "Not all shards are ACTIVE - found a shard "
- + slice.getName()
- + " that is: "
- + slice.getState());
- }
- Map<String, Replica> shards = slice.getReplicasMap();
- for (Map.Entry<String, Replica> shard : shards.entrySet()) {
- Replica replica = shard.getValue();
- if (replica.getState() != Replica.State.ACTIVE) {
- fail(
- "Not all replicas are ACTIVE - found a replica "
- + replica.getName()
- + " that is: "
- + replica.getState());
- }
- }
- }
- }
-
- @Override
- public void distribTearDown() throws Exception {
- resetExceptionIgnores();
-
- try {
- zkServer.shutdown();
- } catch (Exception e) {
- throw new RuntimeException("Exception shutting down Zk Test Server.", e);
- } finally {
- try {
- super.distribTearDown();
- } finally {
- System.clearProperty(ZK_HOST);
- System.clearProperty("collection");
- System.clearProperty(ENABLE_UPDATE_LOG);
- System.clearProperty(REMOVE_VERSION_FIELD);
- System.clearProperty("solr.directoryFactory");
- System.clearProperty("solr.test.sys.prop1");
- System.clearProperty("solr.test.sys.prop2");
- System.clearProperty(ZOOKEEPER_FORCE_SYNC);
- System.clearProperty(
-
MockDirectoryFactory.SOLR_TESTS_ALLOW_READING_FILES_STILL_OPEN_FOR_WRITE);
- }
- }
- }
-
- protected void printLayout() throws Exception {
- SolrZkClient zkClient =
- new SolrZkClient.Builder()
- .withUrl(zkServer.getZkHost())
- .withTimeout(AbstractZkTestCase.TIMEOUT, TimeUnit.MILLISECONDS)
- .build();
- zkClient.printLayoutToStream(System.out);
- zkClient.close();
- }
-
- protected void restartZk(int pauseMillis) throws Exception {
- log.info("Restarting ZK with a pause of {}ms in between", pauseMillis);
- zkServer.shutdown();
- // disconnect enough to test stalling, if things stall, then
clientSoTimeout will be hit
- Thread.sleep(pauseMillis);
- zkServer = new ZkTestServer(zkServer.getZkDir(), zkServer.getPort());
- zkServer.run(false);
- }
-
- // Copy a configset up from some path on the local machine to ZK.
- // Example usage:
- //
- // copyConfigUp(TEST_PATH().resolve("configsets"), "cloud-minimal",
"configset-name", zk_address);
-
- public static void copyConfigUp(
- Path configSetDir, String srcConfigSet, String dstConfigName, String
zkAddr)
- throws Exception {
-
- Path fullConfDir = configSetDir.resolve(srcConfigSet);
- String[] args =
- new String[] {
- "--conf-name", dstConfigName,
- "--conf-dir", fullConfDir.toAbsolutePath().toString(),
- "-z", zkAddr
- };
-
- ToolRuntime runtime = new DefaultToolRuntime();
- ConfigSetUploadTool tool = new ConfigSetUploadTool(runtime);
-
- int res = tool.runTool(SolrCLI.processCommandLineArgs(tool, args));
- assertEquals("Tool should have returned 0 for success, returned: " + res,
res, 0);
- }
-}
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
index cbac9ba4c69..d468dce102a 100644
---
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
+++
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.cloud;
+import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.solr.common.cloud.ZkStateReader.HTTPS;
import static org.apache.solr.common.cloud.ZkStateReader.URL_SCHEME;
@@ -46,6 +47,11 @@ import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
+import org.apache.solr.BaseDistributedSearchTestCase;
+import org.apache.solr.cli.ConfigSetUploadTool;
+import org.apache.solr.cli.DefaultToolRuntime;
+import org.apache.solr.cli.SolrCLI;
+import org.apache.solr.cli.ToolRuntime;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
@@ -75,6 +81,7 @@ import org.apache.solr.common.cloud.ClusterStateUtil;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
+import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionParams;
@@ -90,6 +97,7 @@ import org.apache.solr.common.util.TimeSource;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.Diagnostics;
+import org.apache.solr.core.MockDirectoryFactory;
import org.apache.solr.core.SolrCore;
import org.apache.solr.embedded.JettyConfig;
import org.apache.solr.embedded.JettySolrRunner;
@@ -114,9 +122,17 @@ import org.slf4j.LoggerFactory;
* TODO: we should still test this works as a custom update chain as well as
what we test now - the
* default update chain
*/
-public abstract class AbstractFullDistribZkTestBase extends
AbstractDistribZkTestBase {
+public abstract class AbstractFullDistribZkTestBase extends
BaseDistributedSearchTestCase {
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private static final String REMOVE_VERSION_FIELD = "remove.version.field";
+ private static final String ENABLE_UPDATE_LOG =
"solr.index.updatelog.enabled";
+ private static final String ZK_HOST = "zkHost";
+ private static final String ZOOKEEPER_FORCE_SYNC = "zookeeper.forceSync";
+ protected static final String DEFAULT_COLLECTION = "collection1";
+ protected volatile ZkTestServer zkServer;
+ private final AtomicInteger homeCount = new AtomicInteger();
+
@BeforeClass
public static void beforeFullSolrCloudTest() {}
@@ -242,6 +258,27 @@ public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTes
@Override
public void distribSetUp() throws Exception {
super.distribSetUp();
+
+ // Setup from AbstractFullDistribZkTestBase
+ Path zkDir = testDir.resolve("zookeeper/server1/data");
+ zkServer = new ZkTestServer(zkDir);
+ zkServer.run();
+
+ System.setProperty(ZK_HOST, zkServer.getZkAddress());
+ System.setProperty(ENABLE_UPDATE_LOG, "true");
+ System.setProperty(REMOVE_VERSION_FIELD, "true");
+ System.setProperty(ZOOKEEPER_FORCE_SYNC, "false");
+ System.setProperty(
+
MockDirectoryFactory.SOLR_TESTS_ALLOW_READING_FILES_STILL_OPEN_FOR_WRITE,
"true");
+
+ String schema = getCloudSchemaFile();
+ if (schema == null) schema = "schema.xml";
+ zkServer.buildZooKeeper(getCloudSolrConfig(), schema);
+
+ // set some system properties for use by tests
+ System.setProperty("solr.test.sys.prop1", "propone");
+ System.setProperty("solr.test.sys.prop2", "proptwo");
+
// ignoreException(".*");
cloudInit = false;
@@ -285,6 +322,14 @@ public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTes
}
}
+ protected String getCloudSolrConfig() {
+ return "solrconfig-tlog.xml";
+ }
+
+ protected String getCloudSchemaFile() {
+ return getSchemaFile();
+ }
+
@BeforeClass
public static void beforeClass() {
System.setProperty("solrcloud.update.delay", "0");
@@ -1152,12 +1197,12 @@ public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTes
protected void waitForRecoveriesToFinish(boolean verbose) throws Exception {
ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
- super.waitForRecoveriesToFinish(DEFAULT_COLLECTION, zkStateReader,
verbose);
+ waitForRecoveriesToFinish(DEFAULT_COLLECTION, zkStateReader, verbose);
}
protected void waitForRecoveriesToFinish(String collection, boolean verbose)
throws Exception {
ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
- super.waitForRecoveriesToFinish(collection, zkStateReader, verbose);
+ waitForRecoveriesToFinish(collection, zkStateReader, verbose);
}
protected void waitForRecoveriesToFinish(boolean verbose, long
timeoutSeconds) throws Exception {
@@ -1165,6 +1210,203 @@ public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTes
waitForRecoveriesToFinish(DEFAULT_COLLECTION, zkStateReader, verbose,
true, timeoutSeconds);
}
+ protected void waitForRecoveriesToFinish(
+ String collection, ZkStateReader zkStateReader, boolean verbose) throws
Exception {
+ waitForRecoveriesToFinish(collection, zkStateReader, verbose, true);
+ }
+
+ protected void waitForRecoveriesToFinish(
+ String collection, ZkStateReader zkStateReader, boolean verbose, boolean
failOnTimeout)
+ throws Exception {
+ waitForRecoveriesToFinish(collection, zkStateReader, verbose,
failOnTimeout, 330, SECONDS);
+ }
+
+ public static void waitForRecoveriesToFinish(
+ String collection,
+ ZkStateReader zkStateReader,
+ boolean verbose,
+ boolean failOnTimeout,
+ long timeoutSeconds)
+ throws Exception {
+ waitForRecoveriesToFinish(
+ collection, zkStateReader, verbose, failOnTimeout, timeoutSeconds,
SECONDS);
+ }
+
+ public static void waitForRecoveriesToFinish(
+ String collection,
+ ZkStateReader zkStateReader,
+ boolean verbose,
+ boolean failOnTimeout,
+ long timeout,
+ TimeUnit unit)
+ throws Exception {
+ log.info(
+ "Wait for recoveries to finish - collection:{} failOnTimeout:{}
timeout:{}{}",
+ collection,
+ failOnTimeout,
+ timeout,
+ unit);
+ try {
+ zkStateReader.waitForState(
+ collection,
+ timeout,
+ unit,
+ (liveNodes, docCollection) -> {
+ if (docCollection == null) return false;
+ boolean sawLiveRecovering = false;
+
+ Map<String, Slice> slices = docCollection.getSlicesMap();
+ assertNotNull("Could not find collection:" + collection, slices);
+ for (Map.Entry<String, Slice> entry : slices.entrySet()) {
+ Slice slice = entry.getValue();
+ if (slice.getState()
+ == Slice.State
+ .CONSTRUCTION) { // similar to replica recovering;
pretend its the same
+ // thing
+ if (verbose) System.out.println("Found a slice in construction
state; will wait.");
+ sawLiveRecovering = true;
+ }
+ Map<String, Replica> shards = slice.getReplicasMap();
+ for (Map.Entry<String, Replica> shard : shards.entrySet()) {
+ if (verbose)
+ System.out.println(
+ "replica:"
+ + shard.getValue().getName()
+ + " rstate:"
+ + shard.getValue().getStr(ZkStateReader.STATE_PROP)
+ + " live:"
+ +
liveNodes.contains(shard.getValue().getNodeName()));
+ final Replica.State state = shard.getValue().getState();
+ if ((state == Replica.State.RECOVERING
+ || state == Replica.State.DOWN
+ || state == Replica.State.RECOVERY_FAILED)
+ &&
liveNodes.contains(shard.getValue().getStr(ZkStateReader.NODE_NAME_PROP))) {
+ return false;
+ }
+ }
+ }
+ if (!sawLiveRecovering) {
+ if (verbose) System.out.println("no one is recoverying");
+ return true;
+ } else {
+ return false;
+ }
+ });
+ } catch (TimeoutException | InterruptedException e) {
+ Diagnostics.logThreadDumps("Gave up waiting for recovery to finish.
THREAD DUMP:");
+ zkStateReader.getZkClient().printLayoutToStream(System.out);
+ fail("There are still nodes recovering - waited for " + timeout + unit);
+ }
+
+ log.info("Recoveries finished - collection:{}", collection);
+ }
+
+ public static void waitForCollectionToDisappear(
+ String collection, ZkStateReader zkStateReader, boolean failOnTimeout,
int timeoutSeconds)
+ throws Exception {
+ log.info(
+ "Wait for collection to disappear - collection: {} failOnTimeout:{}
timeout (sec):{}",
+ collection,
+ failOnTimeout,
+ timeoutSeconds);
+
+ zkStateReader.waitForState(
+ collection, timeoutSeconds, TimeUnit.SECONDS, (docCollection) ->
docCollection == null);
+ log.info("Collection has disappeared - collection:{}", collection);
+ }
+
+ static void waitForNewLeader(CloudSolrClient cloudClient, String shardName,
Replica oldLeader)
+ throws Exception {
+ log.info("Will wait for a node to become leader for 15 secs");
+ ZkStateReader zkStateReader = ZkStateReader.from(cloudClient);
+
+ long startNs = System.nanoTime();
+ try {
+ zkStateReader.waitForState(
+ "collection1",
+ 15,
+ TimeUnit.SECONDS,
+ (docCollection) -> {
+ if (docCollection == null) return false;
+
+ Slice slice = docCollection.getSlice(shardName);
+ if (slice != null
+ && slice.getLeader() != null
+ && !slice.getLeader().equals(oldLeader)
+ && slice.getLeader().getState() == Replica.State.ACTIVE) {
+ if (log.isInfoEnabled()) {
+ log.info(
+ "Old leader {}, new leader {}. New leader got elected in
{} ms",
+ oldLeader,
+ slice.getLeader(),
+ TimeUnit.NANOSECONDS.toMillis(System.nanoTime() -
startNs));
+ }
+ return true;
+ }
+ return false;
+ });
+ } catch (TimeoutException e) {
+ // If we failed to get a new leader, print some diagnotics before the
test fails
+ Diagnostics.logThreadDumps("Could not find new leader in specified
timeout");
+ zkStateReader.getZkClient().printLayoutToStream(System.out);
+ fail("Could not find new leader even after waiting for 15s");
+ }
+ }
+
+ public static void verifyReplicaStatus(
+ ZkStateReader reader,
+ String collection,
+ String shard,
+ String coreNodeName,
+ Replica.State expectedState)
+ throws InterruptedException, TimeoutException {
+ log.info("verifyReplicaStatus ({}) shard={} coreNodeName={}", collection,
shard, coreNodeName);
+ reader.waitForState(
+ collection,
+ 15000,
+ TimeUnit.MILLISECONDS,
+ (collectionState) ->
+ collectionState != null
+ && collectionState.getSlice(shard) != null
+ &&
collectionState.getSlice(shard).getReplicasMap().get(coreNodeName) != null
+ &&
collectionState.getSlice(shard).getReplicasMap().get(coreNodeName).getState()
+ == expectedState);
+ }
+
+ protected static void assertAllActive(String collection, ZkStateReader
zkStateReader)
+ throws KeeperException, InterruptedException {
+
+ zkStateReader.forceUpdateCollection(collection);
+ ClusterState clusterState = zkStateReader.getClusterState();
+ final DocCollection docCollection =
clusterState.getCollectionOrNull(collection);
+ if (docCollection == null || docCollection.getSlices() == null) {
+ throw new IllegalArgumentException("Cannot find collection:" +
collection);
+ }
+
+ Map<String, Slice> slices = docCollection.getSlicesMap();
+ for (Map.Entry<String, Slice> entry : slices.entrySet()) {
+ Slice slice = entry.getValue();
+ if (slice.getState() != Slice.State.ACTIVE) {
+ fail(
+ "Not all shards are ACTIVE - found a shard "
+ + slice.getName()
+ + " that is: "
+ + slice.getState());
+ }
+ Map<String, Replica> shards = slice.getReplicasMap();
+ for (Map.Entry<String, Replica> shard : shards.entrySet()) {
+ Replica replica = shard.getValue();
+ if (replica.getState() != Replica.State.ACTIVE) {
+ fail(
+ "Not all replicas are ACTIVE - found a replica "
+ + replica.getName()
+ + " that is: "
+ + replica.getState());
+ }
+ }
+ }
+ }
+
protected void checkQueries() throws Exception {
handle.put("_version_", SKIPVAL);
@@ -1949,19 +2191,82 @@ public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTes
public void distribTearDown() throws Exception {
try {
if (VERBOSE || printLayoutOnTearDown) {
- super.printLayout();
+ printLayout();
}
closeRestTestHarnesses(); // TODO: close here or later?
} finally {
- super.distribTearDown();
+ resetExceptionIgnores();
- System.clearProperty("zkHost");
- System.clearProperty("numShards");
+ try {
+ zkServer.shutdown();
+ } catch (Exception e) {
+ throw new RuntimeException("Exception shutting down Zk Test Server.",
e);
+ } finally {
+ try {
+ super.distribTearDown();
+ } finally {
+ System.clearProperty(ZK_HOST);
+ System.clearProperty("collection");
+ System.clearProperty(ENABLE_UPDATE_LOG);
+ System.clearProperty(REMOVE_VERSION_FIELD);
+ System.clearProperty("solr.directoryFactory");
+ System.clearProperty("solr.test.sys.prop1");
+ System.clearProperty("solr.test.sys.prop2");
+ System.clearProperty(ZOOKEEPER_FORCE_SYNC);
+ System.clearProperty(
+
MockDirectoryFactory.SOLR_TESTS_ALLOW_READING_FILES_STILL_OPEN_FOR_WRITE);
+ System.clearProperty("zkHost");
+ System.clearProperty("numShards");
+ }
+ }
}
}
+ protected void printLayout() throws Exception {
+ SolrZkClient zkClient =
+ new SolrZkClient.Builder()
+ .withUrl(zkServer.getZkHost())
+ .withTimeout(AbstractZkTestCase.TIMEOUT, TimeUnit.MILLISECONDS)
+ .build();
+ zkClient.printLayoutToStream(System.out);
+ zkClient.close();
+ }
+
+ protected void restartZk(int pauseMillis) throws Exception {
+ log.info("Restarting ZK with a pause of {}ms in between", pauseMillis);
+ zkServer.shutdown();
+ // disconnect enough to test stalling, if things stall, then
clientSoTimeout will be hit
+ Thread.sleep(pauseMillis);
+ zkServer = new ZkTestServer(zkServer.getZkDir(), zkServer.getPort());
+ zkServer.run(false);
+ }
+
+ // Copy a configset up from some path on the local machine to ZK.
+ // Example usage:
+ //
+ // copyConfigUp(TEST_PATH().resolve("configsets"), "cloud-minimal",
"configset-name", zk_address);
+
+ public static void copyConfigUp(
+ Path configSetDir, String srcConfigSet, String dstConfigName, String
zkAddr)
+ throws Exception {
+
+ Path fullConfDir = configSetDir.resolve(srcConfigSet);
+ String[] args =
+ new String[] {
+ "--conf-name", dstConfigName,
+ "--conf-dir", fullConfDir.toAbsolutePath().toString(),
+ "-z", zkAddr
+ };
+
+ ToolRuntime runtime = new DefaultToolRuntime();
+ ConfigSetUploadTool tool = new ConfigSetUploadTool(runtime);
+
+ int res = tool.runTool(SolrCLI.processCommandLineArgs(tool, args));
+ assertEquals("Tool should have returned 0 for success, returned: " + res,
res, 0);
+ }
+
@Override
protected void destroyServers() throws Exception {
ExecutorService customThreadPool =
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/MultiSolrCloudTestCase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/MultiSolrCloudTestCase.java
index fbe1fba5ec8..a621c04fbbb 100644
---
a/solr/test-framework/src/java/org/apache/solr/cloud/MultiSolrCloudTestCase.java
+++
b/solr/test-framework/src/java/org/apache/solr/cloud/MultiSolrCloudTestCase.java
@@ -74,7 +74,7 @@ public abstract class MultiSolrCloudTestCase extends
SolrTestCaseJ4 {
CollectionAdminRequest.createCollection(collection, "conf", numShards,
numReplicas)
.processAndWait(cluster.getSolrClient(),
SolrCloudTestCase.DEFAULT_TIMEOUT);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
collection, cluster.getZkStateReader(), false, true,
SolrCloudTestCase.DEFAULT_TIMEOUT);
} catch (Exception e) {
throw new RuntimeException(e);
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCloudBackupRestoreTestCase.java
b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCloudBackupRestoreTestCase.java
index 87377bb02e5..8d516472ea8 100644
---
a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCloudBackupRestoreTestCase.java
+++
b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractCloudBackupRestoreTestCase.java
@@ -37,7 +37,7 @@ import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.CollectionAdminRequest.ClusterProp;
import org.apache.solr.client.solrj.response.RequestStatusState;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -405,7 +405,7 @@ public abstract class AbstractCloudBackupRestoreTestCase
extends SolrCloudTestCa
assertNotNull(asyncId);
CollectionAdminRequest.waitForAsyncRequest(asyncId, client, 60);
}
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(client),
log.isDebugEnabled(), true, 30);
// Check the number of results are the same
diff --git
a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
index 9cf6c15e0aa..7a59d490beb 100644
---
a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
+++
b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
@@ -54,7 +54,7 @@ import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.cloud.Replica;
@@ -178,7 +178,7 @@ public abstract class AbstractIncrementalBackupTest extends
SolrCloudTestCase {
timeTaken = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t);
log.info("Restored from backup, took {}ms", timeTaken);
t = System.nanoTime();
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(solrClient),
log.isDebugEnabled(), false, 3);
timeTaken = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t);
log.info("Restored collection healthy, took {}ms", timeTaken);
@@ -409,7 +409,7 @@ public abstract class AbstractIncrementalBackupTest extends
SolrCloudTestCase {
.setRepositoryName(BACKUP_REPO_NAME)
.processAndWait(solrClient, 500);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(solrClient),
log.isDebugEnabled(), false, 3);
assertEquals(
numDocs,
@@ -553,7 +553,7 @@ public abstract class AbstractIncrementalBackupTest extends
SolrCloudTestCase {
.setRepositoryName(BACKUP_REPO_NAME)
.process(solrClient);
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
restoreCollectionName, ZkStateReader.from(solrClient),
log.isDebugEnabled(), true, 30);
// check num docs are the same
diff --git
a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/CloudSolrClientTest.java
b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/CloudSolrClientTest.java
index a989ba1ebe6..896b00ae6aa 100644
---
a/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/CloudSolrClientTest.java
+++
b/solr/test-framework/src/test/org/apache/solr/client/solrj/apache/CloudSolrClientTest.java
@@ -54,7 +54,7 @@ import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.RequestStatusState;
import org.apache.solr.client.solrj.response.SolrPingResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
-import org.apache.solr.cloud.AbstractDistribZkTestBase;
+import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
import org.apache.solr.cloud.SolrCloudTestCase;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
@@ -953,7 +953,7 @@ public class CloudSolrClientTest extends SolrCloudTestCase {
// change
.process(cluster.getSolrClient())
.getStatus());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COL, cluster.getZkStateReader(), true, true, 330);
// ...and delete our original leader.
assertEquals(
@@ -964,7 +964,7 @@ public class CloudSolrClientTest extends SolrCloudTestCase {
// change
.process(cluster.getSolrClient())
.getStatus());
- AbstractDistribZkTestBase.waitForRecoveriesToFinish(
+ AbstractFullDistribZkTestBase.waitForRecoveriesToFinish(
COL, cluster.getZkStateReader(), true, true, 330);
// stale_client's collection state cache should now only point at a
leader that no longer