Class AbstractSnapshotIntegTestCase

java.lang.Object
org.junit.Assert
org.apache.lucene.util.LuceneTestCase
org.opensearch.test.OpenSearchTestCase
org.opensearch.test.OpenSearchIntegTestCase
org.opensearch.snapshots.AbstractSnapshotIntegTestCase

public abstract class AbstractSnapshotIntegTestCase
extends OpenSearchIntegTestCase
  • Field Details

  • Constructor Details

  • Method Details

    • nodeSettings

      protected org.opensearch.common.settings.Settings nodeSettings​(int nodeOrdinal)
      Description copied from class: OpenSearchIntegTestCase
      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 OpenSearchIntegTestCase
    • nodePlugins

      protected java.util.Collection<java.lang.Class<? extends org.opensearch.plugins.Plugin>> nodePlugins()
      Description copied from class: OpenSearchIntegTestCase
      Returns a collection of plugins that should be loaded on each node.
      Overrides:
      nodePlugins in class OpenSearchIntegTestCase
    • 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.opensearch.repositories.RepositoryData getRepositoryData​(java.lang.String repository)
    • getRepositoryData

      protected org.opensearch.repositories.RepositoryData getRepositoryData​(org.opensearch.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 void waitForBlock​(java.lang.String node, java.lang.String repository, org.opensearch.common.unit.TimeValue timeout) throws java.lang.InterruptedException
      Throws:
      java.lang.InterruptedException
    • waitForCompletion

      public org.opensearch.snapshots.SnapshotInfo waitForCompletion​(java.lang.String repository, java.lang.String snapshotName, org.opensearch.common.unit.TimeValue timeout) throws java.lang.InterruptedException
      Throws:
      java.lang.InterruptedException
    • blockMasterFromFinalizingSnapshotOnIndexFile

      public static java.lang.String blockMasterFromFinalizingSnapshotOnIndexFile​(java.lang.String repositoryName)
    • blockMasterOnWriteIndexFile

      public static java.lang.String blockMasterOnWriteIndexFile​(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)
    • failReadsAllDataNodes

      public static void failReadsAllDataNodes​(java.lang.String repository)
    • waitForBlockOnAnyDataNode

      public static void waitForBlockOnAnyDataNode​(java.lang.String repository, org.opensearch.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.opensearch.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)
    • randomRepositorySettings

      protected org.opensearch.common.settings.Settings.Builder randomRepositorySettings()
    • indexSettingsNoReplicas

      protected static org.opensearch.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.opensearch.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.opensearch.snapshots.SnapshotInfo createFullSnapshot​(java.lang.String repoName, java.lang.String snapshotName)
    • createSnapshot

      protected org.opensearch.snapshots.SnapshotInfo createSnapshot​(java.lang.String repositoryName, java.lang.String snapshot, java.util.List<java.lang.String> indices)
    • 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() throws java.lang.Exception
      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.util.function.Predicate<org.opensearch.cluster.ClusterState> statePredicate) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • awaitClusterState

      protected void awaitClusterState​(java.lang.String viaNode, java.util.function.Predicate<org.opensearch.cluster.ClusterState> statePredicate) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • startFullSnapshotBlockedOnDataNode

      protected org.opensearch.action.ActionFuture<org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse> startFullSnapshotBlockedOnDataNode​(java.lang.String snapshotName, java.lang.String repoName, java.lang.String dataNode) throws java.lang.InterruptedException
      Throws:
      java.lang.InterruptedException
    • startFullSnapshot

      protected org.opensearch.action.ActionFuture<org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse> startFullSnapshot​(java.lang.String repoName, java.lang.String snapshotName)
    • startFullSnapshot

      protected org.opensearch.action.ActionFuture<org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse> startFullSnapshot​(java.lang.String repoName, java.lang.String snapshotName, boolean partial)
    • awaitNumberOfSnapshotsInProgress

      protected void awaitNumberOfSnapshotsInProgress​(int count) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • assertSuccessful

      protected static org.opensearch.snapshots.SnapshotInfo assertSuccessful​(org.opensearch.action.ActionFuture<org.opensearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse> future) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • createIndexWithContent

      protected void createIndexWithContent​(java.lang.String indexName)
    • createIndexWithContent

      protected void createIndexWithContent​(java.lang.String indexName, org.opensearch.common.settings.Settings indexSettings)
    • startDeleteSnapshot

      protected org.opensearch.action.ActionFuture<org.opensearch.action.support.master.AcknowledgedResponse> startDeleteSnapshot​(java.lang.String repoName, java.lang.String snapshotName)
    • updateClusterState

      protected void updateClusterState​(java.util.function.Function<org.opensearch.cluster.ClusterState,​org.opensearch.cluster.ClusterState> updater) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • getSnapshot

      protected org.opensearch.snapshots.SnapshotInfo getSnapshot​(java.lang.String repository, java.lang.String snapshot)
    • awaitMasterFinishRepoOperations

      protected void awaitMasterFinishRepoOperations() throws java.lang.Exception
      Throws:
      java.lang.Exception