1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package shell
- import (
- "context"
- "flag"
- "fmt"
- "github.com/seaweedfs/seaweedfs/weed/pb/master_pb"
- "io"
- )
- func init() {
- Commands = append(Commands, &commandRaftClusterPs{})
- }
- type commandRaftClusterPs struct {
- }
- func (c *commandRaftClusterPs) Name() string {
- return "cluster.raft.ps"
- }
- func (c *commandRaftClusterPs) Help() string {
- return `check current raft cluster status
- cluster.raft.ps
- `
- }
- func (c *commandRaftClusterPs) HasTag(CommandTag) bool {
- return false
- }
- func (c *commandRaftClusterPs) Do(args []string, commandEnv *CommandEnv, writer io.Writer) (err error) {
- raftClusterPsCommand := flag.NewFlagSet(c.Name(), flag.ContinueOnError)
- if err = raftClusterPsCommand.Parse(args); err != nil {
- return nil
- }
- err = commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error {
- resp, err := client.RaftListClusterServers(context.Background(), &master_pb.RaftListClusterServersRequest{})
- if err != nil {
- return fmt.Errorf("raft list cluster: %v", err)
- }
- fmt.Fprintf(writer, "the raft cluster has %d servers\n", len(resp.ClusterServers))
- for _, server := range resp.ClusterServers {
- suffrage := server.Suffrage
- if server.IsLeader {
- suffrage = "Leader"
- }
- fmt.Fprintf(writer, " * %s %s (%s)\n", server.Id, server.Address, suffrage)
- }
- return nil
- })
- return err
- }
|