Class RepositoryData

java.lang.Object
org.elasticsearch.repositories.RepositoryData

public final class RepositoryData
extends java.lang.Object
A class that represents the data in a repository, as captured in the repository's index blob.
  • Field Details

  • Constructor Details

  • Method Details

    • copy

      protected RepositoryData copy()
    • withVersions

      public RepositoryData withVersions​(java.util.Map<SnapshotId,​Version> versions)
      Creates a copy of this instance that contains updated version data.
      Parameters:
      versions - map of snapshot versions
      Returns:
      copy with updated version data
    • shardGenerations

      public ShardGenerations shardGenerations()
    • getGenId

      public long getGenId()
      Gets the generational index file id from which this instance was read.
    • getSnapshotIds

      public java.util.Collection<SnapshotId> getSnapshotIds()
      Returns an unmodifiable collection of the snapshot ids.
    • getSnapshotState

      @Nullable public SnapshotState getSnapshotState​(SnapshotId snapshotId)
      Returns the SnapshotState for the given snapshot. Returns null if there is no state for the snapshot.
    • getVersion

      @Nullable public Version getVersion​(SnapshotId snapshotId)
      Returns the Version for the given snapshot or null if unknown.
    • getIndices

      public java.util.Map<java.lang.String,​IndexId> getIndices()
      Returns an unmodifiable map of the index names to IndexId in the repository.
    • indicesToUpdateAfterRemovingSnapshot

      public java.util.List<IndexId> indicesToUpdateAfterRemovingSnapshot​(SnapshotId snapshotId)
      Returns the list of IndexId that have their snapshots updated but not removed (because they are still referenced by other snapshots) after removing the given snapshot from the repository.
      Parameters:
      snapshotId - SnapshotId to remove
      Returns:
      List of indices that are changed but not removed
    • addSnapshot

      public RepositoryData addSnapshot​(SnapshotId snapshotId, SnapshotState snapshotState, Version version, ShardGenerations shardGenerations)
      Add a snapshot and its indices to the repository; returns a new instance. If the snapshot already exists in the repository data, this method throws an IllegalArgumentException.
      Parameters:
      snapshotId - Id of the new snapshot
      snapshotState - State of the new snapshot
      shardGenerations - Updated shard generations in the new snapshot. For each index contained in the snapshot an array of new generations indexed by the shard id they correspond to must be supplied.
    • withGenId

      public RepositoryData withGenId​(long newGeneration)
      Create a new instance with the given generation and all other fields equal to this instance.
      Parameters:
      newGeneration - New Generation
      Returns:
      New instance
    • removeSnapshot

      public RepositoryData removeSnapshot​(SnapshotId snapshotId, ShardGenerations updatedShardGenerations)
      Remove a snapshot and remove any indices that no longer exist in the repository due to the deletion of the snapshot.
      Parameters:
      snapshotId - Snapshot Id
      updatedShardGenerations - Shard generations that changed as a result of removing the snapshot. The String[] passed for each IndexId contains the new shard generation id for each changed shard indexed by its shardId
    • getSnapshots

      public java.util.Set<SnapshotId> getSnapshots​(IndexId indexId)
      Returns an immutable collection of the snapshot ids for the snapshots that contain the given index.
    • equals

      public boolean equals​(java.lang.Object obj)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • resolveIndexId

      public IndexId resolveIndexId​(java.lang.String indexName)
      Resolve the index name to the index id specific to the repository, throwing an exception if the index could not be resolved.
    • resolveIndices

      public java.util.List<IndexId> resolveIndices​(java.util.List<java.lang.String> indices)
      Resolve the given index names to index ids.
    • resolveNewIndices

      public java.util.List<IndexId> resolveNewIndices​(java.util.List<java.lang.String> indicesToResolve)
      Resolve the given index names to index ids, creating new index ids for new indices in the repository.
    • snapshotsToXContent

      public XContentBuilder snapshotsToXContent​(XContentBuilder builder, boolean shouldWriteShardGens) throws java.io.IOException
      Writes the snapshots metadata and the related indices metadata to x-content.
      Throws:
      java.io.IOException
    • snapshotsFromXContent

      public static RepositoryData snapshotsFromXContent​(XContentParser parser, long genId) throws java.io.IOException
      Reads an instance of RepositoryData from x-content, loading the snapshots and indices metadata.
      Throws:
      java.io.IOException