Browse Source

etcdserver: panic when >1 members have the given name in MemberByName

Yicheng Qin 11 years ago
parent
commit
d47de988e4
1 changed files with 7 additions and 3 deletions
  1. 7 3
      etcdserver/cluster.go

+ 7 - 3
etcdserver/cluster.go

@@ -130,14 +130,18 @@ func (c *Cluster) Member(id uint64) *Member {
 }
 }
 
 
 // MemberByName returns a Member with the given name if exists.
 // MemberByName returns a Member with the given name if exists.
-// If more than one member has the given name, it will return one randomly.
+// If more than one member has the given name, it will panic.
 func (c *Cluster) MemberByName(name string) *Member {
 func (c *Cluster) MemberByName(name string) *Member {
+	var memb *Member
 	for _, m := range c.members {
 	for _, m := range c.members {
 		if m.Name == name {
 		if m.Name == name {
-			return m
+			if memb != nil {
+				panic("two members with the given name exist in the cluster")
+			}
+			memb = m
 		}
 		}
 	}
 	}
-	return nil
+	return memb
 }
 }
 
 
 func (c Cluster) MemberIDs() []uint64 {
 func (c Cluster) MemberIDs() []uint64 {