// initSerf initializes serf and advertizes this nodes RPC port to other nodes. func (n *Node) initSerf(config *serf.Config) error { config.NodeName = n.name config.EventCh = n.eventCh // Advertize the RPC port tags := map[string]string{ externalRpcTag: strconv.Itoa(n.port), } config.Tags = tags // Start serf for discovery s, err := serf.Create(config) if err != nil { return err } n.serf = s return nil }
func testAgentWithConfig(t *testing.T, agentConfig *agent.Config, serfConfig *serf.Config) *agent.Agent { serfConfig.MemberlistConfig.BindAddr = testutil.GetBindAddr().String() serfConfig.MemberlistConfig.ProbeInterval = 50 * time.Millisecond serfConfig.MemberlistConfig.ProbeTimeout = 25 * time.Millisecond serfConfig.MemberlistConfig.SuspicionMult = 1 serfConfig.NodeName = serfConfig.MemberlistConfig.BindAddr serfConfig.Tags = map[string]string{"role": "test", "tag1": "foo", "tag2": "bar"} agent, err := agent.Create(agentConfig, serfConfig, nil) if err != nil { t.Fatalf("err: %s", err) } if err := agent.Start(); err != nil { t.Fatalf("err: %s", err) } return agent }