SetMembershipState updates the membership state to the given one.
(state *pb.MembershipState)
| 228 | |
| 229 | // SetMembershipState updates the membership state to the given one. |
| 230 | func (s *Server) SetMembershipState(state *pb.MembershipState) { |
| 231 | s.Lock() |
| 232 | defer s.Unlock() |
| 233 | |
| 234 | s.state = state |
| 235 | s.nextRaftId = x.Max(s.nextRaftId, s.state.MaxRaftId+1) |
| 236 | |
| 237 | if state.Zeros == nil { |
| 238 | state.Zeros = make(map[uint64]*pb.Member) |
| 239 | } |
| 240 | if state.Groups == nil { |
| 241 | state.Groups = make(map[uint32]*pb.Group) |
| 242 | } |
| 243 | |
| 244 | // Create connections to all members. |
| 245 | for _, g := range state.Groups { |
| 246 | for _, m := range g.Members { |
| 247 | conn.GetPools().Connect(m.Addr, s.tlsClientConfig) |
| 248 | } |
| 249 | |
| 250 | if g.Tablets == nil { |
| 251 | g.Tablets = make(map[string]*pb.Tablet) |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | s.nextGroup = uint32(len(state.Groups) + 1) |
| 256 | } |
| 257 | |
| 258 | // MarshalMembershipState returns the marshaled membership state. |
| 259 | func (s *Server) MarshalMembershipState() ([]byte, error) { |