func setMemberVoting(member *replicaset.Member, voting bool) { if voting { member.Votes = nil member.Priority = nil } else { votes := 0 member.Votes = &votes priority := 0.0 member.Priority = &priority } }
// mkMembers returns a slice of *replicaset.Member // based on the given description. // Each member in the description is white-space separated // and holds the decimal replica-set id optionally followed by the characters: // - 'v' if the member is voting. // - 'T' if the member has no associated machine tags. // Unless the T flag is specified, the machine tag // will be the replica-set id + 10. func mkMembers(description string, ipVersion testIPVersion) []replicaset.Member { descrs := parseDescr(description) ms := make([]replicaset.Member, len(descrs)) for i, d := range descrs { machineId := d.id + 10 m := replicaset.Member{ Id: d.id, Address: fmt.Sprintf(ipVersion.formatHostPort, machineId, mongoPort), Tags: memberTag(fmt.Sprint(machineId)), } if !strings.Contains(d.flags, "v") { m.Priority = newFloat64(0) m.Votes = newInt(0) } if strings.Contains(d.flags, "T") { m.Tags = nil } ms[i] = m } return ms }