Class IndexShardTestCase

java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.elasticsearch.test.ESTestCase
org.elasticsearch.index.shard.IndexShardTestCase
Direct Known Subclasses:
ESIndexLevelReplicationTestCase

public abstract class IndexShardTestCase
extends ESTestCase
A base class for unit tests that need to create and shutdown IndexShard instances easily, containing utilities for shard creation and recoveries. See {newShard(boolean)} and newStartedShard() for a good starting points
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.elasticsearch.test.ESTestCase

    ESTestCase.GeohashGenerator, ESTestCase.TestAnalysis

    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.Monster, org.apache.lucene.util.LuceneTestCase.Nightly, org.apache.lucene.util.LuceneTestCase.Slow, org.apache.lucene.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.util.LuceneTestCase.SuppressFileSystems, org.apache.lucene.util.LuceneTestCase.SuppressFsync, org.apache.lucene.util.LuceneTestCase.SuppressReproduceLine, org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks, org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks, org.apache.lucene.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.util.LuceneTestCase.Weekly
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected static java.util.concurrent.atomic.AtomicLong currentClusterStateVersion  
    static org.elasticsearch.index.shard.IndexEventListener EMPTY_EVENT_LISTENER  
    protected long primaryTerm  
    protected static org.elasticsearch.indices.recovery.PeerRecoveryTargetService.RecoveryListener recoveryListener  
    protected org.elasticsearch.threadpool.ThreadPool threadPool  

    Fields inherited from class org.apache.lucene.util.LuceneTestCase

    assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE
  • Constructor Summary

    Constructors 
    Constructor Description
    IndexShardTestCase()  
  • Method Summary

    Modifier and Type Method Description
    protected void allowShardFailures()
    by default, tests will fail if any shard created by this class fails.
    static void assertConsistentHistoryBetweenTranslogAndLucene​(org.elasticsearch.index.shard.IndexShard shard)  
    protected void assertDocCount​(org.elasticsearch.index.shard.IndexShard shard, int docDount)  
    protected void assertDocs​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String... ids)  
    protected void closeShard​(org.elasticsearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene)  
    protected void closeShards​(java.lang.Iterable<org.elasticsearch.index.shard.IndexShard> shards)  
    protected void closeShards​(org.elasticsearch.index.shard.IndexShard... shards)  
    protected org.elasticsearch.index.store.Store createStore​(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.index.shard.ShardPath shardPath)  
    protected org.elasticsearch.index.store.Store createStore​(org.elasticsearch.index.shard.ShardId shardId, org.elasticsearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory)  
    static org.elasticsearch.index.engine.Engine.Warmer createTestWarmer​(org.elasticsearch.index.IndexSettings indexSettings)  
    protected org.elasticsearch.index.engine.Engine.DeleteResult deleteDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)  
    protected void failOnShardFailures()  
    protected void flushShard​(org.elasticsearch.index.shard.IndexShard shard)  
    protected void flushShard​(org.elasticsearch.index.shard.IndexShard shard, boolean force)  
    static java.util.List<DocIdSeqNoAndSource> getDocIdAndSeqNos​(org.elasticsearch.index.shard.IndexShard shard)  
    static org.elasticsearch.index.engine.Engine getEngine​(org.elasticsearch.index.shard.IndexShard indexShard)
    Helper method to access (package-protected) engine from tests
    protected org.elasticsearch.cluster.node.DiscoveryNode getFakeDiscoNode​(java.lang.String id)  
    static org.elasticsearch.index.seqno.ReplicationTracker getReplicationTracker​(org.elasticsearch.index.shard.IndexShard indexShard)  
    static java.util.Set<java.lang.String> getShardDocUIDs​(org.elasticsearch.index.shard.IndexShard shard)  
    static org.elasticsearch.index.translog.Translog getTranslog​(org.elasticsearch.index.shard.IndexShard shard)  
    protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id)  
    protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source)  
    protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.elasticsearch.common.xcontent.XContentType xContentType, java.lang.String routing)  
    protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary)
    Creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary, org.elasticsearch.common.settings.Settings settings)
    Creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory)
    Creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    Creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.shard.IndexingOperationListener... listeners)  
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.index.shard.IndexingOperationListener... listeners)  
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.ShardPath shardPath, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.elasticsearch.index.IndexSettings,​org.elasticsearch.index.store.Store,​java.io.IOException> storeProvider, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexEventListener indexEventListener, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> readerWrapper)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> readerWrapper, java.lang.Runnable globalCheckpointSyncer)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    creates a new initializing shard.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard()
    Creates a new empty shard and starts it.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary)
    Creates a new empty shard and starts it.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary, org.elasticsearch.common.settings.Settings settings)
    Creates a new empty shard and starts it.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory)
    Creates a new empty shard with the specified settings and engine factory and starts it.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard​(org.elasticsearch.common.CheckedFunction<java.lang.Boolean,​org.elasticsearch.index.shard.IndexShard,​java.io.IOException> shardFunction, boolean primary)
    creates a new empty shard and starts it.
    protected org.elasticsearch.index.shard.IndexShard newStartedShard​(org.elasticsearch.common.settings.Settings settings)
    Creates a new empty shard and starts it
    protected void promoteReplica​(org.elasticsearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)
    promotes a replica to primary, incrementing it's term and starting it if needed
    static boolean recoverFromStore​(org.elasticsearch.index.shard.IndexShard newShard)  
    protected void recoverReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, boolean startReplica)
    recovers a replica from the given primary
    protected void recoverReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,​org.elasticsearch.cluster.node.DiscoveryNode,​org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, boolean markAsStarted)
    recovers a replica from the given primary
    protected void recoverShardFromSnapshot​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)
    Recover a shard from a snapshot using a given repository
    protected void recoverShardFromStore​(org.elasticsearch.index.shard.IndexShard primary)  
    protected void recoverUnstartedReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,​org.elasticsearch.cluster.node.DiscoveryNode,​org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)
    Recovers a replica from the give primary, allow the user to supply a custom recovery target.
    protected void recoveryEmptyReplica​(org.elasticsearch.index.shard.IndexShard replica, boolean startReplica)  
    protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    Takes an existing shard, closes it and starts a new initialing shard at the same location
    protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    Takes an existing shard, closes it and starts a new initialing shard at the same location
    protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.index.shard.IndexingOperationListener... listeners)
    Takes an existing shard, closes it and starts a new initialing shard at the same location
    void setUp()  
    protected org.elasticsearch.threadpool.ThreadPool setUpThreadPool()  
    protected java.lang.String snapshotShard​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)
    Snapshot a shard using a given repository.
    protected void startReplicaAfterRecovery​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable)  
    void tearDown()  
    protected void tearDownThreadPool()  
    org.elasticsearch.common.settings.Settings threadPoolSettings()  
    protected void updateMappings​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata)  
    static void updateRoutingEntry​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.routing.ShardRouting shardRouting)  

    Methods inherited from class org.elasticsearch.test.ESTestCase

    after, afterIfFailed, afterIfSuccessful, allowedWarnings, assertArrayEquals, assertBusy, assertBusy, assertEquals, assertSettingDeprecationsAndWarnings, assertSettingDeprecationsAndWarnings, assertWarnings, assertWarnings, before, between, buildEnvSettings, buildNewFakeTransportAddress, checkStaticState, clearAdditionalRoles, copyInstance, copyNamedWriteable, copyNamedWriteable, copyWriteable, copyWriteable, createParser, createParser, createParser, createParser, createParser, createParser, createTestAnalysis, createTestAnalysis, createTestAnalysis, enableJodaDeprecationWarningsCheck, enableWarningsCheck, ensureAllSearchContextsReleased, ensureCheckIndexPassed, ensureSupportedLocale, frequently, generateRandomStringArray, generateRandomStringArray, getBasePort, getDataPath, getPortRange, getSuiteFailureMarker, getTestTransportPlugin, getTestTransportType, inFipsJvm, iterations, maybeSet, mockScript, newNodeEnvironment, newNodeEnvironment, randomAlphaOfLength, randomAlphaOfLengthBetween, randomArray, randomArray, randomBoolean, randomByte, randomByteArrayOfLength, randomDateTimeZone, randomDouble, randomDoubleBetween, randomFloat, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomGeohash, randomInt, randomInt, randomIntBetween, randomIp, randomList, randomList, randomLong, randomLongBetween, randomNonNegativeLong, randomPositiveTimeValue, randomRealisticUnicodeOfCodepointLength, randomRealisticUnicodeOfCodepointLengthBetween, randomRealisticUnicodeOfLength, randomRealisticUnicodeOfLengthBetween, randomShort, randomSubsetOf, randomSubsetOf, randomSubsetOf, randomTimeValue, randomTimeValue, randomTimeValue, randomTimeZone, randomUnicodeOfCodepointLength, randomUnicodeOfCodepointLengthBetween, randomUnicodeOfLength, randomUnicodeOfLengthBetween, randomUnique, randomValueOtherThan, randomValueOtherThanMany, randomZone, resetCheckIndexStatus, resetPortCounter, restoreContentType, restoreFileSystem, scaledRandomIntBetween, setContentType, setFileSystem, settings, shuffleMap, shuffleXContent, shuffleXContent, spinForAtLeastNMilliseconds, spinForAtLeastOneMillisecond, terminate, terminate, tmpPaths, toShuffledXContent, waitUntil, waitUntil, writableRegistry, xContentRegistry

    Methods inherited from class org.apache.lucene.util.LuceneTestCase

    addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setupSpins, slowFileExists, usually, usually, wrapReader

    Methods inherited from class org.junit.Assert

    assertArrayEquals, assertArrayEquals, 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, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, 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 Details

    • EMPTY_EVENT_LISTENER

      public static final org.elasticsearch.index.shard.IndexEventListener EMPTY_EVENT_LISTENER
    • recoveryListener

      protected static final org.elasticsearch.indices.recovery.PeerRecoveryTargetService.RecoveryListener recoveryListener
    • threadPool

      protected org.elasticsearch.threadpool.ThreadPool threadPool
    • primaryTerm

      protected long primaryTerm
    • currentClusterStateVersion

      protected static java.util.concurrent.atomic.AtomicLong currentClusterStateVersion
  • Constructor Details

  • Method Details

    • setUp

      public void setUp() throws java.lang.Exception
      Overrides:
      setUp in class org.apache.lucene.util.LuceneTestCase
      Throws:
      java.lang.Exception
    • setUpThreadPool

      protected org.elasticsearch.threadpool.ThreadPool setUpThreadPool()
    • tearDown

      public void tearDown() throws java.lang.Exception
      Overrides:
      tearDown in class org.apache.lucene.util.LuceneTestCase
      Throws:
      java.lang.Exception
    • tearDownThreadPool

      protected void tearDownThreadPool()
    • allowShardFailures

      protected void allowShardFailures()
      by default, tests will fail if any shard created by this class fails. Tests that cause failures by design can call this method to ignore those failures
    • failOnShardFailures

      protected void failOnShardFailures()
    • threadPoolSettings

      public org.elasticsearch.common.settings.Settings threadPoolSettings()
    • createStore

      protected org.elasticsearch.index.store.Store createStore​(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.index.shard.ShardPath shardPath) throws java.io.IOException
      Throws:
      java.io.IOException
    • createStore

      protected org.elasticsearch.index.store.Store createStore​(org.elasticsearch.index.shard.ShardId shardId, org.elasticsearch.index.IndexSettings indexSettings, org.apache.lucene.store.Directory directory) throws java.io.IOException
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary) throws java.io.IOException
      Creates a new initializing shard. The shard will have its own unique data path.
      Parameters:
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary, org.elasticsearch.common.settings.Settings settings) throws java.io.IOException
      Creates a new initializing shard. The shard will have its own unique data path.
      Parameters:
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory) throws java.io.IOException
      Creates a new initializing shard. The shard will have its own unique data path.
      Parameters:
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      settings - the settings to use for this shard
      engineFactory - the engine factory to use for this shard
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting shardRouting, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Creates a new initializing shard. The shard will have its own unique data path.
      Parameters:
      shardRouting - the ShardRouting to use for this shard
      settings - the settings to use for this shard
      engineFactory - the engine factory to use for this shard
      listeners - an optional set of listeners to add to the shard
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      creates a new initializing shard. The shard will have its own unique data path.
      Parameters:
      shardId - the shard id to use
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      listeners - an optional set of listeners to add to the shard
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> readerWrapper) throws java.io.IOException
      creates a new initializing shard. The shard will will be put in its proper path under the supplied node id.
      Parameters:
      shardId - the shard id to use
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.index.shard.ShardId shardId, boolean primary, java.lang.String nodeId, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> readerWrapper, java.lang.Runnable globalCheckpointSyncer) throws java.io.IOException
      creates a new initializing shard. The shard will will be put in its proper path under the supplied node id.
      Parameters:
      shardId - the shard id to use
      primary - indicates whether to a primary shard (ready to recover from an empty store) or a replica (ready to recover from another shard)
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      creates a new initializing shard. The shard will will be put in its proper path under the current node id the shard is assigned to.
      Parameters:
      routing - shard routing to use
      indexMetadata - indexMetadata for the shard, including any mapping
      listeners - an optional set of listeners to add to the shard
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, @Nullable org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      creates a new initializing shard. The shard will will be put in its proper path under the current node id the shard is assigned to.
      Parameters:
      routing - shard routing to use
      indexMetadata - indexMetadata for the shard, including any mapping
      indexReaderWrapper - an optional wrapper to be used during search
      globalCheckpointSyncer - callback for syncing global checkpoints
      listeners - an optional set of listeners to add to the shard
      Throws:
      java.io.IOException
    • newShard

      protected org.elasticsearch.index.shard.IndexShard newShard​(org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.ShardPath shardPath, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, @Nullable org.elasticsearch.common.CheckedFunction<org.elasticsearch.index.IndexSettings,​org.elasticsearch.index.store.Store,​java.io.IOException> storeProvider, @Nullable org.elasticsearch.common.CheckedFunction<org.apache.lucene.index.DirectoryReader,​org.apache.lucene.index.DirectoryReader,​java.io.IOException> indexReaderWrapper, @Nullable org.elasticsearch.index.engine.EngineFactory engineFactory, java.lang.Runnable globalCheckpointSyncer, org.elasticsearch.index.seqno.RetentionLeaseSyncer retentionLeaseSyncer, org.elasticsearch.index.shard.IndexEventListener indexEventListener, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      creates a new initializing shard.
      Parameters:
      routing - shard routing to use
      shardPath - path to use for shard data
      indexMetadata - indexMetadata for the shard, including any mapping
      storeProvider - an optional custom store provider to use. If null a default file based store will be created
      indexReaderWrapper - an optional wrapper to be used during search
      globalCheckpointSyncer - callback for syncing global checkpoints
      indexEventListener - index event listener
      listeners - an optional set of listeners to add to the shard
      Throws:
      java.io.IOException
    • reinitShard

      protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Takes an existing shard, closes it and starts a new initialing shard at the same location
      Parameters:
      listeners - new listerns to use for the newly created shard
      Throws:
      java.io.IOException
    • reinitShard

      protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Takes an existing shard, closes it and starts a new initialing shard at the same location
      Parameters:
      routing - the shard routing to use for the newly created shard.
      listeners - new listerns to use for the newly created shard
      Throws:
      java.io.IOException
    • reinitShard

      protected org.elasticsearch.index.shard.IndexShard reinitShard​(org.elasticsearch.index.shard.IndexShard current, org.elasticsearch.cluster.routing.ShardRouting routing, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata, org.elasticsearch.index.engine.EngineFactory engineFactory, org.elasticsearch.index.shard.IndexingOperationListener... listeners) throws java.io.IOException
      Takes an existing shard, closes it and starts a new initialing shard at the same location
      Parameters:
      routing - the shard routing to use for the newly created shard.
      listeners - new listerns to use for the newly created shard
      indexMetadata - the index metadata to use for the newly created shard
      engineFactory - the engine factory for the new shard
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard() throws java.io.IOException
      Creates a new empty shard and starts it. The shard will randomly be a replica or a primary.
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard​(org.elasticsearch.common.settings.Settings settings) throws java.io.IOException
      Creates a new empty shard and starts it
      Parameters:
      settings - the settings to use for this shard
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary) throws java.io.IOException
      Creates a new empty shard and starts it.
      Parameters:
      primary - controls whether the shard will be a primary or a replica.
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary, org.elasticsearch.common.settings.Settings settings) throws java.io.IOException
      Creates a new empty shard and starts it.
      Parameters:
      primary - controls whether the shard will be a primary or a replica.
      settings - the settings to use for this shard
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard​(boolean primary, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.index.engine.EngineFactory engineFactory) throws java.io.IOException
      Creates a new empty shard with the specified settings and engine factory and starts it.
      Parameters:
      primary - controls whether the shard will be a primary or a replica.
      settings - the settings to use for this shard
      engineFactory - the engine factory to use for this shard
      Throws:
      java.io.IOException
    • newStartedShard

      protected org.elasticsearch.index.shard.IndexShard newStartedShard​(org.elasticsearch.common.CheckedFunction<java.lang.Boolean,​org.elasticsearch.index.shard.IndexShard,​java.io.IOException> shardFunction, boolean primary) throws java.io.IOException
      creates a new empty shard and starts it.
      Parameters:
      shardFunction - shard factory function
      primary - controls whether the shard will be a primary or a replica.
      Throws:
      java.io.IOException
    • closeShards

      protected void closeShards​(org.elasticsearch.index.shard.IndexShard... shards) throws java.io.IOException
      Throws:
      java.io.IOException
    • closeShard

      protected void closeShard​(org.elasticsearch.index.shard.IndexShard shard, boolean assertConsistencyBetweenTranslogAndLucene) throws java.io.IOException
      Throws:
      java.io.IOException
    • closeShards

      protected void closeShards​(java.lang.Iterable<org.elasticsearch.index.shard.IndexShard> shards) throws java.io.IOException
      Throws:
      java.io.IOException
    • recoverShardFromStore

      protected void recoverShardFromStore​(org.elasticsearch.index.shard.IndexShard primary) throws java.io.IOException
      Throws:
      java.io.IOException
    • updateRoutingEntry

      public static void updateRoutingEntry​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.routing.ShardRouting shardRouting) throws java.io.IOException
      Throws:
      java.io.IOException
    • recoveryEmptyReplica

      protected void recoveryEmptyReplica​(org.elasticsearch.index.shard.IndexShard replica, boolean startReplica) throws java.io.IOException
      Throws:
      java.io.IOException
    • getFakeDiscoNode

      protected org.elasticsearch.cluster.node.DiscoveryNode getFakeDiscoNode​(java.lang.String id)
    • recoverReplica

      protected void recoverReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, boolean startReplica) throws java.io.IOException
      recovers a replica from the given primary
      Throws:
      java.io.IOException
    • recoverReplica

      protected void recoverReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,​org.elasticsearch.cluster.node.DiscoveryNode,​org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, boolean markAsStarted) throws java.io.IOException
      recovers a replica from the given primary
      Throws:
      java.io.IOException
    • recoverUnstartedReplica

      protected final void recoverUnstartedReplica​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.function.BiFunction<org.elasticsearch.index.shard.IndexShard,​org.elasticsearch.cluster.node.DiscoveryNode,​org.elasticsearch.indices.recovery.RecoveryTarget> targetSupplier, boolean markAsRecovering, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOException
      Recovers a replica from the give primary, allow the user to supply a custom recovery target. A typical usage of a custom recovery target is to assert things in the various stages of recovery. Note: this method keeps the shard in IndexShardState.POST_RECOVERY and doesn't start it.
      Parameters:
      replica - the recovery target shard
      primary - the recovery source shard
      targetSupplier - supplies an instance of RecoveryTarget
      markAsRecovering - set to false if the replica is marked as recovering
      Throws:
      java.io.IOException
    • startReplicaAfterRecovery

      protected void startReplicaAfterRecovery​(org.elasticsearch.index.shard.IndexShard replica, org.elasticsearch.index.shard.IndexShard primary, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOException
      Throws:
      java.io.IOException
    • promoteReplica

      protected void promoteReplica​(org.elasticsearch.index.shard.IndexShard replica, java.util.Set<java.lang.String> inSyncIds, org.elasticsearch.cluster.routing.IndexShardRoutingTable routingTable) throws java.io.IOException
      promotes a replica to primary, incrementing it's term and starting it if needed
      Throws:
      java.io.IOException
    • getShardDocUIDs

      public static java.util.Set<java.lang.String> getShardDocUIDs​(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException
      Throws:
      java.io.IOException
    • getDocIdAndSeqNos

      public static java.util.List<DocIdSeqNoAndSource> getDocIdAndSeqNos​(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException
      Throws:
      java.io.IOException
    • assertDocCount

      protected void assertDocCount​(org.elasticsearch.index.shard.IndexShard shard, int docDount) throws java.io.IOException
      Throws:
      java.io.IOException
    • assertDocs

      protected void assertDocs​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String... ids) throws java.io.IOException
      Throws:
      java.io.IOException
    • assertConsistentHistoryBetweenTranslogAndLucene

      public static void assertConsistentHistoryBetweenTranslogAndLucene​(org.elasticsearch.index.shard.IndexShard shard) throws java.io.IOException
      Throws:
      java.io.IOException
    • indexDoc

      protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id) throws java.io.IOException
      Throws:
      java.io.IOException
    • indexDoc

      protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source) throws java.io.IOException
      Throws:
      java.io.IOException
    • indexDoc

      protected org.elasticsearch.index.engine.Engine.IndexResult indexDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id, java.lang.String source, org.elasticsearch.common.xcontent.XContentType xContentType, java.lang.String routing) throws java.io.IOException
      Throws:
      java.io.IOException
    • updateMappings

      protected void updateMappings​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.cluster.metadata.IndexMetadata indexMetadata)
    • deleteDoc

      protected org.elasticsearch.index.engine.Engine.DeleteResult deleteDoc​(org.elasticsearch.index.shard.IndexShard shard, java.lang.String type, java.lang.String id) throws java.io.IOException
      Throws:
      java.io.IOException
    • flushShard

      protected void flushShard​(org.elasticsearch.index.shard.IndexShard shard)
    • flushShard

      protected void flushShard​(org.elasticsearch.index.shard.IndexShard shard, boolean force)
    • recoverFromStore

      public static boolean recoverFromStore​(org.elasticsearch.index.shard.IndexShard newShard)
    • recoverShardFromSnapshot

      protected void recoverShardFromSnapshot​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository)
      Recover a shard from a snapshot using a given repository
    • snapshotShard

      protected java.lang.String snapshotShard​(org.elasticsearch.index.shard.IndexShard shard, org.elasticsearch.snapshots.Snapshot snapshot, org.elasticsearch.repositories.Repository repository) throws java.io.IOException
      Snapshot a shard using a given repository.
      Returns:
      new shard generation
      Throws:
      java.io.IOException
    • getEngine

      public static org.elasticsearch.index.engine.Engine getEngine​(org.elasticsearch.index.shard.IndexShard indexShard)
      Helper method to access (package-protected) engine from tests
    • getTranslog

      public static org.elasticsearch.index.translog.Translog getTranslog​(org.elasticsearch.index.shard.IndexShard shard)
    • getReplicationTracker

      public static org.elasticsearch.index.seqno.ReplicationTracker getReplicationTracker​(org.elasticsearch.index.shard.IndexShard indexShard)
    • createTestWarmer

      public static org.elasticsearch.index.engine.Engine.Warmer createTestWarmer​(org.elasticsearch.index.IndexSettings indexSettings)