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
  • Constructor Details

  • 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 the Nth 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 class ESIntegTestCase
    • 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 class ESIntegTestCase
    • 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.IOException
      Randomly 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.IOException
      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)
      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.Exception
      Adds a snapshot in state SnapshotState.FAILED to the given repository.
      Parameters:
      repoName - repository to add snapshot to
      snapshotName - name for the new failed snapshot
      metadata - snapshot metadata to write (as returned by SnapshotInfo.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