Package org.elasticsearch.snapshots
Class AbstractSnapshotIntegTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.elasticsearch.test.ESTestCase
org.elasticsearch.test.ESIntegTestCase
org.elasticsearch.snapshots.AbstractSnapshotIntegTestCase
public abstract class AbstractSnapshotIntegTestCase extends ESIntegTestCase
-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.test.ESIntegTestCase
ESIntegTestCase.AssertActionNamePlugin, ESIntegTestCase.ClusterScope, ESIntegTestCase.NumShards, ESIntegTestCase.Scope, ESIntegTestCase.SuiteScopeTestCase, ESIntegTestCase.TestSeedPlugin, ESIntegTestCase.ThirdParty
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 inherited from class org.elasticsearch.test.ESIntegTestCase
DEFAULT_MAX_NUM_SHARDS, DEFAULT_MIN_NUM_SHARDS, INDEX_TEST_SEED_SETTING, SUITE_CLUSTER_NODE_PREFIX, SYSPROP_THIRDPARTY, TEST_CLUSTER_NODE_PREFIX, TESTS_CLIENT_RATIO, TESTS_CLUSTER, TESTS_ENABLE_MOCK_MODULES
Fields inherited from class org.elasticsearch.test.ESTestCase
checkIndexFailures, DEFAULT_TEST_WORKER_ID, failureAndSuccessEvents, FIPS_SYSPROP, JAVA_TIMEZONE_IDS, JAVA_ZONE_IDS, JODA_TIMEZONE_IDS, logger, TEST_WORKER_SYS_PROPERTY, TEST_WORKER_VM_ID
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 AbstractSnapshotIntegTestCase()
-
Method Summary
Modifier and Type Method Description protected void
addBwCFailedSnapshot(java.lang.String repoName, java.lang.String snapshotName, java.util.Map<java.lang.String,java.lang.Object> metadata)
Adds a snapshot in stateSnapshotState.FAILED
to the given repository.void
assertConsistentHistoryInLuceneIndex()
protected void
assertDocCount(java.lang.String index, long count)
static void
assertFileCount(java.nio.file.Path dir, int expectedCount)
void
assertRepoConsistency()
protected void
awaitClusterState(java.lang.String viaNode, java.util.function.Predicate<org.elasticsearch.cluster.ClusterState> statePredicate)
protected void
awaitNoMoreRunningOperations(java.lang.String viaNode)
static void
blockAllDataNodes(java.lang.String repository)
static void
blockDataNode(java.lang.String repository, java.lang.String nodeName)
static void
blockMasterFromDeletingIndexNFile(java.lang.String repositoryName)
static java.lang.String
blockMasterFromFinalizingSnapshotOnIndexFile(java.lang.String repositoryName)
static java.lang.String
blockMasterFromFinalizingSnapshotOnSnapFile(java.lang.String repositoryName)
static void
blockNodeOnAnyFiles(java.lang.String repository, java.lang.String nodeName)
static java.lang.String
blockNodeWithIndex(java.lang.String repositoryName, java.lang.String indexName)
protected org.elasticsearch.snapshots.SnapshotInfo
createFullSnapshot(java.lang.String repoName, java.lang.String snapshotName)
protected void
createIndexWithRandomDocs(java.lang.String indexName, int docCount)
protected void
createRepository(java.lang.String repoName, java.lang.String type)
protected void
createRepository(java.lang.String repoName, java.lang.String type, java.nio.file.Path location)
protected void
createRepository(java.lang.String repoName, java.lang.String type, org.elasticsearch.common.settings.Settings.Builder settings)
protected void
disableRepoConsistencyCheck(java.lang.String reason)
protected long
getCountForIndex(java.lang.String indexName)
static long
getFailureCount(java.lang.String repository)
protected org.elasticsearch.repositories.RepositoryData
getRepositoryData(java.lang.String repository)
protected org.elasticsearch.repositories.RepositoryData
getRepositoryData(org.elasticsearch.repositories.Repository repository)
protected void
indexRandomDocs(java.lang.String index, int numdocs)
protected static org.elasticsearch.common.settings.Settings.Builder
indexSettingsNoReplicas(int shards)
protected java.lang.String
initWithSnapshotVersion(java.lang.String repoName, java.nio.file.Path repoPath, org.elasticsearch.Version version)
Workaround to simulate BwC situation: taking a snapshot without indices here so that we don't create any new version shard generations (the existence of which would short-circuit checks for the repo containing old version snapshots)protected void
maybeInitWithOldSnapshotVersion(java.lang.String repoName, java.nio.file.Path repoPath)
Randomly write an empty snapshot of an older version to an empty repository to simulate an older repository metadata format.protected java.util.Collection<java.lang.Class<? extends org.elasticsearch.plugins.Plugin>>
nodePlugins()
Returns a collection of plugins that should be loaded on each node.protected org.elasticsearch.common.settings.Settings
nodeSettings(int nodeOrdinal)
This method is used to obtain settings for theN
th node in the cluster.static int
numberOfFiles(java.nio.file.Path dir)
static void
stopNode(java.lang.String node)
static void
unblockAllDataNodes(java.lang.String repository)
void
unblockNode(java.lang.String repository, java.lang.String node)
void
verifyNoLeakedListeners()
static void
waitForBlock(java.lang.String node, java.lang.String repository, org.elasticsearch.common.unit.TimeValue timeout)
static void
waitForBlockOnAnyDataNode(java.lang.String repository, org.elasticsearch.common.unit.TimeValue timeout)
org.elasticsearch.snapshots.SnapshotInfo
waitForCompletion(java.lang.String repository, java.lang.String snapshotName, org.elasticsearch.common.unit.TimeValue timeout)
Methods inherited from class org.elasticsearch.test.ESIntegTestCase
addMockGeoShapeFieldMapper, addMockHttpTransport, addMockInternalEngine, addMockTransportService, admin, afterClass, allowNodes, assertAllShardsOnNodes, assertResultsAndLogOnFailure, assertSortedSegments, beforeClass, beforeIndexDeletion, beforeInternal, buildTestCluster, cleanUpCluster, clearScroll, client, client, clients, cluster, clusterService, createIndex, createIndex, createRestClient, createRestClient, createRestClient, dataNodeClient, disableAllocation, disableIndexBlock, enableAllocation, enableIndexBlock, enableWarningsCheck, ensureClusterSizeConsistency, ensureClusterStateCanBeReadByNodeTool, ensureClusterStateConsistency, ensureFullyConnectedCluster, ensureGreen, ensureGreen, ensureSearchable, ensureStableCluster, ensureStableCluster, ensureStableCluster, ensureStableCluster, ensureYellow, ensureYellowAndNoInitializingShards, excludeTemplates, externalClusterClientSettings, flush, flushAndRefresh, forbidPrivateIndexSettings, forceMerge, getClientWrapper, getMockPlugins, getNumShards, getPerTestTransportClientRatio, getRestClient, ignoreExternalCluster, index, index, index, index, index, indexExists, indexRandom, indexRandom, indexRandom, indexRandom, indexRandom, indexSettings, inFipsJvm, internalCluster, isInternalCluster, isolateMasterDisruption, logClusterState, maximumNumberOfReplicas, maximumNumberOfShards, minimumNumberOfReplicas, minimumNumberOfShards, nodeConfigPath, numberOfReplicas, numberOfShards, prepareCreate, prepareCreate, prepareCreate, prepareCreate, randomRepoPath, randomRepoPath, refresh, resolveIndex, routingKeyForShard, setClusterReadOnly, setDisruptionScheme, setRandomIndexSettings, setupSuiteScopeCluster, setupTestCluster, transportClientPlugins, transportClientSettings, waitForDocs, waitForRelocation, waitForRelocation, waitNoPendingTasksOnAll, xContentRegistry
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, ensureAllSearchContextsReleased, ensureCheckIndexPassed, ensureSupportedLocale, frequently, generateRandomStringArray, generateRandomStringArray, getBasePort, getDataPath, getPortRange, getSuiteFailureMarker, getTestTransportPlugin, getTestTransportType, 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
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, setUp, setupCPUCoreCount, setupSpins, slowFileExists, tearDown, 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
-
Constructor Details
-
AbstractSnapshotIntegTestCase
public AbstractSnapshotIntegTestCase()
-
-
Method Details
-
nodeSettings
protected org.elasticsearch.common.settings.Settings nodeSettings(int nodeOrdinal)Description copied from class:ESIntegTestCase
This method is used to obtain settings for theN
th node in the cluster. Nodes in this cluster are associated with an ordinal number such that nodes can be started with specific configurations. This method might be called multiple times with the same ordinal and is expected to return the same value for each invocation. In other words subclasses must ensure this method is idempotent.- Overrides:
nodeSettings
in classESIntegTestCase
-
nodePlugins
protected java.util.Collection<java.lang.Class<? extends org.elasticsearch.plugins.Plugin>> nodePlugins()Description copied from class:ESIntegTestCase
Returns a collection of plugins that should be loaded on each node.- Overrides:
nodePlugins
in classESIntegTestCase
-
assertConsistentHistoryInLuceneIndex
public void assertConsistentHistoryInLuceneIndex() throws java.lang.Exception- Throws:
java.lang.Exception
-
verifyNoLeakedListeners
public void verifyNoLeakedListeners() throws java.lang.Exception- Throws:
java.lang.Exception
-
assertRepoConsistency
public void assertRepoConsistency() -
disableRepoConsistencyCheck
protected void disableRepoConsistencyCheck(java.lang.String reason) -
getRepositoryData
protected org.elasticsearch.repositories.RepositoryData getRepositoryData(java.lang.String repository) -
getRepositoryData
protected org.elasticsearch.repositories.RepositoryData getRepositoryData(org.elasticsearch.repositories.Repository repository) -
getFailureCount
public static long getFailureCount(java.lang.String repository) -
assertFileCount
public static void assertFileCount(java.nio.file.Path dir, int expectedCount) throws java.io.IOException- Throws:
java.io.IOException
-
numberOfFiles
public static int numberOfFiles(java.nio.file.Path dir) throws java.io.IOException- Throws:
java.io.IOException
-
stopNode
public static void stopNode(java.lang.String node) throws java.io.IOException- Throws:
java.io.IOException
-
waitForBlock
public static void waitForBlock(java.lang.String node, java.lang.String repository, org.elasticsearch.common.unit.TimeValue timeout) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
waitForCompletion
public org.elasticsearch.snapshots.SnapshotInfo waitForCompletion(java.lang.String repository, java.lang.String snapshotName, org.elasticsearch.common.unit.TimeValue timeout) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
blockMasterFromFinalizingSnapshotOnIndexFile
public static java.lang.String blockMasterFromFinalizingSnapshotOnIndexFile(java.lang.String repositoryName) -
blockMasterFromDeletingIndexNFile
public static void blockMasterFromDeletingIndexNFile(java.lang.String repositoryName) -
blockMasterFromFinalizingSnapshotOnSnapFile
public static java.lang.String blockMasterFromFinalizingSnapshotOnSnapFile(java.lang.String repositoryName) -
blockNodeWithIndex
public static java.lang.String blockNodeWithIndex(java.lang.String repositoryName, java.lang.String indexName) -
blockNodeOnAnyFiles
public static void blockNodeOnAnyFiles(java.lang.String repository, java.lang.String nodeName) -
blockDataNode
public static void blockDataNode(java.lang.String repository, java.lang.String nodeName) -
blockAllDataNodes
public static void blockAllDataNodes(java.lang.String repository) -
unblockAllDataNodes
public static void unblockAllDataNodes(java.lang.String repository) -
waitForBlockOnAnyDataNode
public static void waitForBlockOnAnyDataNode(java.lang.String repository, org.elasticsearch.common.unit.TimeValue timeout) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
unblockNode
public void unblockNode(java.lang.String repository, java.lang.String node) -
createRepository
protected void createRepository(java.lang.String repoName, java.lang.String type, org.elasticsearch.common.settings.Settings.Builder settings) -
createRepository
protected void createRepository(java.lang.String repoName, java.lang.String type, java.nio.file.Path location) -
createRepository
protected void createRepository(java.lang.String repoName, java.lang.String type) -
indexSettingsNoReplicas
protected static org.elasticsearch.common.settings.Settings.Builder indexSettingsNoReplicas(int shards) -
maybeInitWithOldSnapshotVersion
protected void maybeInitWithOldSnapshotVersion(java.lang.String repoName, java.nio.file.Path repoPath) throws java.io.IOExceptionRandomly write an empty snapshot of an older version to an empty repository to simulate an older repository metadata format.- Throws:
java.io.IOException
-
initWithSnapshotVersion
protected java.lang.String initWithSnapshotVersion(java.lang.String repoName, java.nio.file.Path repoPath, org.elasticsearch.Version version) throws java.io.IOExceptionWorkaround to simulate BwC situation: taking a snapshot without indices here so that we don't create any new version shard generations (the existence of which would short-circuit checks for the repo containing old version snapshots)- Throws:
java.io.IOException
-
createFullSnapshot
protected org.elasticsearch.snapshots.SnapshotInfo createFullSnapshot(java.lang.String repoName, java.lang.String snapshotName) -
createIndexWithRandomDocs
protected void createIndexWithRandomDocs(java.lang.String indexName, int docCount) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
indexRandomDocs
protected void indexRandomDocs(java.lang.String index, int numdocs) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
getCountForIndex
protected long getCountForIndex(java.lang.String indexName) -
assertDocCount
protected void assertDocCount(java.lang.String index, long count) -
addBwCFailedSnapshot
protected void addBwCFailedSnapshot(java.lang.String repoName, java.lang.String snapshotName, java.util.Map<java.lang.String,java.lang.Object> metadata) throws java.lang.ExceptionAdds a snapshot in stateSnapshotState.FAILED
to the given repository.- Parameters:
repoName
- repository to add snapshot tosnapshotName
- name for the new failed snapshotmetadata
- snapshot metadata to write (as returned bySnapshotInfo.userMetadata()
)- Throws:
java.lang.Exception
-
awaitNoMoreRunningOperations
protected void awaitNoMoreRunningOperations(java.lang.String viaNode) throws java.lang.Exception- Throws:
java.lang.Exception
-
awaitClusterState
protected void awaitClusterState(java.lang.String viaNode, java.util.function.Predicate<org.elasticsearch.cluster.ClusterState> statePredicate) throws java.lang.Exception- Throws:
java.lang.Exception
-