memberStateUpdate handles a single node joining or leaving.
(p *peerNode, remove bool)
| 264 | |
| 265 | // memberStateUpdate handles a single node joining or leaving. |
| 266 | func (n *Node) memberStateUpdate(p *peerNode, remove bool) error { |
| 267 | if remove { |
| 268 | if _, exists := n.nodes[p.name]; !exists { |
| 269 | return fmt.Errorf("delete of non-existent peer %+v", p) |
| 270 | } |
| 271 | |
| 272 | n.logger.Printf("[INFO] onecache: removed peer node %v", p) |
| 273 | delete(n.nodes, p.name) |
| 274 | n.ring.remove(p.name) |
| 275 | return nil |
| 276 | } |
| 277 | |
| 278 | n.logger.Printf("[INFO] onecache: added peer node %v", p) |
| 279 | n.nodes[p.name] = p |
| 280 | n.ring.add(p.name) |
| 281 | return nil |
| 282 | } |
| 283 | |
| 284 | // buildPeerNode takes a serf member and returns a peerNode |
| 285 | func buildPeerNode(m serf.Member) (*peerNode, error) { |
no test coverage detected