etcdserver: do not get local version via HTTP

This commit is contained in:
Xiang Li 2015-05-13 17:19:32 -07:00
parent 988c30bfba
commit 9f8342dba4
2 changed files with 6 additions and 2 deletions

View File

@ -113,10 +113,14 @@ func getRemotePeerURLs(cl Cluster, local string) []string {
// The key of the returned map is the member's ID. The value of the returned map
// is the semver versions string, including server and cluster.
// If it fails to get the version of a member, the key will be nil.
func getVersions(cl Cluster, tr *http.Transport) map[string]*version.Versions {
func getVersions(cl Cluster, local types.ID, tr *http.Transport) map[string]*version.Versions {
members := cl.Members()
vers := make(map[string]*version.Versions)
for _, m := range members {
if m.ID == local {
vers[m.ID.String()] = &version.Versions{Server: version.Version, Cluster: cl.Version().String()}
continue
}
ver, err := getVersion(m, tr)
if err != nil {
log.Printf("etcdserver: cannot get the version of member %s (%v)", m.ID, err)

View File

@ -942,7 +942,7 @@ func (s *EtcdServer) monitorVersions() {
continue
}
v := decideClusterVersion(getVersions(s.cluster, s.cfg.Transport))
v := decideClusterVersion(getVersions(s.cluster, s.id, s.cfg.Transport))
if v != nil {
// only keep major.minor version for comparasion
v = &semver.Version{