|
|
@@ -57,6 +57,20 @@ service Lease {
|
|
|
// TODO(xiangli) Get details information (expirations, leased keys, etc.) of a lease?
|
|
|
}
|
|
|
|
|
|
+service Cluster {
|
|
|
+ // AddMember adds a member into the cluster.
|
|
|
+ rpc AddMember(AddMemberRequest) returns (AddMemberResponse) {}
|
|
|
+
|
|
|
+ // RemoveMember removes an existing member from the cluster.
|
|
|
+ rpc RemoveMember(RemoveMemberRequest) returns (RemoveMemberResponse) {}
|
|
|
+
|
|
|
+ // UpdateMember updates the member configuration.
|
|
|
+ rpc UpdateMember(UpdateMemberRequest) returns (UpdateMemberResponse) {}
|
|
|
+
|
|
|
+ // ListMember lists all the members in the cluster.
|
|
|
+ rpc ListMember(ListMemberRequest) returns (ListMemberResponse) {}
|
|
|
+}
|
|
|
+
|
|
|
message ResponseHeader {
|
|
|
uint64 cluster_id = 1;
|
|
|
uint64 member_id = 2;
|
|
|
@@ -292,3 +306,47 @@ message LeaseKeepAliveResponse {
|
|
|
int64 ID = 2;
|
|
|
int64 TTL = 3;
|
|
|
}
|
|
|
+
|
|
|
+message Member {
|
|
|
+ uint64 ID = 1;
|
|
|
+ // If the member is not started, name will be an empty string.
|
|
|
+ string name = 2;
|
|
|
+ repeated string peer_URLs = 3;
|
|
|
+ // If the member is not started, client_URLs will be an zero length
|
|
|
+ // string array.
|
|
|
+ repeated string client_URLs = 4;
|
|
|
+}
|
|
|
+
|
|
|
+message AddMemberRequest {
|
|
|
+ repeated string peer_URLs = 1;
|
|
|
+}
|
|
|
+
|
|
|
+message AddMemberResponse {
|
|
|
+ ResponseHeader header = 1;
|
|
|
+ Member member = 2;
|
|
|
+}
|
|
|
+
|
|
|
+message RemoveMemberRequest {
|
|
|
+ uint64 ID = 1;
|
|
|
+}
|
|
|
+
|
|
|
+message RemoveMemberResponse {
|
|
|
+ ResponseHeader header = 1;
|
|
|
+}
|
|
|
+
|
|
|
+message UpdateMemberRequest {
|
|
|
+ uint64 ID = 1;
|
|
|
+ repeated string peer_URLs = 2;
|
|
|
+}
|
|
|
+
|
|
|
+message UpdateMemberResponse{
|
|
|
+ ResponseHeader header = 1;
|
|
|
+}
|
|
|
+
|
|
|
+message ListMemberRequest {
|
|
|
+}
|
|
|
+
|
|
|
+message ListMemberResponse {
|
|
|
+ ResponseHeader header = 1;
|
|
|
+ repeated Member members = 2;
|
|
|
+}
|