Move the redirect url perfer to volume server's PublicUrl

This commit is contained in:
yourchanges 2015-02-12 18:46:56 +08:00
parent 000c645d45
commit 7e0c080581

View file

@ -122,7 +122,11 @@ func (ms *MasterServer) redirectHandler(w http.ResponseWriter, r *http.Request)
} }
machines := ms.Topo.Lookup("", volumeId) machines := ms.Topo.Lookup("", volumeId)
if machines != nil && len(machines) > 0 { if machines != nil && len(machines) > 0 {
http.Redirect(w, r, "http://"+machines[0].Url()+r.URL.Path, http.StatusMovedPermanently) url := machines[0].PublicUrl
if url == "" {
url = machines[0].Url()
}
http.Redirect(w, r, "http://"+url+r.URL.Path, http.StatusMovedPermanently)
} else { } else {
writeJsonError(w, r, http.StatusNotFound, fmt.Errorf("volume id %d not found.", volumeId)) writeJsonError(w, r, http.StatusNotFound, fmt.Errorf("volume id %d not found.", volumeId))
} }