1package nomad
2
3import (
4	"fmt"
5
6	"github.com/hashicorp/serf/serf"
7)
8
9// serfMergeDelegate is used to handle a cluster merge on the gossip
10// ring. We check that the peers are nomad servers and abort the merge
11// otherwise.
12type serfMergeDelegate struct {
13}
14
15func (md *serfMergeDelegate) NotifyMerge(members []*serf.Member) error {
16	for _, m := range members {
17		ok, _ := isNomadServer(*m)
18		if !ok {
19			return fmt.Errorf("member '%s' is not a server", m.Name)
20		}
21	}
22	return nil
23}
24