diff --git a/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/distribution/ExpectedSetup.java b/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/distribution/ExpectedSetup.java index 3992742c372..fdaff84d8ec 100644 --- a/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/distribution/ExpectedSetup.java +++ b/repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/distribution/ExpectedSetup.java @@ -21,6 +21,9 @@ import org.jetbrains.annotations.NotNull; import java.util.*; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; import static org.apache.commons.lang3.ObjectUtils.defaultIfNull; @@ -136,7 +139,16 @@ private List getWorkersPerNode() { private Collection getNodeIdentifiers(WorkersPerNodeDefinitionType perNodeDefinition) { if (!perNodeDefinition.getNodeIdentifier().isEmpty()) { - return perNodeDefinition.getNodeIdentifier(); + Set nodeIds = new HashSet<>(); + for (String nodeIdentifier : perNodeDefinition.getNodeIdentifier()) { + try { + Predicate pattern = Pattern.compile(nodeIdentifier).asMatchPredicate(); + nodeIds.addAll(nodesUp.stream().filter(pattern).toList()); + } catch (PatternSyntaxException e) { + nodeIds.addAll(nodesUp.stream().filter(nodeIdentifier::equals).toList()); + } + } + return nodeIds; } else { return nodesUp; }