// preferred nodes are nodes that are not on the same host as the local node func (j *joinSender) CollectPreferredNodes() []string { var preferredNodes []string for host, hostports := range j.bootstrapHostsMap { if host != util.CaptureHost(j.node.address) { preferredNodes = append(preferredNodes, hostports...) } } return preferredNodes }
// non-preferred nodes are everyone else func (j *joinSender) CollectNonPreferredNodes() []string { if len(j.preferredNodes) == 0 { return j.potentialNodes } var nonPreferredNodes []string for _, host := range j.bootstrapHostsMap[util.CaptureHost(j.node.address)] { if host != j.node.address { nonPreferredNodes = append(nonPreferredNodes, host) } } return nonPreferredNodes }
// parseHosts populates the bootstrap hosts map from the provided slice of // hostports. func (j *joinSender) parseHosts(hostports []string) { // Parse bootstrap hosts into a map j.bootstrapHostsMap = util.HostPortsByHost(hostports) // Perform some sanity checks on the bootstrap hosts err := util.CheckLocalMissing(j.node.address, j.bootstrapHostsMap[util.CaptureHost(j.node.address)]) if err != nil { j.logger.Warn(err.Error()) } mismatched, err := util.CheckHostnameIPMismatch(j.node.address, j.bootstrapHostsMap) if err != nil { j.logger.WithField("mismatched", mismatched).Warn(err.Error()) } }