Skip to content

Commit 83e77c0

Browse files
authored
HDDS-14966. OM UI shows wrong Leader Readiness values (#10036)
1 parent aa76a5d commit 83e77c0

2 files changed

Lines changed: 26 additions & 15 deletions

File tree

hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,28 +1079,36 @@ public static String getOMAddressListPrintString(List<OMNodeDetails> omList) {
10791079
public static boolean isBucketSnapshotIndicator(String key) {
10801080
return key.startsWith(OM_SNAPSHOT_INDICATOR) && key.split("/").length == 2;
10811081
}
1082-
1082+
10831083
public static List<List<String>> format(
1084-
List<ServiceInfo> nodes, int port, String leaderId, String leaderReadiness) {
1084+
List<ServiceInfo> nodes, int port, String leaderId,
1085+
String localNodeId, String localLeaderStatus) {
10851086
List<List<String>> omInfoList = new ArrayList<>();
10861087
// Ensuring OM's are printed in correct order
10871088
List<ServiceInfo> omNodes = nodes.stream()
10881089
.filter(node -> node.getNodeType() == HddsProtos.NodeType.OM)
10891090
.sorted(Comparator.comparing(ServiceInfo::getHostname))
10901091
.collect(Collectors.toList());
10911092
for (ServiceInfo info : omNodes) {
1092-
// Printing only the OM's running
1093-
if (info.getNodeType() == HddsProtos.NodeType.OM) {
1094-
String role = info.getOmRoleInfo().getNodeId().equals(leaderId)
1095-
? "LEADER" : "FOLLOWER";
1096-
List<String> omInfo = new ArrayList<>();
1097-
omInfo.add(info.getHostname());
1098-
omInfo.add(info.getOmRoleInfo().getNodeId());
1099-
omInfo.add(String.valueOf(port));
1100-
omInfo.add(role);
1101-
omInfo.add(leaderReadiness);
1102-
omInfoList.add(omInfo);
1093+
String nodeId = info.getOmRoleInfo().getNodeId();
1094+
boolean isLeaderNode = nodeId.equals(leaderId);
1095+
boolean isLocalNode = nodeId.equals(localNodeId);
1096+
String role = info.getOmRoleInfo().getServerRole();
1097+
1098+
String displayValue;
1099+
if (isLeaderNode && isLocalNode) {
1100+
displayValue = localLeaderStatus;
1101+
} else {
1102+
displayValue = role;
11031103
}
1104+
1105+
List<String> omInfo = new ArrayList<>();
1106+
omInfo.add(info.getHostname());
1107+
omInfo.add(nodeId);
1108+
omInfo.add(String.valueOf(port));
1109+
omInfo.add(role);
1110+
omInfo.add(displayValue);
1111+
omInfoList.add(omInfo);
11041112
}
11051113
return omInfoList;
11061114
}

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3249,7 +3249,9 @@ public List<List<String>> getRatisRoles() {
32493249
if (null == omRatisServer) {
32503250
return getRatisRolesException("Server is shutting down");
32513251
}
3252-
String leaderReadiness = omRatisServer.getLeaderStatus().name();
3252+
3253+
String localLeaderStatus = omRatisServer.getLeaderStatus().name();
3254+
String localNodeId = omNodeDetails.getNodeId();
32533255
final RaftPeerId leaderId = omRatisServer.getLeaderId();
32543256
if (leaderId == null) {
32553257
LOG.error(NO_LEADER_ERROR_MESSAGE);
@@ -3263,7 +3265,8 @@ public List<List<String>> getRatisRoles() {
32633265
LOG.error("Failed to getServiceList", e);
32643266
return getRatisRolesException("IO-Exception Occurred, " + e.getMessage());
32653267
}
3266-
return OmUtils.format(serviceList, port, leaderId.toString(), leaderReadiness);
3268+
return OmUtils.format(serviceList, port, leaderId.toString(),
3269+
localNodeId, localLeaderStatus);
32673270
}
32683271

32693272
/**

0 commit comments

Comments
 (0)