check etcd servers by a random order
Kubernetes-commit: ea627f987507de38dfc46ab2d9c924690eba5ee9
This commit is contained in:
parent
13a30195c0
commit
dff0e6ac00
|
|
@ -18,6 +18,7 @@ package preflight
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"net/url"
|
||||
"time"
|
||||
|
|
@ -59,9 +60,11 @@ func parseServerURI(serverURI string) (*url.URL, error) {
|
|||
// CheckEtcdServers will attempt to reach all etcd servers once. If any
|
||||
// can be reached, return true.
|
||||
func (con EtcdConnection) CheckEtcdServers() (done bool, err error) {
|
||||
// Attempt to reach every Etcd server in order
|
||||
for _, serverURI := range con.ServerList {
|
||||
host, err := parseServerURI(serverURI)
|
||||
// Attempt to reach every Etcd server randomly.
|
||||
serverNumber := len(con.ServerList)
|
||||
serverPerms := rand.Perm(serverNumber)
|
||||
for _, index := range serverPerms {
|
||||
host, err := parseServerURI(con.ServerList[index])
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue