Skip to content

Commit

Permalink
Merge pull request #8342 from gyuho/ep-exit
Browse files Browse the repository at this point in the history
ctlv3: exit non-zero on unhealty ep command
  • Loading branch information
gyuho authored Jul 31, 2017
2 parents cd142a0 + 6603a77 commit 073fa56
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions etcdctl/ctlv3/command/ep_command.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,15 @@ func epHealthCommandFunc(cmd *cobra.Command, args []string) {
}

var wg sync.WaitGroup

errc := make(chan error, len(cfgs))
for _, cfg := range cfgs {
wg.Add(1)
go func(cfg *v3.Config) {
defer wg.Done()
ep := cfg.Endpoints[0]
cli, err := v3.New(*cfg)
if err != nil {
fmt.Printf("%s is unhealthy: failed to connect: %v\n", ep, err)
errc <- fmt.Errorf("%s is unhealthy: failed to connect: %v", ep, err)
return
}
st := time.Now()
Expand All @@ -102,12 +102,24 @@ func epHealthCommandFunc(cmd *cobra.Command, args []string) {
if err == nil || err == rpctypes.ErrPermissionDenied {
fmt.Printf("%s is healthy: successfully committed proposal: took = %v\n", ep, time.Since(st))
} else {
fmt.Printf("%s is unhealthy: failed to commit proposal: %v\n", ep, err)
errc <- fmt.Errorf("%s is unhealthy: failed to commit proposal: %v", ep, err)
}
}(cfg)
}

wg.Wait()
close(errc)

errs := false
for err := range errc {
if err != nil {
errs = true
fmt.Fprintln(os.Stderr, err)
}
}
if errs {
ExitWithError(ExitError, fmt.Errorf("unhealthy cluster"))
}
}

type epStatus struct {
Expand Down

0 comments on commit 073fa56

Please sign in to comment.