Class SnapshotsService

    • Method Detail

      • getRepositoryData

        public RepositoryData getRepositoryData​(java.lang.String repositoryName)
        Gets the RepositoryData for the given repository.
        Parameters:
        repositoryName - repository name
        Returns:
        repository data
      • snapshot

        public SnapshotInfo snapshot​(java.lang.String repositoryName,
                                     SnapshotId snapshotId)
        Retrieves snapshot from repository
        Parameters:
        repositoryName - repository name
        snapshotId - snapshot id
        Returns:
        snapshot
        Throws:
        SnapshotMissingException - if snapshot is not found
      • snapshots

        public java.util.List<SnapshotInfo> snapshots​(java.lang.String repositoryName,
                                                      java.util.List<SnapshotId> snapshotIds,
                                                      java.util.Set<SnapshotId> incompatibleSnapshotIds,
                                                      boolean ignoreUnavailable)
        Returns a list of snapshots from repository sorted by snapshot creation date
        Parameters:
        repositoryName - repository name
        snapshotIds - snapshots for which to fetch snapshot information
        incompatibleSnapshotIds - snapshots for which not to fetch snapshot information
        ignoreUnavailable - if true, snapshots that could not be read will only be logged with a warning, if false, they will throw an error
        Returns:
        list of snapshots
      • currentSnapshots

        public java.util.List<SnapshotInfo> currentSnapshots​(java.lang.String repositoryName)
        Returns a list of currently running snapshots from repository sorted by snapshot creation date
        Parameters:
        repositoryName - repository name
        Returns:
        list of snapshots
      • createSnapshot

        public void createSnapshot​(SnapshotsService.SnapshotRequest request,
                                   SnapshotsService.CreateSnapshotListener listener)
        Initializes the snapshotting process.

        This method is used by clients to start snapshot. It makes sure that there is no snapshots are currently running and creates a snapshot record in cluster state metadata.

        Parameters:
        request - snapshot request
        listener - snapshot creation listener
      • currentSnapshots

        public java.util.List<SnapshotsInProgress.Entry> currentSnapshots​(java.lang.String repository,
                                                                          java.util.List<java.lang.String> snapshots)
        Returns status of the currently running snapshots

        This method is executed on master node

        Parameters:
        repository - repository id
        snapshots - list of snapshots that will be used as a filter, empty list means no snapshots are filtered
        Returns:
        list of metadata for currently running snapshots
      • snapshotShards

        public java.util.Map<ShardId,​IndexShardSnapshotStatus> snapshotShards​(java.lang.String repositoryName,
                                                                                    RepositoryData repositoryData,
                                                                                    SnapshotInfo snapshotInfo)
                                                                             throws java.io.IOException
        Returns status of shards currently finished snapshots

        This method is executed on master node and it's complimentary to the SnapshotShardsService.currentSnapshotShards(Snapshot) because it returns similar information but for already finished snapshots.

        Parameters:
        repositoryName - repository name
        snapshotInfo - snapshot info
        Returns:
        map of shard id to snapshot status
        Throws:
        java.io.IOException
      • deleteSnapshot

        public void deleteSnapshot​(java.lang.String repositoryName,
                                   java.lang.String snapshotName,
                                   SnapshotsService.DeleteSnapshotListener listener,
                                   boolean immediatePriority)
        Deletes a snapshot from the repository, looking up the Snapshot reference before deleting. If the snapshot is still running cancels the snapshot first and then deletes it from the repository.
        Parameters:
        repositoryName - repositoryName
        snapshotName - snapshotName
        listener - listener
      • isRepositoryInUse

        public static boolean isRepositoryInUse​(ClusterState clusterState,
                                                java.lang.String repository)
        Checks if a repository is currently in use by one of the snapshots
        Parameters:
        clusterState - cluster state
        repository - repository id
        Returns:
        true if repository is currently in use by one of the running snapshots
      • checkIndexDeletion

        public static void checkIndexDeletion​(ClusterState currentState,
                                              java.util.Set<IndexMetaData> indices)
        Check if any of the indices to be deleted are currently being snapshotted. Fail as deleting an index that is being snapshotted (with partial == false) makes the snapshot fail.
      • checkIndexClosing

        public static void checkIndexClosing​(ClusterState currentState,
                                             java.util.Set<IndexMetaData> indices)
        Check if any of the indices to be closed are currently being snapshotted. Fail as closing an index that is being snapshotted (with partial == false) makes the snapshot fail.