server/src/main/java/org/elasticsearch/health/node/DiskHealthIndicatorService.java
if (node.canContainData()) {
                    dataNodes.add(node);
                } else if (node.isMasterNode()) {
                    masterNodes.computeIfAbsent(healthStatus, ignored -> new ArrayList<>()).add(node);
                } else {
                    otherNodes.computeIfAbsent(healthStatus, ignored -> new ArrayList<>()).add(node);
                }
            }
            dataNodes.sort(DISCOVERY_NODE_COMPARATOR);
            for (List<DiscoveryNode> masterNodes : masterNodes.values()) {
                masterNodes.sort(DISCOVERY_NODE_COMPARATOR);
            }
            for (List<DiscoveryNode> nodes : otherNodes.values()) {
                nodes.sort(DISCOVERY_NODE_COMPARATOR);
            }
            indicesAtRisk = getIndicesForNodes(dataNodes, clusterState);
            healthStatus = mostSevereStatusSoFar;
            details = createDetails(diskHealthByNode, blockedIndices);
        }
        public HealthStatus getHealthStatus() {
            return healthStatus;
        }
        String getSymptom() {
            if (healthStatus == HealthStatus.GREEN) {
                return "The cluster has enough available disk space.";
            }
            String symptom;
            if (hasBlockedIndices()) {
                symptom = String.format(
                    Locale.ROOT,