Skip to content

Commit

Permalink
add retries for ExpectedMembers;
Browse files Browse the repository at this point in the history
fail if len(expectedMembers) is 0
  • Loading branch information
matt-deboer committed Mar 19, 2017
1 parent 7221936 commit a313ccb
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
1 change: 1 addition & 0 deletions pkg/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,6 @@ func parseArgs(c *cli.Context) *discovery.Discovery {
ProxyMode: c.Bool("proxy"),
IgnoreNamingMismatch: c.Bool("ignore-naming-mismatch"),
MasterFilter: masterFilter,
MaxTries: 10,
}
}
39 changes: 26 additions & 13 deletions pkg/discovery/discovery.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,26 @@ func (d *Discovery) DiscoverEnvironment() (map[string]string, error) {
}

var expectedMembers []etcd.Member
if members, err := p.ExpectedMembers(d.MasterFilter, d.ClientScheme,
d.ClientPort, d.ServerScheme, d.ServerPort); err == nil {
for _, m := range members {
// have to cast here because of golang type-system--ugh!
expectedMembers = append(expectedMembers, etcd.Member(m))
for tries := 0; tries < d.MaxTries && len(expectedMembers) == 0; tries++ {
if members, err := p.ExpectedMembers(d.MasterFilter, d.ClientScheme,
d.ClientPort, d.ServerScheme, d.ServerPort); err == nil {
for _, m := range members {
// have to cast here because of golang type-system--ugh!
expectedMembers = append(expectedMembers, etcd.Member(m))
}
} else {
return nil, err
}
} else {
return nil, err
sleepTime := (2 * time.Second)
if log.GetLevel() >= log.DebugLevel {
log.Debugf("Failed to resolve expected members; sleeping for %s", sleepTime)
}
time.Sleep(sleepTime)
}
if log.GetLevel() >= log.DebugLevel {

if len(expectedMembers) == 0 {
log.Fatal("Failed to determine expected members")
} else if log.GetLevel() >= log.DebugLevel {
log.Debugf("Expected cluster members: %v#", expectedMembers)
}

Expand Down Expand Up @@ -160,12 +170,15 @@ func (d *Discovery) DiscoverEnvironment() (map[string]string, error) {
}

func initialClusterString(members []etcd.Member) string {
initialCluster := make([]string, 0, len(members))
for _, m := range members {
member := fmt.Sprintf("%s=%s", m.Name, m.PeerURLs[0])
initialCluster = append(initialCluster, member)
if len(members) > 0 {
initialCluster := make([]string, 0, len(members))
for _, m := range members {
member := fmt.Sprintf("%s=%s", m.Name, m.PeerURLs[0])
initialCluster = append(initialCluster, member)
}
return strings.Join(initialCluster, ",")
}
return strings.Join(initialCluster, ",")
return ""
}

// Check for mismatched names between expected and current members with
Expand Down

0 comments on commit a313ccb

Please sign in to comment.