From 7565313290edff9fc4b870b44bb7398df3e0f006 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Sun, 13 Oct 2013 22:20:23 -0700 Subject: [PATCH] refactor add wrapper function --- server/peer_server.go | 2 +- server/registry.go | 14 ++++++++++++-- server/server.go | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/server/peer_server.go b/server/peer_server.go index 4c77585f9..62ec06c41 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -115,7 +115,7 @@ func (s *PeerServer) ListenAndServe(snapshot bool, cluster []string) { } else { // Rejoin the previous cluster - cluster = s.registry.URLs(s.Leader(), s.name, s.registry.peerURL) + cluster = s.registry.PeerURLs(s.Leader(), s.name) for i := 0; i < len(cluster); i++ { u, err := url.Parse(cluster[i]) if err != nil { diff --git a/server/registry.go b/server/registry.go index 4b1310871..b9197436b 100644 --- a/server/registry.go +++ b/server/registry.go @@ -111,8 +111,18 @@ func (r *Registry) peerURL(name string) (string, bool) { return "", false } -// Retrieves the URLs for all nodes using url function. -func (r *Registry) URLs(leaderName, selfName string, url func(name string) (string, bool)) []string { +// Retrieves the Client URLs for all nodes. +func (r *Registry) ClientURLs(leaderName, selfName string) []string { + return r.urls(leaderName, selfName, r.clientURL) +} + +// Retrieves the Peer URLs for all nodes. +func (r *Registry) PeerURLs(leaderName, selfName string) []string { + return r.urls(leaderName, selfName, r.peerURL) +} + +// Retrieves the URLs for all nodes using url function. +func (r *Registry) urls(leaderName, selfName string, url func(name string) (string, bool)) []string { r.Lock() defer r.Unlock() diff --git a/server/server.go b/server/server.go index 9aae925e7..7f55c8a47 100644 --- a/server/server.go +++ b/server/server.go @@ -258,7 +258,7 @@ func (s *Server) GetLeaderHandler(w http.ResponseWriter, req *http.Request) erro // Handler to return all the known machines in the current cluster. func (s *Server) GetMachinesHandler(w http.ResponseWriter, req *http.Request) error { - machines := s.registry.URLs(s.peerServer.Leader(), s.name, s.registry.clientURL) + machines := s.registry.ClientURLs(s.peerServer.Leader(), s.name) w.WriteHeader(http.StatusOK) w.Write([]byte(strings.Join(machines, ", "))) return nil