This is an automated email from the ASF dual-hosted git repository.
ivandika pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new fb706e783d3 HDDS-13831. Refine set role logic in getServicelist (#9191)
fb706e783d3 is described below
commit fb706e783d37101e932d91bb784eca64923151f7
Author: Symious <[email protected]>
AuthorDate: Fri Oct 31 16:47:03 2025 +0800
HDDS-13831. Refine set role logic in getServicelist (#9191)
---
.../org/apache/hadoop/ozone/om/OzoneManager.java | 31 +++++++++++++++++-----
1 file changed, 25 insertions(+), 6 deletions(-)
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 56e51cf4026..b1005f22a6f 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
@@ -3301,12 +3301,24 @@ public List<ServiceInfo> getServiceList() throws
IOException {
.build());
}
- // Since this OM is processing the request, we can assume it to be the
- // leader OM
-
+ RaftPeerRole selfRole;
+ RaftPeerId leaderId = null;
+ if (omRatisServer == null) {
+ selfRole = RaftPeerRole.LEADER;
+ } else {
+ leaderId = omRatisServer.getLeaderId();
+ RaftPeerId selfPeerId = omRatisServer.getRaftPeerId();
+ if (leaderId != null && leaderId.equals(selfPeerId)) {
+ selfRole = RaftPeerRole.LEADER;
+ } else if (omNodeDetails.isRatisListener()) {
+ selfRole = RaftPeerRole.LISTENER;
+ } else {
+ selfRole = RaftPeerRole.FOLLOWER;
+ }
+ }
OMRoleInfo omRole = OMRoleInfo.newBuilder()
.setNodeId(getOMNodeId())
- .setServerRole(RaftPeerRole.LEADER.name())
+ .setServerRole(selfRole.name())
.build();
omServiceInfoBuilder.setOmRoleInfo(omRole);
@@ -3330,10 +3342,17 @@ public List<ServiceInfo> getServiceList() throws
IOException {
.setValue(peerNode.getRpcPort())
.build());
- String role = peerNode.isRatisListener() ? RaftPeerRole.LISTENER.name()
: RaftPeerRole.FOLLOWER.name();
+ RaftPeerRole roleForPeer;
+ if (leaderId != null &&
peerNode.getNodeId().equals(leaderId.toString())) {
+ roleForPeer = RaftPeerRole.LEADER;
+ } else if (peerNode.isRatisListener()) {
+ roleForPeer = RaftPeerRole.LISTENER;
+ } else {
+ roleForPeer = RaftPeerRole.FOLLOWER;
+ }
OMRoleInfo peerOmRole = OMRoleInfo.newBuilder()
.setNodeId(peerNode.getNodeId())
- .setServerRole(role)
+ .setServerRole(roleForPeer.name())
.build();
peerOmServiceInfoBuilder.setOmRoleInfo(peerOmRole);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]