Browse Source

refactor add wrapper function

Xiang Li 12 years ago
parent
commit
7565313290
3 changed files with 14 additions and 4 deletions
  1. 1 1
      server/peer_server.go
  2. 12 2
      server/registry.go
  3. 1 1
      server/server.go

+ 1 - 1
server/peer_server.go

@@ -115,7 +115,7 @@ func (s *PeerServer) ListenAndServe(snapshot bool, cluster []string) {
 
 
 	} else {
 	} else {
 		// Rejoin the previous cluster
 		// 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++ {
 		for i := 0; i < len(cluster); i++ {
 			u, err := url.Parse(cluster[i])
 			u, err := url.Parse(cluster[i])
 			if err != nil {
 			if err != nil {

+ 12 - 2
server/registry.go

@@ -111,8 +111,18 @@ func (r *Registry) peerURL(name string) (string, bool) {
 	return "", false
 	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()
 	r.Lock()
 	defer r.Unlock()
 	defer r.Unlock()
 
 

+ 1 - 1
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.
 // Handler to return all the known machines in the current cluster.
 func (s *Server) GetMachinesHandler(w http.ResponseWriter, req *http.Request) error {
 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.WriteHeader(http.StatusOK)
 	w.Write([]byte(strings.Join(machines, ", ")))
 	w.Write([]byte(strings.Join(machines, ", ")))
 	return nil
 	return nil