@Override public void beforeIndexShardClosed( ShardId shardId, @Nullable IndexShard indexShard, Settings indexSettings) { if (indexShard != null) { onGoingRecoveries.cancelRecoveriesForShard(shardId, "shard closed"); } }
/** * cancel all ongoing recoveries for the given shard, if their status match a predicate * * @param reason reason for cancellation * @param shardId shardId for which to cancel recoveries * @param shouldCancel a predicate to check if a recovery should be cancelled or not. Null means * cancel without an extra check. note that the recovery state can change after this check, * but before it is being cancelled via other already issued outstanding references. * @return true if a recovery was cancelled */ public boolean cancelRecoveriesForShard( ShardId shardId, String reason, @Nullable Predicate<RecoveryStatus> shouldCancel) { return onGoingRecoveries.cancelRecoveriesForShard(shardId, reason, shouldCancel); }