|
25 | 25 | import java.util.Collection; |
26 | 26 | import java.util.Collections; |
27 | 27 | import java.util.HashMap; |
28 | | -import java.util.HashSet; |
29 | 28 | import java.util.Map; |
30 | 29 | import java.util.NavigableMap; |
31 | 30 | import java.util.Set; |
@@ -281,24 +280,17 @@ public static MlConfigVersion getMaxMlConfigVersion(DiscoveryNodes nodes) { |
281 | 280 | public static Tuple<MlConfigVersion, MlConfigVersion> getMinMaxMlConfigVersion(DiscoveryNodes nodes) { |
282 | 281 | MlConfigVersion minMlConfigVersion = MlConfigVersion.CURRENT; |
283 | 282 | MlConfigVersion maxMlConfigVersion = MlConfigVersion.FIRST_ML_VERSION; |
284 | | - |
285 | | - // many nodes will have the same versions, so de-duplicate versions first so that we only have to parse unique versions |
286 | | - final Set<String> versions = new HashSet<>(); |
287 | 283 | for (DiscoveryNode node : nodes) { |
288 | | - String mlConfigVerStr = node.getAttributes().get(ML_CONFIG_VERSION_NODE_ATTR); |
289 | | - if (mlConfigVerStr != null) { // ignore nodes that don't have an ML config version |
290 | | - versions.add(mlConfigVerStr); |
291 | | - } |
292 | | - } |
293 | | - |
294 | | - // of the unique versions, find the min and max |
295 | | - for (String version : versions) { |
296 | | - MlConfigVersion mlConfigVersion = fromString(version); |
297 | | - if (mlConfigVersion.before(minMlConfigVersion)) { |
298 | | - minMlConfigVersion = mlConfigVersion; |
299 | | - } |
300 | | - if (mlConfigVersion.after(maxMlConfigVersion)) { |
301 | | - maxMlConfigVersion = mlConfigVersion; |
| 284 | + try { |
| 285 | + MlConfigVersion mlConfigVersion = getMlConfigVersionForNode(node); |
| 286 | + if (mlConfigVersion.before(minMlConfigVersion)) { |
| 287 | + minMlConfigVersion = mlConfigVersion; |
| 288 | + } |
| 289 | + if (mlConfigVersion.after(maxMlConfigVersion)) { |
| 290 | + maxMlConfigVersion = mlConfigVersion; |
| 291 | + } |
| 292 | + } catch (IllegalStateException e) { |
| 293 | + // This means we encountered a node that is after 8.10.0 but has the ML plugin disabled - ignore it |
302 | 294 | } |
303 | 295 | } |
304 | 296 | return new Tuple<>(minMlConfigVersion, maxMlConfigVersion); |
|
0 commit comments