127 lines
No EOL
2.5 KiB
Protocol Buffer
127 lines
No EOL
2.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option csharp_namespace = "EllieBot.Coordinator";
|
|
|
|
package elliebot;
|
|
|
|
service Coordinator {
|
|
// sends update to coordinator to let it know that the shard is alive
|
|
rpc Heartbeat(HeartbeatRequest) returns (HeartbeatReply);
|
|
// restarts a shard given the id
|
|
rpc RestartShard(RestartShardRequest) returns (RestartShardReply);
|
|
// reshards given the new number of shards
|
|
rpc Reshard(ReshardRequest) returns (ReshardReply);
|
|
// Reload config
|
|
rpc Reload(ReloadRequest) returns (ReloadReply);
|
|
// Gets status of a single shard
|
|
rpc GetStatus(GetStatusRequest) returns (GetStatusReply);
|
|
// Get status of all shards
|
|
rpc GetAllStatuses(GetAllStatusesRequest) returns (GetAllStatusesReply);
|
|
// Restarts all shards. Queues them to be restarted at a normal rate. Setting Nuke to true will kill all shards right
|
|
// away
|
|
rpc RestartAllShards(RestartAllRequest) returns (RestartAllReply);
|
|
|
|
// kill coordinator (and all shards as a consequence)
|
|
rpc Die(DieRequest) returns (DieReply);
|
|
|
|
rpc SetConfigText(SetConfigTextRequest) returns (SetConfigTextReply);
|
|
|
|
rpc GetConfigText(GetConfigTextRequest) returns (GetConfigTextReply);
|
|
}
|
|
|
|
enum ConnState {
|
|
Disconnected = 0;
|
|
Connecting = 1;
|
|
Connected = 2;
|
|
}
|
|
|
|
message HeartbeatRequest {
|
|
int32 shardId = 1;
|
|
int32 guildCount = 2;
|
|
ConnState state = 3;
|
|
}
|
|
|
|
message HeartbeatReply {
|
|
bool gracefulImminent = 1;
|
|
}
|
|
|
|
message RestartShardRequest {
|
|
int32 shardId = 1;
|
|
// should it be queued for restart, set false to kill it and restart immediately with priority
|
|
bool queue = 2;
|
|
}
|
|
|
|
message RestartShardReply {
|
|
|
|
}
|
|
|
|
message ReshardRequest {
|
|
int32 shards = 1;
|
|
}
|
|
|
|
message ReshardReply {
|
|
|
|
}
|
|
|
|
message ReloadRequest {
|
|
|
|
}
|
|
|
|
message ReloadReply {
|
|
|
|
}
|
|
|
|
message GetStatusRequest {
|
|
int32 shardId = 1;
|
|
}
|
|
|
|
message GetStatusReply {
|
|
int32 shardId = 1;
|
|
ConnState state = 2;
|
|
int32 guildCount = 3;
|
|
google.protobuf.Timestamp lastUpdate = 4;
|
|
bool scheduledForRestart = 5;
|
|
google.protobuf.Timestamp startedAt = 6;
|
|
}
|
|
|
|
message GetAllStatusesRequest {
|
|
|
|
}
|
|
|
|
message GetAllStatusesReply {
|
|
repeated GetStatusReply Statuses = 1;
|
|
}
|
|
|
|
message RestartAllRequest {
|
|
bool nuke = 1;
|
|
}
|
|
|
|
message RestartAllReply {
|
|
|
|
}
|
|
|
|
message DieRequest {
|
|
bool graceful = 1;
|
|
}
|
|
|
|
message DieReply {
|
|
|
|
}
|
|
|
|
message GetConfigTextRequest {
|
|
|
|
}
|
|
|
|
message GetConfigTextReply {
|
|
string configYml = 1;
|
|
}
|
|
|
|
message SetConfigTextRequest {
|
|
string configYml = 1;
|
|
}
|
|
|
|
message SetConfigTextReply {
|
|
bool success = 1;
|
|
string error = 2;
|
|
} |