join_command.go 557 B

12345678910111213141516171819202122232425262728
  1. package raft
  2. // Join command interface
  3. type JoinCommand interface {
  4. CommandName() string
  5. Apply(server *Server) (interface{}, error)
  6. NodeName() string
  7. }
  8. // Join command
  9. type DefaultJoinCommand struct {
  10. Name string `json:"name"`
  11. }
  12. // The name of the Join command in the log
  13. func (c *DefaultJoinCommand) CommandName() string {
  14. return "raft:join"
  15. }
  16. func (c *DefaultJoinCommand) Apply(server *Server) (interface{}, error) {
  17. err := server.AddPeer(c.Name)
  18. return []byte("join"), err
  19. }
  20. func (c *DefaultJoinCommand) NodeName() string {
  21. return c.Name
  22. }