leaderless gossip-based service discovery w/ consul compatibility
5

Configure Feed

Select the types of activity you want to include in your feed.

gofmt

Jes Olson (Feb 17, 2023, 7:41 PM -0800) 42a80fae e32d6443

+18 -17
+8 -14
agent.go
··· 2 2 3 3 import ( 4 4 "log" 5 - "os" 6 5 "sync" 7 6 "time" 8 7 ··· 26 25 serf *serf.Serf 27 26 28 27 // this channel receiving a signal = shutdown 29 - shutdown bool 30 - shutdownCh chan struct{} 28 + shutdown bool 29 + shutdownCh chan struct{} 31 30 shutdownLock sync.Mutex 32 31 } 33 32 34 - func Create(conf *Config, serfConf *serf.Config) (*Agent) { 33 + func Create(conf *Config, serfConf *serf.Config) *Agent { 35 34 // Create a channel to listen for events from Serf 36 35 eventCh := make(chan serf.Event, 64) 37 36 serfConf.EventCh = eventCh 38 37 39 38 // Setup the agent 40 39 agent := &Agent{ 41 - conf: conf, 42 - serfConf: serfConf, 43 - eventCh: eventCh, 44 - shutdownCh: make(chan struct{}), 40 + conf: conf, 41 + serfConf: serfConf, 42 + eventCh: eventCh, 43 + shutdownCh: make(chan struct{}), 45 44 } 46 45 47 46 return agent 48 47 } 49 48 50 - // setupAgent calls Create 51 - func SetupAgent(config *Config) *Agent { 49 + func setupAgent(config *Config) *Agent { 52 50 bindIP, bindPort, err := config.AddrParts(config.BindAddr) 53 51 if err != nil { 54 52 log.Panic(err) 55 53 } 56 54 57 55 serfConfig := serf.DefaultConfig() 58 - if os.Getenv("CASCADE_BIND") != "" { 59 - config.BindAddr = os.Getenv("CASCADE_BIND") 60 - } 61 56 serfConfig.MemberlistConfig.BindAddr = bindIP 62 57 serfConfig.MemberlistConfig.BindPort = bindPort 63 58 serfConfig.MemberlistConfig.AdvertiseAddr = "" ··· 77 72 serfConfig.BroadcastTimeout = 0 78 73 // TODO: what are the implications of true here o_O 79 74 serfConfig.EnableNameConflictResolution = true 80 - 81 75 82 76 // hardcode DefaultWANConfig because cascade is designed to be 83 77 // used as a single global system.
+10 -3
main.go
··· 8 8 9 9 package main 10 10 11 - import "log" 11 + import ( 12 + "log" 13 + "os" 14 + ) 12 15 13 16 func main() { 17 + c := DefaultConfig() 18 + if os.Getenv("CASCADE_BIND") != "" { 19 + c.BindAddr = os.Getenv("CASCADE_BIND") 20 + } 14 21 // agent does everything tbh 15 - agent := SetupAgent(DefaultConfig()) 22 + agent := setupAgent(c) 16 23 log.Println(agent) 17 - // agent.Run() 24 + // agent.Run() 18 25 }