You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sz...@apache.org on 2022/05/09 13:02:07 UTC
[ratis] branch master updated: RATIS-1570. Add getLeaderId method to DivisionInfo (#640)
This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git
The following commit(s) were added to refs/heads/master by this push:
new a0a812d1 RATIS-1570. Add getLeaderId method to DivisionInfo (#640)
a0a812d1 is described below
commit a0a812d11b72fae8201404b298f318bfcecb6ba1
Author: Potato <ta...@apache.org>
AuthorDate: Mon May 9 21:02:01 2022 +0800
RATIS-1570. Add getLeaderId method to DivisionInfo (#640)
---
.../src/main/java/org/apache/ratis/server/DivisionInfo.java | 7 +++++++
.../src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java | 5 +++++
2 files changed, 12 insertions(+)
diff --git a/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java b/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
index e59cba57..c07317bd 100644
--- a/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
+++ b/ratis-server-api/src/main/java/org/apache/ratis/server/DivisionInfo.java
@@ -20,6 +20,7 @@ package org.apache.ratis.server;
import org.apache.ratis.proto.RaftProtos.RaftPeerRole;
import org.apache.ratis.proto.RaftProtos.RoleInfoProto;
+import org.apache.ratis.protocol.RaftPeerId;
import org.apache.ratis.util.LifeCycle;
/**
@@ -51,6 +52,12 @@ public interface DivisionInfo {
/** Is this server division currently the leader and ready? */
boolean isLeaderReady();
+ /**
+ * @return the id of the current leader if the leader is known to this server division;
+ * otherwise, return null.
+ */
+ RaftPeerId getLeaderId();
+
/** @return the life cycle state of this server division. */
LifeCycle.State getLifeCycleState();
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
index a7b6ac76..f6c45faa 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
@@ -113,6 +113,11 @@ class RaftServerImpl implements RaftServer.Division,
return isLeader() && getRole().isLeaderReady();
}
+ @Override
+ public RaftPeerId getLeaderId() {
+ return getState().getLeaderId();
+ }
+
@Override
public LifeCycle.State getLifeCycleState() {
return lifeCycle.getCurrentState();