You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by as...@apache.org on 2021/02/03 11:06:57 UTC
[ignite-3] 01/02: IGNITE-13885 Added CLI RPC.
This is an automated email from the ASF dual-hosted git repository.
ascherbakov pushed a commit to branch ignite-13885
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit ea1867f912318459638d777a2a4975e10f0adc1c
Author: Alexey Scherbakov <al...@gmail.com>
AuthorDate: Fri Jan 22 15:53:48 2021 +0300
IGNITE-13885 Added CLI RPC.
---
.../com/alipay/sofa/jraft/rpc/CliRequests.java | 4 --
.../rpc/impl/cli/GetPeersRequestProcessor.java | 2 +-
.../jraft/rpc/message/AddLearnersRequestImpl.java | 53 +++++++++++++++++
.../jraft/rpc/message/AddPeerResponseImpl.java | 55 ++++++++++++++++++
.../jraft/rpc/message/ChangePeerRequestImpl.java | 53 +++++++++++++++++
.../jraft/rpc/message/ChangePeersResponseImpl.java | 55 ++++++++++++++++++
.../rpc/message/DefaultMessageBuilderFactory.java | 28 ++++-----
.../jraft/rpc/message/GetPeersRequestImpl.java | 43 ++++++++++++++
.../jraft/rpc/message/GetPeersResponseImpl.java | 55 ++++++++++++++++++
.../jraft/rpc/message/LearnersOpResponseImpl.java | 55 ++++++++++++++++++
.../rpc/message/RemoveLearnersRequestImpl.java | 53 +++++++++++++++++
.../jraft/rpc/message/RemovePeerRequestImpl.java | 43 ++++++++++++++
.../jraft/rpc/message/RemovePeerResponseImpl.java | 55 ++++++++++++++++++
.../rpc/message/ResetLearnersRequestImpl.java | 53 +++++++++++++++++
.../jraft/rpc/message/ResetPeerRequestImpl.java | 66 ++++++++++++++++++++++
.../jraft/rpc/message/SnapshotRequestImpl.java | 32 +++++++++++
.../rpc/message/TransferLeaderRequestImpl.java | 47 +++++++++++++++
17 files changed, 733 insertions(+), 19 deletions(-)
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/CliRequests.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/CliRequests.java
index c95579f..ea07e4f 100644
--- a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/CliRequests.java
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/CliRequests.java
@@ -63,8 +63,6 @@ public final class CliRequests {
java.lang.String getNewPeers(int index);
- RpcRequests.ErrorResponse getErrorResponse();
-
public interface Builder {
Builder addOldPeers(String oldPeersId);
@@ -308,8 +306,6 @@ public final class CliRequests {
boolean getOnlyAlive();
- boolean hasOnlyAlive();
-
public interface Builder {
Builder setGroupId(String groupId);
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/impl/cli/GetPeersRequestProcessor.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/impl/cli/GetPeersRequestProcessor.java
index bccf7f0..7a88e70 100644
--- a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/impl/cli/GetPeersRequestProcessor.java
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/impl/cli/GetPeersRequestProcessor.java
@@ -51,7 +51,7 @@ public class GetPeersRequestProcessor extends BaseCliRequestProcessor<GetPeersRe
final RpcRequestClosure done) {
final List<PeerId> peers;
final List<PeerId> learners;
- if (request.hasOnlyAlive() && request.getOnlyAlive()) {
+ if (request.getOnlyAlive()) {
peers = ctx.node.listAlivePeers();
learners = ctx.node.listAliveLearners();
} else {
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddLearnersRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddLearnersRequestImpl.java
new file mode 100644
index 0000000..acb1413
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddLearnersRequestImpl.java
@@ -0,0 +1,53 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AddLearnersRequestImpl implements CliRequests.AddLearnersRequest, CliRequests.AddLearnersRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private List<String> learnersList = new ArrayList<>();
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public List<String> getLearnersList() {
+ return learnersList;
+ }
+
+ @Override public int getLearnersCount() {
+ return learnersList.size();
+ }
+
+ @Override public String getLearners(int index) {
+ return learnersList.get(index);
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder addLearners(String learnerId) {
+ learnersList.add(learnerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.AddLearnersRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddPeerResponseImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddPeerResponseImpl.java
new file mode 100644
index 0000000..578e7ab
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/AddPeerResponseImpl.java
@@ -0,0 +1,55 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import com.alipay.sofa.jraft.rpc.RpcRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AddPeerResponseImpl implements CliRequests.AddPeerResponse, CliRequests.AddPeerResponse.Builder {
+ private List<String> oldPeersList = new ArrayList<>();
+ private List<String> newPeersList = new ArrayList<>();
+
+ @Override public List<String> getOldPeersList() {
+ return oldPeersList;
+ }
+
+ @Override public int getOldPeersCount() {
+ return oldPeersList.size();
+ }
+
+ @Override public String getOldPeers(int index) {
+ return oldPeersList.get(index);
+ }
+
+ @Override public List<String> getNewPeersList() {
+ return newPeersList;
+ }
+
+ @Override public int getNewPeersCount() {
+ return newPeersList.size();
+ }
+
+ @Override public String getNewPeers(int index) {
+ return newPeersList.get(index);
+ }
+
+ @Override public RpcRequests.ErrorResponse getErrorResponse() {
+ return null;
+ }
+
+ @Override public Builder addOldPeers(String oldPeersId) {
+ oldPeersList.add(oldPeersId);
+
+ return this;
+ }
+
+ @Override public Builder addNewPeers(String newPeersId) {
+ newPeersList.add(newPeersId);
+
+ return this;
+ }
+
+ @Override public CliRequests.AddPeerResponse build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeerRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeerRequestImpl.java
new file mode 100644
index 0000000..3381a36
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeerRequestImpl.java
@@ -0,0 +1,53 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ChangePeerRequestImpl implements CliRequests.ChangePeersRequest, CliRequests.ChangePeersRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private List<String> newPeersList = new ArrayList<>();
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public List<String> getNewPeersList() {
+ return newPeersList;
+ }
+
+ @Override public int getNewPeersCount() {
+ return newPeersList.size();
+ }
+
+ @Override public String getNewPeers(int index) {
+ return newPeersList.get(index);
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder addNewPeers(String peerId) {
+ newPeersList.add(peerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.ChangePeersRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeersResponseImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeersResponseImpl.java
new file mode 100644
index 0000000..6aaf0e7
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ChangePeersResponseImpl.java
@@ -0,0 +1,55 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import com.alipay.sofa.jraft.rpc.RpcRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ChangePeersResponseImpl implements CliRequests.ChangePeersResponse, CliRequests.ChangePeersResponse.Builder {
+ private List<String> oldPeersList = new ArrayList<>();
+ private List<String> newPeersList = new ArrayList<>();
+
+ @Override public List<String> getOldPeersList() {
+ return oldPeersList;
+ }
+
+ @Override public int getOldPeersCount() {
+ return oldPeersList.size();
+ }
+
+ @Override public String getOldPeers(int index) {
+ return oldPeersList.get(index);
+ }
+
+ @Override public List<String> getNewPeersList() {
+ return newPeersList;
+ }
+
+ @Override public int getNewPeersCount() {
+ return newPeersList.size();
+ }
+
+ @Override public String getNewPeers(int index) {
+ return newPeersList.get(index);
+ }
+
+ @Override public RpcRequests.ErrorResponse getErrorResponse() {
+ return null;
+ }
+
+ @Override public Builder addOldPeers(String oldPeerId) {
+ oldPeersList.add(oldPeerId);
+
+ return this;
+ }
+
+ @Override public Builder addNewPeers(String newPeerId) {
+ newPeersList.add(newPeerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.ChangePeersResponse build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/DefaultMessageBuilderFactory.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/DefaultMessageBuilderFactory.java
index d92ff6f..466a1ce 100644
--- a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/DefaultMessageBuilderFactory.java
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/DefaultMessageBuilderFactory.java
@@ -93,35 +93,35 @@ public class DefaultMessageBuilderFactory implements MessageBuilderFactory {
}
@Override public CliRequests.AddPeerResponse.Builder createAddPeerResponse() {
- return null;
+ return new AddPeerResponseImpl();
}
@Override public CliRequests.RemovePeerRequest.Builder createRemovePeerRequest() {
- return null;
+ return new RemovePeerRequestImpl();
}
@Override public CliRequests.RemovePeerResponse.Builder createRemovePeerResponse() {
- return null;
+ return new RemovePeerResponseImpl();
}
@Override public CliRequests.ChangePeersRequest.Builder createChangePeerRequest() {
- return null;
+ return new ChangePeerRequestImpl();
}
@Override public CliRequests.ChangePeersResponse.Builder createChangePeerResponse() {
- return null;
+ return new ChangePeersResponseImpl();
}
@Override public CliRequests.SnapshotRequest.Builder createSnapshotRequest() {
- return null;
+ return new SnapshotRequestImpl();
}
@Override public CliRequests.ResetPeerRequest.Builder createResetPeerRequest() {
- return null;
+ return new ResetPeerRequestImpl();
}
@Override public CliRequests.TransferLeaderRequest.Builder createTransferLeaderRequest() {
- return null;
+ return new TransferLeaderRequestImpl();
}
@Override public CliRequests.GetLeaderRequest.Builder createGetLeaderRequest() {
@@ -133,26 +133,26 @@ public class DefaultMessageBuilderFactory implements MessageBuilderFactory {
}
@Override public CliRequests.GetPeersRequest.Builder createGetPeersRequest() {
- return null;
+ return new GetPeersRequestImpl();
}
@Override public CliRequests.GetPeersResponse.Builder createGetPeersResponse() {
- return null;
+ return new GetPeersResponseImpl();
}
@Override public CliRequests.AddLearnersRequest.Builder createAddLearnersRequest() {
- return null;
+ return new AddLearnersRequestImpl();
}
@Override public CliRequests.RemoveLearnersRequest.Builder createRemoveLearnersRequest() {
- return null;
+ return new RemoveLearnersRequestImpl();
}
@Override public CliRequests.ResetLearnersRequest.Builder createResetLearnersRequest() {
- return null;
+ return new ResetLearnersRequestImpl();
}
@Override public CliRequests.LearnersOpResponse.Builder createLearnersOpResponse() {
- return null;
+ return new LearnersOpResponseImpl();
}
}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersRequestImpl.java
new file mode 100644
index 0000000..f6dc17e
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersRequestImpl.java
@@ -0,0 +1,43 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+
+public class GetPeersRequestImpl implements CliRequests.GetPeersRequest, CliRequests.GetPeersRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private boolean onlyAlive;
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public boolean getOnlyAlive() {
+ return onlyAlive;
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder setOnlyAlive(boolean onlyGetAlive) {
+ this.onlyAlive = onlyGetAlive;
+
+ return this;
+ }
+
+ @Override public CliRequests.GetPeersRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersResponseImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersResponseImpl.java
new file mode 100644
index 0000000..00b9b73
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/GetPeersResponseImpl.java
@@ -0,0 +1,55 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import com.alipay.sofa.jraft.rpc.RpcRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GetPeersResponseImpl implements CliRequests.GetPeersResponse, CliRequests.GetPeersResponse.Builder {
+ private List<String> peersList = new ArrayList<>();
+ private List<String> learnersList = new ArrayList<>();
+
+ @Override public List<String> getPeersList() {
+ return peersList;
+ }
+
+ @Override public int getPeersCount() {
+ return peersList.size();
+ }
+
+ @Override public String getPeers(int index) {
+ return peersList.get(index);
+ }
+
+ @Override public List<String> getLearnersList() {
+ return learnersList;
+ }
+
+ @Override public int getLearnersCount() {
+ return learnersList.size();
+ }
+
+ @Override public String getLearners(int index) {
+ return learnersList.get(index);
+ }
+
+ @Override public RpcRequests.ErrorResponse getErrorResponse() {
+ return null;
+ }
+
+ @Override public Builder addPeers(String peerId) {
+ peersList.add(peerId);
+
+ return this;
+ }
+
+ @Override public Builder addLearners(String learnerId) {
+ learnersList.add(learnerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.GetPeersResponse build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/LearnersOpResponseImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/LearnersOpResponseImpl.java
new file mode 100644
index 0000000..f7a14ca
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/LearnersOpResponseImpl.java
@@ -0,0 +1,55 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import com.alipay.sofa.jraft.rpc.RpcRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class LearnersOpResponseImpl implements CliRequests.LearnersOpResponse, CliRequests.LearnersOpResponse.Builder {
+ private List<String> oldLearnersList = new ArrayList<>();
+ private List<String> newLearnersList = new ArrayList<>();
+
+ @Override public List<String> getOldLearnersList() {
+ return oldLearnersList;
+ }
+
+ @Override public int getOldLearnersCount() {
+ return oldLearnersList.size();
+ }
+
+ @Override public String getOldLearners(int index) {
+ return oldLearnersList.get(index);
+ }
+
+ @Override public List<String> getNewLearnersList() {
+ return newLearnersList;
+ }
+
+ @Override public int getNewLearnersCount() {
+ return newLearnersList.size();
+ }
+
+ @Override public String getNewLearners(int index) {
+ return newLearnersList.get(index);
+ }
+
+ @Override public RpcRequests.ErrorResponse getErrorResponse() {
+ return null;
+ }
+
+ @Override public Builder addOldLearners(String oldLearnersId) {
+ oldLearnersList.add(oldLearnersId);
+
+ return this;
+ }
+
+ @Override public Builder addNewLearners(String newLearnersId) {
+ newLearnersList.add(newLearnersId);
+
+ return this;
+ }
+
+ @Override public CliRequests.LearnersOpResponse build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemoveLearnersRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemoveLearnersRequestImpl.java
new file mode 100644
index 0000000..5b2224e
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemoveLearnersRequestImpl.java
@@ -0,0 +1,53 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class RemoveLearnersRequestImpl implements CliRequests.RemoveLearnersRequest, CliRequests.RemoveLearnersRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private List<String> learnersList = new ArrayList<>();
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public List<String> getLearnersList() {
+ return learnersList;
+ }
+
+ @Override public int getLearnersCount() {
+ return learnersList.size();
+ }
+
+ @Override public String getLearners(int index) {
+ return learnersList.get(index);
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder addLearners(String learnerId) {
+ learnersList.add(learnerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.RemoveLearnersRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerRequestImpl.java
new file mode 100644
index 0000000..ae1b340
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerRequestImpl.java
@@ -0,0 +1,43 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+
+public class RemovePeerRequestImpl implements CliRequests.RemovePeerRequest, CliRequests.RemovePeerRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private String peerId;
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public String getPeerId() {
+ return peerId;
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder setPeerId(String peerId) {
+ this.peerId = peerId;
+
+ return this;
+ }
+
+ @Override public CliRequests.RemovePeerRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerResponseImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerResponseImpl.java
new file mode 100644
index 0000000..76a5e11
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/RemovePeerResponseImpl.java
@@ -0,0 +1,55 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import com.alipay.sofa.jraft.rpc.RpcRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class RemovePeerResponseImpl implements CliRequests.RemovePeerResponse, CliRequests.RemovePeerResponse.Builder {
+ private List<String> oldPeersList = new ArrayList<>();
+ private List<String> newPeersList = new ArrayList<>();
+
+ @Override public List<String> getOldPeersList() {
+ return oldPeersList;
+ }
+
+ @Override public int getOldPeersCount() {
+ return oldPeersList.size();
+ }
+
+ @Override public String getOldPeers(int index) {
+ return oldPeersList.get(index);
+ }
+
+ @Override public List<String> getNewPeersList() {
+ return newPeersList;
+ }
+
+ @Override public int getNewPeersCount() {
+ return newPeersList.size();
+ }
+
+ @Override public String getNewPeers(int index) {
+ return newPeersList.get(index);
+ }
+
+ @Override public RpcRequests.ErrorResponse getErrorResponse() {
+ return null;
+ }
+
+ @Override public Builder addOldPeers(String oldPeerId) {
+ oldPeersList.add(oldPeerId);
+
+ return this;
+ }
+
+ @Override public Builder addNewPeers(String newPeerId) {
+ newPeersList.add(newPeerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.RemovePeerResponse build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetLearnersRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetLearnersRequestImpl.java
new file mode 100644
index 0000000..7bb9fbe
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetLearnersRequestImpl.java
@@ -0,0 +1,53 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResetLearnersRequestImpl implements CliRequests.ResetLearnersRequest, CliRequests.ResetLearnersRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private List<String> learnersList = new ArrayList<>();
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public List<String> getLearnersList() {
+ return learnersList;
+ }
+
+ @Override public int getLearnersCount() {
+ return learnersList.size();
+ }
+
+ @Override public String getLearners(int index) {
+ return learnersList.get(index);
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder addLearners(String learnerId) {
+ learnersList.add(learnerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.ResetLearnersRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetPeerRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetPeerRequestImpl.java
new file mode 100644
index 0000000..28c6c84
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/ResetPeerRequestImpl.java
@@ -0,0 +1,66 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResetPeerRequestImpl implements CliRequests.ResetPeerRequest, CliRequests.ResetPeerRequest.Builder {
+ private String groupId;
+ private String peerId;
+ private List<String> oldPeersList = new ArrayList<>();
+ private List<String> newPeersList = new ArrayList<>();
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getPeerId() {
+ return peerId;
+ }
+
+ @Override public List<String> getOldPeersList() {
+ return oldPeersList;
+ }
+
+ @Override public int getOldPeersCount() {
+ return oldPeersList.size();
+ }
+
+ @Override public String getOldPeers(int index) {
+ return oldPeersList.get(index);
+ }
+
+ @Override public List<String> getNewPeersList() {
+ return newPeersList;
+ }
+
+ @Override public int getNewPeersCount() {
+ return newPeersList.size();
+ }
+
+ @Override public String getNewPeers(int index) {
+ return newPeersList.get(index);
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setPeerId(String peerId) {
+ this.peerId = peerId;
+
+ return this;
+ }
+
+ @Override public Builder addNewPeers(String peerId) {
+ newPeersList.add(peerId);
+
+ return this;
+ }
+
+ @Override public CliRequests.ResetPeerRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/SnapshotRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/SnapshotRequestImpl.java
new file mode 100644
index 0000000..6d79ac3
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/SnapshotRequestImpl.java
@@ -0,0 +1,32 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+
+public class SnapshotRequestImpl implements CliRequests.SnapshotRequest, CliRequests.SnapshotRequest.Builder {
+ private String groupId;
+ private String peerId;
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getPeerId() {
+ return peerId;
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setPeerId(String peerId) {
+ this.peerId = peerId;
+
+ return this;
+ }
+
+ @Override public CliRequests.SnapshotRequest build() {
+ return this;
+ }
+}
diff --git a/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/TransferLeaderRequestImpl.java b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/TransferLeaderRequestImpl.java
new file mode 100644
index 0000000..c33442b
--- /dev/null
+++ b/modules/raft/src/main/java/com/alipay/sofa/jraft/rpc/message/TransferLeaderRequestImpl.java
@@ -0,0 +1,47 @@
+package com.alipay.sofa.jraft.rpc.message;
+
+import com.alipay.sofa.jraft.rpc.CliRequests;
+
+public class TransferLeaderRequestImpl implements CliRequests.TransferLeaderRequest, CliRequests.TransferLeaderRequest.Builder {
+ private String groupId;
+ private String leaderId;
+ private String peerId;
+
+ @Override public String getGroupId() {
+ return groupId;
+ }
+
+ @Override public String getLeaderId() {
+ return leaderId;
+ }
+
+ @Override public String getPeerId() {
+ return peerId;
+ }
+
+ @Override public boolean hasPeerId() {
+ return peerId != null;
+ }
+
+ @Override public Builder setGroupId(String groupId) {
+ this.groupId = groupId;
+
+ return this;
+ }
+
+ @Override public Builder setLeaderId(String leaderId) {
+ this.leaderId = leaderId;
+
+ return this;
+ }
+
+ @Override public Builder setPeerId(String peerId) {
+ this.peerId = peerId;
+
+ return this;
+ }
+
+ @Override public CliRequests.TransferLeaderRequest build() {
+ return this;
+ }
+}