mirror of https://github.com/apache/lucene.git
formatting
This commit is contained in:
parent
5aa9a02421
commit
2835d2e323
|
@ -64,7 +64,7 @@ import static org.apache.solr.common.cloud.ZkConfigManager.CONFIGS_ZKNODE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for SolrCloud tests
|
* Base class for SolrCloud tests
|
||||||
*
|
* <p>
|
||||||
* Derived tests should call {@link #configureCluster(int)} in a {@code BeforeClass}
|
* Derived tests should call {@link #configureCluster(int)} in a {@code BeforeClass}
|
||||||
* static method or {@code Before} setUp method. This configures and starts a {@link MiniSolrCloudCluster}, available
|
* static method or {@code Before} setUp method. This configures and starts a {@link MiniSolrCloudCluster}, available
|
||||||
* via the {@code cluster} variable. Cluster shutdown is handled automatically if using {@code BeforeClass}.
|
* via the {@code cluster} variable. Cluster shutdown is handled automatically if using {@code BeforeClass}.
|
||||||
|
@ -89,9 +89,9 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
private static class Config {
|
private static class Config {
|
||||||
final String name;
|
final String name;
|
||||||
final Path path;
|
final Path path;
|
||||||
final Map<String,byte[]> extraConfig;
|
final Map<String, byte[]> extraConfig;
|
||||||
|
|
||||||
private Config(String name, Path path, Map<String,byte[]> extraConfig) {
|
private Config(String name, Path path, Map<String, byte[]> extraConfig) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.path = path;
|
this.path = path;
|
||||||
this.extraConfig = extraConfig;
|
this.extraConfig = extraConfig;
|
||||||
|
@ -113,8 +113,10 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
private Map<String, Object> clusterProperties = new HashMap<>();
|
private Map<String, Object> clusterProperties = new HashMap<>();
|
||||||
|
|
||||||
private boolean trackJettyMetrics;
|
private boolean trackJettyMetrics;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a builder
|
* Create a builder
|
||||||
|
*
|
||||||
* @param nodeCount the number of nodes in the cluster
|
* @param nodeCount the number of nodes in the cluster
|
||||||
* @param baseDir a base directory for the cluster
|
* @param baseDir a base directory for the cluster
|
||||||
*/
|
*/
|
||||||
|
@ -179,6 +181,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Upload a collection config before tests start
|
* Upload a collection config before tests start
|
||||||
|
*
|
||||||
* @param configName the config name
|
* @param configName the config name
|
||||||
* @param configPath the path to the config files
|
* @param configPath the path to the config files
|
||||||
*/
|
*/
|
||||||
|
@ -194,7 +197,8 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a cluster property
|
* Set a cluster property
|
||||||
* @param propertyName the property name
|
*
|
||||||
|
* @param propertyName the property name
|
||||||
* @param propertyValue the property value
|
* @param propertyValue the property value
|
||||||
*/
|
*/
|
||||||
public Builder withProperty(String propertyName, String propertyValue) {
|
public Builder withProperty(String propertyName, String propertyValue) {
|
||||||
|
@ -206,8 +210,10 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
this.trackJettyMetrics = trackJettyMetrics;
|
this.trackJettyMetrics = trackJettyMetrics;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure and run the {@link MiniSolrCloudCluster}
|
* Configure and run the {@link MiniSolrCloudCluster}
|
||||||
|
*
|
||||||
* @throws Exception if an error occurs on startup
|
* @throws Exception if an error occurs on startup
|
||||||
*/
|
*/
|
||||||
public MiniSolrCloudCluster configure() throws Exception {
|
public MiniSolrCloudCluster configure() throws Exception {
|
||||||
|
@ -216,6 +222,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure, run and return the {@link MiniSolrCloudCluster}
|
* Configure, run and return the {@link MiniSolrCloudCluster}
|
||||||
|
*
|
||||||
* @throws Exception if an error occurs on startup
|
* @throws Exception if an error occurs on startup
|
||||||
*/
|
*/
|
||||||
public MiniSolrCloudCluster build() throws Exception {
|
public MiniSolrCloudCluster build() throws Exception {
|
||||||
|
@ -223,11 +230,11 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
null, securityJson, trackJettyMetrics);
|
null, securityJson, trackJettyMetrics);
|
||||||
CloudSolrClient client = cluster.getSolrClient();
|
CloudSolrClient client = cluster.getSolrClient();
|
||||||
for (Config config : configs) {
|
for (Config config : configs) {
|
||||||
((ZkClientClusterStateProvider)client.getClusterStateProvider()).uploadConfig(config.path, config.name);
|
((ZkClientClusterStateProvider) client.getClusterStateProvider()).uploadConfig(config.path, config.name);
|
||||||
if(config.extraConfig!= null){
|
if (config.extraConfig != null) {
|
||||||
for (Map.Entry<String, byte[]> e : config.extraConfig.entrySet()) {
|
for (Map.Entry<String, byte[]> e : config.extraConfig.entrySet()) {
|
||||||
((ZkClientClusterStateProvider)client.getClusterStateProvider()).getZkStateReader().getZkClient()
|
((ZkClientClusterStateProvider) client.getClusterStateProvider()).getZkStateReader().getZkClient()
|
||||||
.create(CONFIGS_ZKNODE + "/" + config.name+ "/"+ e.getKey(), e.getValue(), CreateMode.PERSISTENT, true);
|
.create(CONFIGS_ZKNODE + "/" + config.name + "/" + e.getKey(), e.getValue(), CreateMode.PERSISTENT, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,12 +251,12 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder withDefaultClusterProperty(String key, String value) {
|
public Builder withDefaultClusterProperty(String key, String value) {
|
||||||
HashMap<String,Object> defaults = (HashMap<String, Object>) this.clusterProperties.get(CollectionAdminParams.DEFAULTS);
|
HashMap<String, Object> defaults = (HashMap<String, Object>) this.clusterProperties.get(CollectionAdminParams.DEFAULTS);
|
||||||
if (defaults == null) {
|
if (defaults == null) {
|
||||||
defaults = new HashMap<>();
|
defaults = new HashMap<>();
|
||||||
this.clusterProperties.put(CollectionAdminParams.DEFAULTS, defaults);
|
this.clusterProperties.put(CollectionAdminParams.DEFAULTS, defaults);
|
||||||
}
|
}
|
||||||
HashMap<String,Object> cluster = (HashMap<String, Object>) defaults.get(CollectionAdminParams.CLUSTER);
|
HashMap<String, Object> cluster = (HashMap<String, Object>) defaults.get(CollectionAdminParams.CLUSTER);
|
||||||
if (cluster == null) {
|
if (cluster == null) {
|
||||||
cluster = new HashMap<>();
|
cluster = new HashMap<>();
|
||||||
defaults.put(CollectionAdminParams.CLUSTER, cluster);
|
defaults.put(CollectionAdminParams.CLUSTER, cluster);
|
||||||
|
@ -259,7 +266,9 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The cluster */
|
/**
|
||||||
|
* The cluster
|
||||||
|
*/
|
||||||
protected static volatile MiniSolrCloudCluster cluster;
|
protected static volatile MiniSolrCloudCluster cluster;
|
||||||
|
|
||||||
protected static SolrZkClient zkClient() {
|
protected static SolrZkClient zkClient() {
|
||||||
|
@ -271,7 +280,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this to configure a cluster of n nodes.
|
* Call this to configure a cluster of n nodes.
|
||||||
*
|
* <p>
|
||||||
* NB you must call {@link Builder#configure()} to start the cluster
|
* NB you must call {@link Builder#configure()} to start the cluster
|
||||||
*
|
*
|
||||||
* @param nodeCount the number of nodes
|
* @param nodeCount the number of nodes
|
||||||
|
@ -308,12 +317,12 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wait for a particular collection state to appear in the cluster client's state reader
|
* Wait for a particular collection state to appear in the cluster client's state reader
|
||||||
*
|
* <p>
|
||||||
* This is a convenience method using the {@link #DEFAULT_TIMEOUT}
|
* This is a convenience method using the {@link #DEFAULT_TIMEOUT}
|
||||||
*
|
*
|
||||||
* @param message a message to report on failure
|
* @param message a message to report on failure
|
||||||
* @param collection the collection to watch
|
* @param collection the collection to watch
|
||||||
* @param predicate a predicate to match against the collection state
|
* @param predicate a predicate to match against the collection state
|
||||||
*/
|
*/
|
||||||
protected static void waitForState(String message, String collection, CollectionStatePredicate predicate, int timeout, TimeUnit timeUnit) {
|
protected static void waitForState(String message, String collection, CollectionStatePredicate predicate, int timeout, TimeUnit timeUnit) {
|
||||||
log.info("waitForState ({}): {}", collection, message);
|
log.info("waitForState ({}): {}", collection, message);
|
||||||
|
@ -340,8 +349,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
return false;
|
return false;
|
||||||
if (collectionState.getSlices().size() != expectedShards)
|
if (collectionState.getSlices().size() != expectedShards)
|
||||||
return false;
|
return false;
|
||||||
if (compareActiveReplicaCountsForShards(expectedReplicas, liveNodes, collectionState)) return true;
|
return compareActiveReplicaCountsForShards(expectedReplicas, liveNodes, collectionState);
|
||||||
return false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,8 +364,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
log.info("active slice count: " + collectionState.getActiveSlices().size() + " expected:" + expectedShards);
|
log.info("active slice count: " + collectionState.getActiveSlices().size() + " expected:" + expectedShards);
|
||||||
if (collectionState.getActiveSlices().size() != expectedShards)
|
if (collectionState.getActiveSlices().size() != expectedShards)
|
||||||
return false;
|
return false;
|
||||||
if (compareActiveReplicaCountsForShards(expectedReplicas, liveNodes, collectionState)) return true;
|
return compareActiveReplicaCountsForShards(expectedReplicas, liveNodes, collectionState);
|
||||||
return false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -398,11 +405,8 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
log.info("active replica count: " + activeReplicas + " expected replica count: " + expectedReplicas);
|
log.info("active replica count: " + activeReplicas + " expected replica count: " + expectedReplicas);
|
||||||
|
|
||||||
if (activeReplicas == expectedReplicas) {
|
return activeReplicas == expectedReplicas;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -445,7 +449,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the {@link CoreStatus} data for a {@link Replica}
|
* Get the {@link CoreStatus} data for a {@link Replica}
|
||||||
*
|
* <p>
|
||||||
* This assumes that the replica is hosted on a live node.
|
* This assumes that the replica is hosted on a live node.
|
||||||
*/
|
*/
|
||||||
protected static CoreStatus getCoreStatus(Replica replica) throws IOException, SolrServerException {
|
protected static CoreStatus getCoreStatus(Replica replica) throws IOException, SolrServerException {
|
||||||
|
@ -476,6 +480,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
/**
|
/**
|
||||||
* Ensure that the given number of solr instances are running. If less instances are found then new instances are
|
* Ensure that the given number of solr instances are running. If less instances are found then new instances are
|
||||||
* started. If extra instances are found then they are stopped.
|
* started. If extra instances are found then they are stopped.
|
||||||
|
*
|
||||||
* @param nodeCount the number of Solr instances that should be running at the end of this method
|
* @param nodeCount the number of Solr instances that should be running at the end of this method
|
||||||
* @throws Exception on error
|
* @throws Exception on error
|
||||||
*/
|
*/
|
||||||
|
@ -484,7 +489,7 @@ public class SolrCloudTestCase extends SolrTestCaseJ4 {
|
||||||
List<JettySolrRunner> jettys = cluster.getJettySolrRunners();
|
List<JettySolrRunner> jettys = cluster.getJettySolrRunners();
|
||||||
List<JettySolrRunner> copyOfJettys = new ArrayList<>(jettys);
|
List<JettySolrRunner> copyOfJettys = new ArrayList<>(jettys);
|
||||||
int numJetties = copyOfJettys.size();
|
int numJetties = copyOfJettys.size();
|
||||||
for (int i = nodeCount; i < numJetties; i++) {
|
for (int i = nodeCount; i < numJetties; i++) {
|
||||||
cluster.stopJettySolrRunner(copyOfJettys.get(i));
|
cluster.stopJettySolrRunner(copyOfJettys.get(i));
|
||||||
}
|
}
|
||||||
for (int i = copyOfJettys.size(); i < nodeCount; i++) {
|
for (int i = copyOfJettys.size(); i < nodeCount; i++) {
|
||||||
|
|
Loading…
Reference in New Issue