Get Snapshots API

Use the Get Snapshot API to get snapshots.

Get Snapshots Request

A GetSnapshotsRequest:

GetSnapshotsRequest request = new GetSnapshotsRequest();

Required Arguments

The following arguments are mandatory:

request.repository(repositoryName); 

The name of the repository.

Optional Arguments

The following arguments are optional:

String[] snapshots = { snapshotName };
request.snapshots(snapshots); 

An array of snapshots to get. Otherwise it will return all snapshots for a repository.

request.masterNodeTimeout(TimeValue.timeValueMinutes(1)); 
request.masterNodeTimeout("1m"); 

Timeout to connect to the master node as a TimeValue.

Timeout to connect to the master node as a String.

request.verbose(true); 

Boolean indicating if the response should be verbose.

request.ignoreUnavailable(false); 

Boolean indicating if unavailable snapshots should be ignored. Otherwise the request will fail if any of the snapshots are unavailable.

Synchronous Execution

GetSnapshotsResponse response = client.snapshot().get(request, RequestOptions.DEFAULT);

Asynchronous Execution

The asynchronous execution of a get snapshots request requires both the GetSnapshotsRequest instance and an ActionListener instance to be passed as arguments to the asynchronous method:

client.snapshot().getAsync(request, RequestOptions.DEFAULT, listener); 

The GetSnapshotsRequest to execute and the ActionListener to use when the execution completes.

The asynchronous method does not block and returns immediately. Once it is completed the ActionListener is called back with the onResponse method if the execution is successful or the onFailure method if the execution failed.

A typical listener for GetSnapshotsResponse looks like:

ActionListener<GetSnapshotsResponse> listener =
    new ActionListener<GetSnapshotsResponse>() {
        @Override
        public void onResponse(GetSnapshotsResponse getSnapshotsResponse) {
            
        }

        @Override
        public void onFailure(Exception e) {
            
        }
    };

Called when the execution is successfully completed. The response is provided as an argument.

Called in case of a failure. The raised exception is provided as an argument.

Get Snapshots Response

The returned GetSnapshotsResponse allows the retrieval of information about the requested snapshots:

List<SnapshotInfo> snapshotsInfos = response.getSnapshots();
SnapshotInfo snapshotInfo = snapshotsInfos.get(0);
RestStatus restStatus = snapshotInfo.status(); 
SnapshotId snapshotId = snapshotInfo.snapshotId(); 
SnapshotState snapshotState = snapshotInfo.state(); 
List<SnapshotShardFailure> snapshotShardFailures = snapshotInfo.shardFailures(); 
long startTime = snapshotInfo.startTime(); 
long endTime = snapshotInfo.endTime(); 

The REST status of a snapshot

The snapshot id

The current state of the snapshot

Information about failures that occurred during the shard snapshot process.

The snapshot start time

The snapshot end time