fix registry.go: use the correct node name; self is already in the list

This commit is contained in:
Xiang Li 2013-10-13 15:25:07 -07:00
parent 55c1f45805
commit e954d3d41f

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"net/url" "net/url"
"path" "path"
"path/filepath"
"strings" "strings"
"sync" "sync"
@ -95,21 +96,19 @@ func (r *Registry) URLs(leaderName, selfName string) []string {
if url, _ := r.url(leaderName); len(url) > 0 { if url, _ := r.url(leaderName); len(url) > 0 {
urls = append(urls, url) urls = append(urls, url)
} }
if url, _ := r.url(selfName); len(url) > 0 {
urls = append(urls, url)
}
// Retrieve a list of all nodes. // Retrieve a list of all nodes.
if e, _ := r.store.Get(RegistryKey, false, false, 0, 0); e != nil { if e, _ := r.store.Get(RegistryKey, false, false, 0, 0); e != nil {
// Lookup the URL for each one. // Lookup the URL for each one.
for _, pair := range e.KVPairs { for _, pair := range e.KVPairs {
if url, _ := r.url(pair.Key); len(url) > 0 && pair.Key != leaderName && pair.Key != selfName { _, name := filepath.Split(pair.Key)
if url, _ := r.url(name); len(url) > 0 && name != leaderName {
urls = append(urls, url) urls = append(urls, url)
} }
} }
} }
log.Infof("URLs: %s / %s (%s", leaderName, selfName, strings.Join(urls, ",")) log.Infof("URLs: %s / %s (%s)", leaderName, selfName, strings.Join(urls, ","))
return urls return urls
} }
@ -143,21 +142,19 @@ func (r *Registry) PeerURLs(leaderName, selfName string) []string {
if url, _ := r.peerURL(leaderName); len(url) > 0 { if url, _ := r.peerURL(leaderName); len(url) > 0 {
urls = append(urls, url) urls = append(urls, url)
} }
if url, _ := r.peerURL(selfName); len(url) > 0 {
urls = append(urls, url)
}
// Retrieve a list of all nodes. // Retrieve a list of all nodes.
if e, _ := r.store.Get(RegistryKey, false, false, 0, 0); e != nil { if e, _ := r.store.Get(RegistryKey, false, false, 0, 0); e != nil {
// Lookup the URL for each one. // Lookup the URL for each one.
for _, pair := range e.KVPairs { for _, pair := range e.KVPairs {
if url, _ := r.peerURL(pair.Key); len(url) > 0 && pair.Key != leaderName && pair.Key != selfName { _, name := filepath.Split(pair.Key)
if url, _ := r.peerURL(name); len(url) > 0 && name != leaderName {
urls = append(urls, url) urls = append(urls, url)
} }
} }
} }
log.Infof("PeerURLs: %s / %s (%s", leaderName, selfName, strings.Join(urls, ",")) log.Infof("PeerURLs: %s / %s (%s)", leaderName, selfName, strings.Join(urls, ","))
return urls return urls
} }