| 109 | } |
| 110 | |
| 111 | func OnlyNodeUpdates(resp *proto.CoordinateResponse) ([]*Node, error) { |
| 112 | nodes := make([]*Node, 0, len(resp.GetPeerUpdates())) |
| 113 | for _, pu := range resp.GetPeerUpdates() { |
| 114 | if pu.Kind != proto.CoordinateResponse_PeerUpdate_NODE { |
| 115 | continue |
| 116 | } |
| 117 | n, err := ProtoToNode(pu.Node) |
| 118 | if err != nil { |
| 119 | return nil, xerrors.Errorf("failed conversion from protobuf: %w", err) |
| 120 | } |
| 121 | nodes = append(nodes, n) |
| 122 | } |
| 123 | return nodes, nil |
| 124 | } |
| 125 | |
| 126 | func SingleNodeUpdate(id uuid.UUID, node *Node, reason string) (*proto.CoordinateResponse, error) { |
| 127 | p, err := NodeToProto(node) |