org.apache.solr.cloud
Class AbstractFullDistribZkTestBase

java.lang.Object
  extended by org.junit.Assert
      extended by org.apache.lucene.util.LuceneTestCase
          extended by org.apache.solr.SolrTestCaseJ4
              extended by org.apache.solr.BaseDistributedSearchTestCase
                  extended by org.apache.solr.cloud.AbstractDistribZkTestBase
                      extended by org.apache.solr.cloud.AbstractFullDistribZkTestBase

@LuceneTestCase.Slow
public abstract class AbstractFullDistribZkTestBase
extends AbstractDistribZkTestBase

TODO: we should still test this works as a custom update chain as well as what we test now - the default update chain


Nested Class Summary
static class AbstractFullDistribZkTestBase.CloudJettyRunner
           
 
Nested classes/interfaces inherited from class org.apache.solr.BaseDistributedSearchTestCase
BaseDistributedSearchTestCase.RandDate, BaseDistributedSearchTestCase.RandVal
 
Nested classes/interfaces inherited from class org.apache.solr.SolrTestCaseJ4
SolrTestCaseJ4.CoreDescriptorBuilder, SolrTestCaseJ4.Doc, SolrTestCaseJ4.Fld, SolrTestCaseJ4.FldType, SolrTestCaseJ4.FVal, SolrTestCaseJ4.IRange, SolrTestCaseJ4.IVals, SolrTestCaseJ4.SVal, SolrTestCaseJ4.Vals, SolrTestCaseJ4.XmlDoc
 
Nested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase
org.apache.lucene.util.LuceneTestCase.AwaitsFix, org.apache.lucene.util.LuceneTestCase.BadApple, org.apache.lucene.util.LuceneTestCase.Nightly, org.apache.lucene.util.LuceneTestCase.Slow, org.apache.lucene.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.util.LuceneTestCase.Weekly
 
Field Summary
protected  ChaosMonkey chaosMonkey
           
protected  boolean checkCreatedVsState
           
protected  org.apache.solr.client.solrj.impl.CloudSolrServer cloudClient
           
protected  List<AbstractFullDistribZkTestBase.CloudJettyRunner> cloudJettys
           
protected  org.apache.solr.client.solrj.impl.CloudSolrServer controlClientCloud
           
protected  boolean printLayoutOnTearDown
           
static String SHARD1
           
static String SHARD2
           
protected  Map<String,List<AbstractFullDistribZkTestBase.CloudJettyRunner>> shardToJetty
           
protected  Map<String,AbstractFullDistribZkTestBase.CloudJettyRunner> shardToLeaderJetty
           
protected  int sliceCount
           
 
Fields inherited from class org.apache.solr.cloud.AbstractDistribZkTestBase
DEFAULT_COLLECTION, zkServer
 
Fields inherited from class org.apache.solr.BaseDistributedSearchTestCase
clients, context, controlClient, controlJetty, deadServers, fieldNames, fixShardCount, flags, handle, id, jettys, nThreads, ORDERED, r, randVals, rdate, rdouble, rfloat, rint, rlong, shardCount, shards, shardsArr, SKIP, SKIPVAL, stress, testDir, UNORDERED, useExplicitNodeNames, verifyStress
 
Fields inherited from class org.apache.solr.SolrTestCaseJ4
configString, dataDir, DEFAULT_CONNECTION_TIMEOUT, formatter, h, hdfsDataDir, lrf, ONE_ONE, schemaString, solrClassRules, solrConfig, solrTestRules, testSolrHome, ZERO_ONE, ZERO_TWO
 
Fields inherited from class org.apache.lucene.util.LuceneTestCase
classRules, DEFAULT_LINE_DOCS_FILE, doesntSupportOffsets, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, OLD_FORMAT_IMPERSONATION_IS_ACTIVE, PREFLEX_IMPERSONATION_IS_ACTIVE, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEMP_DIR, TEST_AWAITSFIX, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_VERSION_CURRENT, TEST_WEEKLY, VERBOSE
 
Constructor Summary
AbstractFullDistribZkTestBase()
           
 
Method Summary
static void afterClass()
           
protected  void assertDocCounts(boolean verbose)
           
static void beforeClass()
           
static void beforeFullSolrCloudTest()
           
protected  void checkForCollection(String collectionName, List<Integer> numShardsNumReplicaList, List<String> nodesAllowedToRunShards)
           
protected  void checkQueries()
           
protected  void checkShardConsistency()
           
protected  void checkShardConsistency(boolean checkVsControl, boolean verbose)
           
protected  void checkShardConsistency(String shard)
          Returns a non-null string if replicas within the same shard do not have a consistent number of documents.
protected  String checkShardConsistency(String shard, boolean expectFailure, boolean verbose)
          Returns a non-null string if replicas within the same shard do not have a consistent number of documents.
protected  void commit()
           
protected  org.apache.solr.client.solrj.impl.CloudSolrServer createCloudClient(String defaultCollection)
           
protected  void createCollection(Map<String,List<Integer>> collectionInfos, String collectionName, int numShards, int numReplicas, int maxShardsPerNode, org.apache.solr.client.solrj.SolrServer client, String createNodeSetStr)
           
protected  void createCollection(Map<String,List<Integer>> collectionInfos, String collectionName, Map<String,Object> collectionProps, org.apache.solr.client.solrj.SolrServer client)
           
protected  void createCollection(String collectionName, int numShards, int numReplicas, int maxShardsPerNode)
           
 org.apache.solr.client.solrj.embedded.JettySolrRunner createJetty(File solrHome, String dataDir, String shardList, String solrConfigOverride, String schemaOverride)
           
 org.apache.solr.client.solrj.embedded.JettySolrRunner createJetty(String dataDir, String ulogDir, String shardList, String solrConfigOverride)
           
protected  List<org.apache.solr.client.solrj.embedded.JettySolrRunner> createJettys(int numJettys)
           
protected  List<org.apache.solr.client.solrj.embedded.JettySolrRunner> createJettys(int numJettys, boolean checkCreatedVsState)
           
protected  org.apache.solr.client.solrj.SolrServer createNewSolrServer(int port)
           
protected  org.apache.solr.client.solrj.SolrServer createNewSolrServer(String collection, String baseUrl)
           
protected  void createServers(int numServers)
           
protected  void del(String q)
           
protected  void destroyServers()
           
protected  String getBaseUrl(org.apache.solr.client.solrj.impl.HttpSolrServer client)
           
protected  org.apache.solr.client.solrj.SolrServer getClient(String nodeName)
           
protected  org.apache.solr.client.solrj.impl.CloudSolrServer getCommonCloudSolrServer()
           
protected  String getDataDir(String dataDir)
           
protected  org.apache.solr.common.SolrInputDocument getDoc(Object... fields)
           
protected  int getTotalReplicas(String collection)
           
protected  void index_specific(int serverNumber, Object... fields)
           
protected  void index_specific(org.apache.solr.client.solrj.SolrServer client, Object... fields)
           
protected  void indexAbunchOfDocs()
           
protected  void indexDoc(org.apache.solr.common.SolrInputDocument doc)
          Indexes the document in both the control client, and a randomly selected client
protected  void initCloud()
           
 org.apache.solr.client.solrj.response.QueryResponse queryAndCompareReplicas(org.apache.solr.common.params.SolrParams params, String shard)
          Executes a query against each live and active replica of the specified shard and aserts that the results are identical.
 void queryAndCompareShards(org.apache.solr.common.params.SolrParams params)
          For each Shard, executes a query against each live and active replica of that shard and asserts that the results are identical for each replica of the same shard.
protected  org.apache.solr.client.solrj.response.QueryResponse queryServer(org.apache.solr.common.params.ModifiableSolrParams params)
           
protected  void runCollectionAdminCommand(org.apache.solr.common.params.ModifiableSolrParams params)
           
protected  void setDistributedParams(org.apache.solr.common.params.ModifiableSolrParams params)
           
 void setUp()
           
 void showCounts()
           
protected  org.apache.solr.client.solrj.SolrServer startCloudJetty(String collection, String shard)
           
 void tearDown()
           
protected  void updateMappingsFromZk(List<org.apache.solr.client.solrj.embedded.JettySolrRunner> jettys, List<org.apache.solr.client.solrj.SolrServer> clients)
           
protected  void waitForCollection(org.apache.solr.common.cloud.ZkStateReader reader, String collection, int slices)
           
protected  void waitForRecoveriesToFinish(boolean verbose)
           
protected  void waitForRecoveriesToFinish(boolean verbose, int timeoutSeconds)
           
protected  void waitForRecoveriesToFinish(String collection, boolean verbose)
           
 void waitForThingsToLevelOut(int waitForRecTimeSeconds)
           
 
Methods inherited from class org.apache.solr.cloud.AbstractDistribZkTestBase
assertAllActive, beforeThisClass, getCloudSolrConfig, printLayout, waitForRecoveriesToFinish, waitForRecoveriesToFinish, waitForRecoveriesToFinish
 
Methods inherited from class org.apache.solr.BaseDistributedSearchTestCase
add, addFields, addRandFields, clearHostContext, compare, compare, compare, compare, compare, compare, compare1, compareResponses, compareSolrResponses, createJetty, createJetty, createJetty, del, delQ, doTest, eq, flags, getExtraServlets, getFieldNames, getRandFields, getRandValues, getShardsString, getSolrHome, getSolrXml, index, indexDoc, indexr, initHostContext, initialize, query, query, queryAndCompare, queryAndCompare, setupJettySolrHome, testDistribSearch, validateControlData
 
Methods inherited from class org.apache.solr.SolrTestCaseJ4
add, addAndGetVersion, adoc, adoc, assertFailedU, assertFailedU, assertJQ, assertJQ, assertQ, assertQ, assertQEx, assertQEx, assertU, assertU, assertXmlFile, buildCoreDescriptor, clearIndex, commit, copyMinConf, copyMinConf, copyMinFullSetup, copySolrHomeToTemp, createComparator, createComparator, createCore, createCoreContainer, createDefaultCoreContainer, createDoc, createSort, createTempDir, deleteAndGetVersion, deleteByQueryAndGetVersion, deleteCore, delI, delQ, doc, endTrackingSearchers, endTrackingZkClients, getClassName, getFile, getRootCause, getSchemaFile, getSimpleClassName, getSolrConfigFile, hasInitException, hasInitException, ignoreException, indexDocs, initCore, initCore, initCore, initCore, invertField, JQ, json, json, jsonAdd, jsonDelId, jsonDelQ, map, newRandomConfig, optimize, params, postSetUp, preTearDown, recurseDelete, req, req, req, resetExceptionIgnores, resetFactory, sdoc, sdocs, setLoggingLevel, setupLogging, setupNoCoreTest, startTrackingSearchers, startTrackingZkClients, TEST_HOME, toJSON, unIgnoreException, updateJ, useFactory
 
Methods inherited from class org.apache.lucene.util.LuceneTestCase
assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertFieldsEquals, assertFieldStatisticsEquals, assertNormsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertSaneFieldCaches, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, atLeast, atLeast, closeAfterSuite, closeAfterTest, defaultCodecSupportsDocsWithField, defaultCodecSupportsDocValues, defaultCodecSupportsSortedSet, dumpArray, dumpIterator, getDataFile, getOnlySegmentReader, getTestClass, getTestName, isTestThread, localeForName, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockFSDirectory, newSearcher, newSearcher, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, usually, usually
 
Methods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SHARD1

public static final String SHARD1
See Also:
Constant Field Values

SHARD2

public static final String SHARD2
See Also:
Constant Field Values

printLayoutOnTearDown

protected boolean printLayoutOnTearDown

sliceCount

protected int sliceCount

controlClientCloud

protected org.apache.solr.client.solrj.impl.CloudSolrServer controlClientCloud

cloudClient

protected volatile org.apache.solr.client.solrj.impl.CloudSolrServer cloudClient

cloudJettys

protected List<AbstractFullDistribZkTestBase.CloudJettyRunner> cloudJettys

shardToJetty

protected Map<String,List<AbstractFullDistribZkTestBase.CloudJettyRunner>> shardToJetty

chaosMonkey

protected ChaosMonkey chaosMonkey

shardToLeaderJetty

protected Map<String,AbstractFullDistribZkTestBase.CloudJettyRunner> shardToLeaderJetty

checkCreatedVsState

protected boolean checkCreatedVsState
Constructor Detail

AbstractFullDistribZkTestBase

public AbstractFullDistribZkTestBase()
Method Detail

beforeFullSolrCloudTest

public static void beforeFullSolrCloudTest()

setUp

public void setUp()
           throws Exception
Overrides:
setUp in class AbstractDistribZkTestBase
Throws:
Exception

beforeClass

public static void beforeClass()

afterClass

public static void afterClass()

getDataDir

protected String getDataDir(String dataDir)
                     throws IOException
Throws:
IOException

initCloud

protected void initCloud()
                  throws Exception
Throws:
Exception

createCloudClient

protected org.apache.solr.client.solrj.impl.CloudSolrServer createCloudClient(String defaultCollection)
                                                                       throws MalformedURLException
Throws:
MalformedURLException

createServers

protected void createServers(int numServers)
                      throws Exception
Overrides:
createServers in class AbstractDistribZkTestBase
Throws:
Exception

waitForCollection

protected void waitForCollection(org.apache.solr.common.cloud.ZkStateReader reader,
                                 String collection,
                                 int slices)
                          throws Exception
Throws:
Exception

createJettys

protected List<org.apache.solr.client.solrj.embedded.JettySolrRunner> createJettys(int numJettys)
                                                                            throws Exception
Throws:
Exception

createJettys

protected List<org.apache.solr.client.solrj.embedded.JettySolrRunner> createJettys(int numJettys,
                                                                                   boolean checkCreatedVsState)
                                                                            throws Exception
Parameters:
checkCreatedVsState - if true, make sure the number created (numJettys) matches the number in the cluster state - if you add more jetties this may not be the case
Throws:
Exception

startCloudJetty

protected org.apache.solr.client.solrj.SolrServer startCloudJetty(String collection,
                                                                  String shard)
                                                           throws Exception
Throws:
Exception

getTotalReplicas

protected int getTotalReplicas(String collection)

createJetty

public org.apache.solr.client.solrj.embedded.JettySolrRunner createJetty(String dataDir,
                                                                         String ulogDir,
                                                                         String shardList,
                                                                         String solrConfigOverride)
                                                                  throws Exception
Throws:
Exception

createJetty

public org.apache.solr.client.solrj.embedded.JettySolrRunner createJetty(File solrHome,
                                                                         String dataDir,
                                                                         String shardList,
                                                                         String solrConfigOverride,
                                                                         String schemaOverride)
                                                                  throws Exception
Overrides:
createJetty in class BaseDistributedSearchTestCase
Throws:
Exception

updateMappingsFromZk

protected void updateMappingsFromZk(List<org.apache.solr.client.solrj.embedded.JettySolrRunner> jettys,
                                    List<org.apache.solr.client.solrj.SolrServer> clients)
                             throws Exception
Throws:
Exception

setDistributedParams

protected void setDistributedParams(org.apache.solr.common.params.ModifiableSolrParams params)
Overrides:
setDistributedParams in class BaseDistributedSearchTestCase

indexDoc

protected void indexDoc(org.apache.solr.common.SolrInputDocument doc)
                 throws IOException,
                        org.apache.solr.client.solrj.SolrServerException
Description copied from class: BaseDistributedSearchTestCase
Indexes the document in both the control client, and a randomly selected client

Overrides:
indexDoc in class BaseDistributedSearchTestCase
Throws:
IOException
org.apache.solr.client.solrj.SolrServerException

index_specific

protected void index_specific(int serverNumber,
                              Object... fields)
                       throws Exception
Overrides:
index_specific in class BaseDistributedSearchTestCase
Throws:
Exception

index_specific

protected void index_specific(org.apache.solr.client.solrj.SolrServer client,
                              Object... fields)
                       throws Exception
Throws:
Exception

del

protected void del(String q)
            throws Exception
Overrides:
del in class BaseDistributedSearchTestCase
Throws:
Exception

waitForRecoveriesToFinish

protected void waitForRecoveriesToFinish(boolean verbose)
                                  throws Exception
Throws:
Exception

waitForRecoveriesToFinish

protected void waitForRecoveriesToFinish(String collection,
                                         boolean verbose)
                                  throws Exception
Throws:
Exception

waitForRecoveriesToFinish

protected void waitForRecoveriesToFinish(boolean verbose,
                                         int timeoutSeconds)
                                  throws Exception
Throws:
Exception

checkQueries

protected void checkQueries()
                     throws Exception
Throws:
Exception

indexAbunchOfDocs

protected void indexAbunchOfDocs()
                          throws Exception
Throws:
Exception

queryAndCompareReplicas

public org.apache.solr.client.solrj.response.QueryResponse queryAndCompareReplicas(org.apache.solr.common.params.SolrParams params,
                                                                                   String shard)
                                                                            throws Exception
Executes a query against each live and active replica of the specified shard and aserts that the results are identical.

Throws:
Exception
See Also:
BaseDistributedSearchTestCase.queryAndCompare(org.apache.solr.common.params.SolrParams, org.apache.solr.client.solrj.SolrServer...)

queryAndCompareShards

public void queryAndCompareShards(org.apache.solr.common.params.SolrParams params)
                           throws Exception
For each Shard, executes a query against each live and active replica of that shard and asserts that the results are identical for each replica of the same shard. Because results are not compared between replicas of different shards, this method should be safe for comparing the results of any query, even if it contains "distrib=false", because the replicas should all be identical.

Throws:
Exception
See Also:
queryAndCompareReplicas(SolrParams, String)

checkShardConsistency

protected void checkShardConsistency(String shard)
                              throws Exception
Returns a non-null string if replicas within the same shard do not have a consistent number of documents.

Throws:
Exception

checkShardConsistency

protected String checkShardConsistency(String shard,
                                       boolean expectFailure,
                                       boolean verbose)
                                throws Exception
Returns a non-null string if replicas within the same shard do not have a consistent number of documents. If expectFailure==false, the exact differences found will be logged since this would be an unexpected failure. verbose causes extra debugging into to be displayed, even if everything is consistent.

Throws:
Exception

showCounts

public void showCounts()

checkShardConsistency

protected void checkShardConsistency()
                              throws Exception
Throws:
Exception

checkShardConsistency

protected void checkShardConsistency(boolean checkVsControl,
                                     boolean verbose)
                              throws Exception
Throws:
Exception

getClient

protected org.apache.solr.client.solrj.SolrServer getClient(String nodeName)

assertDocCounts

protected void assertDocCounts(boolean verbose)
                        throws Exception
Throws:
Exception

queryServer

protected org.apache.solr.client.solrj.response.QueryResponse queryServer(org.apache.solr.common.params.ModifiableSolrParams params)
                                                                   throws org.apache.solr.client.solrj.SolrServerException
Overrides:
queryServer in class BaseDistributedSearchTestCase
Throws:
org.apache.solr.client.solrj.SolrServerException

waitForThingsToLevelOut

public void waitForThingsToLevelOut(int waitForRecTimeSeconds)
                             throws Exception
Throws:
Exception

tearDown

public void tearDown()
              throws Exception
Overrides:
tearDown in class AbstractDistribZkTestBase
Throws:
Exception

commit

protected void commit()
               throws Exception
Overrides:
commit in class BaseDistributedSearchTestCase
Throws:
Exception

destroyServers

protected void destroyServers()
                       throws Exception
Overrides:
destroyServers in class BaseDistributedSearchTestCase
Throws:
Exception

createCollection

protected void createCollection(String collectionName,
                                int numShards,
                                int numReplicas,
                                int maxShardsPerNode)
                         throws org.apache.solr.client.solrj.SolrServerException,
                                IOException
Throws:
org.apache.solr.client.solrj.SolrServerException
IOException

createCollection

protected void createCollection(Map<String,List<Integer>> collectionInfos,
                                String collectionName,
                                Map<String,Object> collectionProps,
                                org.apache.solr.client.solrj.SolrServer client)
                         throws org.apache.solr.client.solrj.SolrServerException,
                                IOException
Throws:
org.apache.solr.client.solrj.SolrServerException
IOException

runCollectionAdminCommand

protected void runCollectionAdminCommand(org.apache.solr.common.params.ModifiableSolrParams params)

createCollection

protected void createCollection(Map<String,List<Integer>> collectionInfos,
                                String collectionName,
                                int numShards,
                                int numReplicas,
                                int maxShardsPerNode,
                                org.apache.solr.client.solrj.SolrServer client,
                                String createNodeSetStr)
                         throws org.apache.solr.client.solrj.SolrServerException,
                                IOException
Throws:
org.apache.solr.client.solrj.SolrServerException
IOException

createNewSolrServer

protected org.apache.solr.client.solrj.SolrServer createNewSolrServer(int port)
Overrides:
createNewSolrServer in class BaseDistributedSearchTestCase

createNewSolrServer

protected org.apache.solr.client.solrj.SolrServer createNewSolrServer(String collection,
                                                                      String baseUrl)

getBaseUrl

protected String getBaseUrl(org.apache.solr.client.solrj.impl.HttpSolrServer client)

getDoc

protected org.apache.solr.common.SolrInputDocument getDoc(Object... fields)
                                                   throws Exception
Throws:
Exception

checkForCollection

protected void checkForCollection(String collectionName,
                                  List<Integer> numShardsNumReplicaList,
                                  List<String> nodesAllowedToRunShards)
                           throws Exception
Throws:
Exception

getCommonCloudSolrServer

protected org.apache.solr.client.solrj.impl.CloudSolrServer getCommonCloudSolrServer()


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.