diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java index 80d4bf06bcd..007462ba7ed 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java @@ -1077,9 +1077,10 @@ public static String getOMAddressListPrintString(List omList) { public static boolean isBucketSnapshotIndicator(String key) { return key.startsWith(OM_SNAPSHOT_INDICATOR) && key.split("/").length == 2; } - + public static List> format( - List nodes, int port, String leaderId, String leaderReadiness) { + List nodes, int port, String leaderId, + String localNodeId, String localLeaderStatus) { List> omInfoList = new ArrayList<>(); // Ensuring OM's are printed in correct order List omNodes = nodes.stream() @@ -1087,18 +1088,25 @@ public static List> format( .sorted(Comparator.comparing(ServiceInfo::getHostname)) .collect(Collectors.toList()); for (ServiceInfo info : omNodes) { - // Printing only the OM's running - if (info.getNodeType() == HddsProtos.NodeType.OM) { - String role = info.getOmRoleInfo().getNodeId().equals(leaderId) - ? "LEADER" : "FOLLOWER"; - List omInfo = new ArrayList<>(); - omInfo.add(info.getHostname()); - omInfo.add(info.getOmRoleInfo().getNodeId()); - omInfo.add(String.valueOf(port)); - omInfo.add(role); - omInfo.add(leaderReadiness); - omInfoList.add(omInfo); + String nodeId = info.getOmRoleInfo().getNodeId(); + boolean isLeaderNode = nodeId.equals(leaderId); + boolean isLocalNode = nodeId.equals(localNodeId); + String role = info.getOmRoleInfo().getServerRole(); + + String displayValue; + if (isLeaderNode && isLocalNode) { + displayValue = localLeaderStatus; + } else { + displayValue = role; } + + List omInfo = new ArrayList<>(); + omInfo.add(info.getHostname()); + omInfo.add(nodeId); + omInfo.add(String.valueOf(port)); + omInfo.add(role); + omInfo.add(displayValue); + omInfoList.add(omInfo); } return omInfoList; } diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index 0587b71f239..80265151024 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -3217,7 +3217,9 @@ public List> getRatisRoles() { if (null == omRatisServer) { return getRatisRolesException("Server is shutting down"); } - String leaderReadiness = omRatisServer.getLeaderStatus().name(); + + String localLeaderStatus = omRatisServer.getLeaderStatus().name(); + String localNodeId = omNodeDetails.getNodeId(); final RaftPeerId leaderId = omRatisServer.getLeaderId(); if (leaderId == null) { LOG.error(NO_LEADER_ERROR_MESSAGE); @@ -3231,7 +3233,8 @@ public List> getRatisRoles() { LOG.error("Failed to getServiceList", e); return getRatisRolesException("IO-Exception Occurred, " + e.getMessage()); } - return OmUtils.format(serviceList, port, leaderId.toString(), leaderReadiness); + return OmUtils.format(serviceList, port, leaderId.toString(), + localNodeId, localLeaderStatus); } /**