diff --git a/server/src/main/java/org/elasticsearch/persistent/PersistentTasksInProgress.java b/server/src/main/java/org/elasticsearch/persistent/PersistentTasksInProgress.java index 07ea32ed100..982295c598d 100644 --- a/server/src/main/java/org/elasticsearch/persistent/PersistentTasksInProgress.java +++ b/server/src/main/java/org/elasticsearch/persistent/PersistentTasksInProgress.java @@ -30,8 +30,11 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Objects; +import java.util.function.Predicate; +import java.util.stream.Collectors; /** * A cluster state record that contains a list of all running persistent tasks @@ -53,6 +56,19 @@ public final class PersistentTasksInProgress extends AbstractNamedDiffable> findEntries(String actionName, Predicate> predicate) { + return this.entries().stream() + .filter(p -> actionName.equals(p.getAction())) + .filter(predicate) + .collect(Collectors.toList()); + } + + public boolean entriesExist(String actionName, Predicate> predicate) { + return this.entries().stream() + .filter(p -> actionName.equals(p.getAction())) + .anyMatch(predicate); + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/server/src/main/java/org/elasticsearch/persistent/RemovePersistentTaskAction.java b/server/src/main/java/org/elasticsearch/persistent/RemovePersistentTaskAction.java index fe65e9fd9df..3cbd1f58527 100644 --- a/server/src/main/java/org/elasticsearch/persistent/RemovePersistentTaskAction.java +++ b/server/src/main/java/org/elasticsearch/persistent/RemovePersistentTaskAction.java @@ -112,7 +112,7 @@ public class RemovePersistentTaskAction extends Action