Rename c.consuls to c.consulServers

Prep for breaking out maintenance of consuls into a new goroutine.
This commit is contained in:
Sean Chittenden 2016-02-18 15:24:40 -08:00
parent 74c8da079e
commit 72b7856045
1 changed files with 14 additions and 13 deletions

View File

@ -43,8 +43,8 @@ type Client struct {
// Connection pool to consul servers // Connection pool to consul servers
connPool *ConnPool connPool *ConnPool
// consuls tracks the locally known servers // consulServers tracks the locally known servers
consuls []*serverParts consulServers []*serverParts
consulLock sync.RWMutex consulLock sync.RWMutex
// eventCh is used to receive events from the // eventCh is used to receive events from the
@ -254,9 +254,9 @@ func (c *Client) nodeJoin(me serf.MemberEvent) {
// Check if this server is known // Check if this server is known
found := false found := false
c.consulLock.Lock() c.consulLock.Lock()
for idx, existing := range c.consuls { for idx, existing := range c.consulServers {
if existing.Name == parts.Name { if existing.Name == parts.Name {
c.consuls[idx] = parts c.consulServers[idx] = parts
found = true found = true
break break
} }
@ -264,7 +264,7 @@ func (c *Client) nodeJoin(me serf.MemberEvent) {
// Add to the list if not known // Add to the list if not known
if !found { if !found {
c.consuls = append(c.consuls, parts) c.consulServers = append(c.consulServers, parts)
} }
c.consulLock.Unlock() c.consulLock.Unlock()
@ -286,11 +286,11 @@ func (c *Client) nodeFail(me serf.MemberEvent) {
// Remove the server if known // Remove the server if known
c.consulLock.Lock() c.consulLock.Lock()
n := len(c.consuls) n := len(c.consulServers)
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
if c.consuls[i].Name == parts.Name { if c.consulServers[i].Name == parts.Name {
c.consuls[i], c.consuls[n-1] = c.consuls[n-1], nil c.consulServers[i], c.consulServers[n-1] = c.consulServers[n-1], nil
c.consuls = c.consuls[:n-1] c.consulServers = c.consulServers[:n-1]
break break
} }
} }
@ -339,13 +339,14 @@ func (c *Client) RPC(method string, args interface{}, reply interface{}) error {
// Bail if we can't find any servers // Bail if we can't find any servers
c.consulLock.RLock() c.consulLock.RLock()
if len(c.consuls) == 0 { numConsulServers = len(c.consulServers)
if numConsulServers == 0 {
c.consulLock.RUnlock() c.consulLock.RUnlock()
return structs.ErrNoServers return structs.ErrNoServers
} }
// Select a random addr // Select a random addr
server = c.consuls[rand.Int31()%int32(len(c.consuls))] server = c.consulServers[rand.Int31n(int32(numConsulServers))]
c.consulLock.RUnlock() c.consulLock.RUnlock()
// Forward to remote Consul // Forward to remote Consul
@ -371,7 +372,7 @@ func (c *Client) Stats() map[string]map[string]string {
stats := map[string]map[string]string{ stats := map[string]map[string]string{
"consul": map[string]string{ "consul": map[string]string{
"server": "false", "server": "false",
"known_servers": toString(uint64(len(c.consuls))), "known_servers": toString(uint64(len(c.consulServers))),
}, },
"serf_lan": c.serf.Stats(), "serf_lan": c.serf.Stats(),
"runtime": runtimeStats(), "runtime": runtimeStats(),