Class FilterRepository

java.lang.Object
org.elasticsearch.repositories.FilterRepository
All Implemented Interfaces:
Closeable, AutoCloseable, LifecycleComponent, org.elasticsearch.core.Releasable, Repository

public class FilterRepository extends Object implements Repository
  • Constructor Details

    • FilterRepository

      public FilterRepository(Repository in)
  • Method Details

    • getDelegate

      public Repository getDelegate()
    • getMetadata

      public RepositoryMetadata getMetadata()
      Description copied from interface: Repository
      Returns metadata about this repository.
      Specified by:
      getMetadata in interface Repository
    • getSnapshotInfo

      public void getSnapshotInfo(GetSnapshotInfoContext context)
      Description copied from interface: Repository
      Reads snapshot descriptions from the repository.
      Specified by:
      getSnapshotInfo in interface Repository
      Parameters:
      context - get-snapshot-info-context
    • getSnapshotGlobalMetadata

      public Metadata getSnapshotGlobalMetadata(SnapshotId snapshotId)
      Description copied from interface: Repository
      Returns global metadata associated with the snapshot.
      Specified by:
      getSnapshotGlobalMetadata in interface Repository
      Parameters:
      snapshotId - the snapshot id to load the global metadata from
      Returns:
      the global metadata about the snapshot
    • getSnapshotIndexMetaData

      public IndexMetadata getSnapshotIndexMetaData(RepositoryData repositoryData, SnapshotId snapshotId, IndexId index) throws IOException
      Description copied from interface: Repository
      Returns the index metadata associated with the snapshot.
      Specified by:
      getSnapshotIndexMetaData in interface Repository
      Parameters:
      repositoryData - current RepositoryData
      snapshotId - the snapshot id to load the index metadata from
      index - the IndexId to load the metadata from
      Returns:
      the index metadata about the given index for the given snapshot
      Throws:
      IOException
    • getRepositoryData

      public void getRepositoryData(ActionListener<RepositoryData> listener)
      Description copied from interface: Repository
      Returns a RepositoryData to describe the data in the repository, including the snapshots and the indices across all snapshots found in the repository. Throws a RepositoryException if there was an error in reading the data.
      Specified by:
      getRepositoryData in interface Repository
      Parameters:
      listener - listener that may be resolved on different kinds of threads including transport and cluster state applier threads and therefore must fork to a new thread for executing any long running actions
    • initializeSnapshot

      public void initializeSnapshot(SnapshotId snapshotId, List<IndexId> indices, Metadata metadata)
      Description copied from interface: Repository
      Starts snapshotting process
      Specified by:
      initializeSnapshot in interface Repository
      Parameters:
      snapshotId - snapshot id
      indices - list of indices to be snapshotted
      metadata - cluster metadata
    • finalizeSnapshot

      public void finalizeSnapshot(FinalizeSnapshotContext finalizeSnapshotContext)
      Description copied from interface: Repository
      Finalizes snapshotting process

      This method is called on master after all shards are snapshotted.

      Specified by:
      finalizeSnapshot in interface Repository
      Parameters:
      finalizeSnapshotContext - finalization context
    • deleteSnapshots

      public void deleteSnapshots(Collection<SnapshotId> snapshotIds, long repositoryStateId, Version repositoryMetaVersion, ActionListener<RepositoryData> listener)
      Description copied from interface: Repository
      Deletes snapshots
      Specified by:
      deleteSnapshots in interface Repository
      Parameters:
      snapshotIds - snapshot ids
      repositoryStateId - the unique id identifying the state of the repository when the snapshot deletion began
      repositoryMetaVersion - version of the updated repository metadata to write
      listener - completion listener
    • getSnapshotThrottleTimeInNanos

      public long getSnapshotThrottleTimeInNanos()
      Description copied from interface: Repository
      Returns snapshot throttle time in nanoseconds
      Specified by:
      getSnapshotThrottleTimeInNanos in interface Repository
    • getRestoreThrottleTimeInNanos

      public long getRestoreThrottleTimeInNanos()
      Description copied from interface: Repository
      Returns restore throttle time in nanoseconds
      Specified by:
      getRestoreThrottleTimeInNanos in interface Repository
    • startVerification

      public String startVerification()
      Description copied from interface: Repository
      Verifies repository on the master node and returns the verification token.

      If the verification token is not null, it's passed to all data nodes for verification. If it's null - no additional verification is required

      Specified by:
      startVerification in interface Repository
      Returns:
      verification token that should be passed to all Index Shard Repositories for additional verification or null
    • endVerification

      public void endVerification(String verificationToken)
      Description copied from interface: Repository
      Called at the end of repository verification process.

      This method should perform all necessary cleanup of the temporary files created in the repository

      Specified by:
      endVerification in interface Repository
      Parameters:
      verificationToken - verification request generated by Repository.startVerification() command
    • verify

      public void verify(String verificationToken, DiscoveryNode localNode)
      Description copied from interface: Repository
      Verifies repository settings on data node.
      Specified by:
      verify in interface Repository
      Parameters:
      verificationToken - value returned by Repository.startVerification()
      localNode - the local node information, for inclusion in verification errors
    • isReadOnly

      public boolean isReadOnly()
      Description copied from interface: Repository
      Returns true if the repository supports only read operations
      Specified by:
      isReadOnly in interface Repository
      Returns:
      true if the repository is read/only
    • snapshotShard

      public void snapshotShard(SnapshotShardContext context)
      Description copied from interface: Repository
      Creates a snapshot of the shard referenced by the given SnapshotShardContext.

      As snapshot process progresses, implementation of this method should update IndexShardSnapshotStatus object returned by SnapshotShardContext.status() and check its IndexShardSnapshotStatus.isAborted() to see if the snapshot process should be aborted.

      Specified by:
      snapshotShard in interface Repository
      Parameters:
      context - snapshot shard context that must be completed via SnapshotShardContext.onResponse(org.elasticsearch.repositories.ShardSnapshotResult) or ActionListener.Delegating.onFailure(java.lang.Exception)
    • restoreShard

      public void restoreShard(Store store, SnapshotId snapshotId, IndexId indexId, ShardId snapshotShardId, RecoveryState recoveryState, ActionListener<Void> listener)
      Description copied from interface: Repository
      Restores snapshot of the shard.

      The index can be renamed on restore, hence different shardId and snapshotShardId are supplied.

      Specified by:
      restoreShard in interface Repository
      Parameters:
      store - the store to restore the index into
      snapshotId - snapshot id
      indexId - id of the index in the repository from which the restore is occurring
      snapshotShardId - shard id (in the snapshot)
      recoveryState - recovery state
      listener - listener to invoke once done
    • getShardSnapshotStatus

      public IndexShardSnapshotStatus getShardSnapshotStatus(SnapshotId snapshotId, IndexId indexId, ShardId shardId)
      Description copied from interface: Repository
      Retrieve shard snapshot status for the stored snapshot
      Specified by:
      getShardSnapshotStatus in interface Repository
      Parameters:
      snapshotId - snapshot id
      indexId - the snapshotted index id for the shard to get status for
      shardId - shard id
      Returns:
      snapshot status
    • canUpdateInPlace

      public boolean canUpdateInPlace(Settings updatedSettings, Set<String> ignoredSettings)
      Description copied from interface: Repository
      Check if this instances Settings can be changed to the provided updated settings without recreating the repository.
      Specified by:
      canUpdateInPlace in interface Repository
      Parameters:
      updatedSettings - new repository settings
      ignoredSettings - setting names to ignore even if changed
      Returns:
      true if the repository can be updated in place
    • updateState

      public void updateState(ClusterState state)
      Description copied from interface: Repository
      Update the repository with the incoming cluster state. This method is invoked from RepositoriesService.applyClusterState(org.elasticsearch.cluster.ClusterChangedEvent) and thus the same semantics as with ClusterStateApplier.applyClusterState(org.elasticsearch.cluster.ClusterChangedEvent) apply for the ClusterState that is passed here.
      Specified by:
      updateState in interface Repository
      Parameters:
      state - new cluster state
    • executeConsistentStateUpdate

      public void executeConsistentStateUpdate(Function<RepositoryData,ClusterStateUpdateTask> createUpdateTask, String source, Consumer<Exception> onFailure)
      Description copied from interface: Repository
      Execute a cluster state update with a consistent view of the current RepositoryData. The ClusterState passed to the task generated through createUpdateTask is guaranteed to point at the same state for this repository as the did the state at the time the RepositoryData was loaded. This allows for operations on the repository that need a consistent view of both the cluster state and the repository contents at one point in time like for example, checking if a snapshot is in the repository before adding the delete operation for it to the cluster state.
      Specified by:
      executeConsistentStateUpdate in interface Repository
      Parameters:
      createUpdateTask - function to supply cluster state update task
      source - the source of the cluster state update task
      onFailure - error handler invoked on failure to get a consistent view of the current RepositoryData
    • cloneShardSnapshot

      public void cloneShardSnapshot(SnapshotId source, SnapshotId target, RepositoryShardId shardId, ShardGeneration shardGeneration, ActionListener<ShardSnapshotResult> listener)
      Description copied from interface: Repository
      Clones a shard snapshot.
      Specified by:
      cloneShardSnapshot in interface Repository
      Parameters:
      source - source snapshot
      target - target snapshot
      shardId - shard id
      shardGeneration - shard generation in repo
      listener - listener to complete with new shard generation once clone has completed
    • awaitIdle

      public void awaitIdle()
      Description copied from interface: Repository
      Block until all in-flight operations for this repository have completed. Must only be called after this instance has been closed by a call to stop Releasable.close(). Waiting for ongoing operations should be implemented here instead of in LifecycleComponent.stop() or Releasable.close() hooks of this interface as these are expected to be called on the cluster state applier thread (which must not block) if a repository is removed from the cluster. This method is intended to be called on node shutdown instead as a means to ensure no repository operations are leaked.
      Specified by:
      awaitIdle in interface Repository
    • lifecycleState

      public Lifecycle.State lifecycleState()
      Specified by:
      lifecycleState in interface LifecycleComponent
    • addLifecycleListener

      public void addLifecycleListener(LifecycleListener listener)
      Specified by:
      addLifecycleListener in interface LifecycleComponent
    • removeLifecycleListener

      public void removeLifecycleListener(LifecycleListener listener)
      Specified by:
      removeLifecycleListener in interface LifecycleComponent
    • start

      public void start()
      Specified by:
      start in interface LifecycleComponent
    • stop

      public void stop()
      Specified by:
      stop in interface LifecycleComponent
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.elasticsearch.core.Releasable