|
|
@@ -245,8 +245,13 @@ func (c *httpClusterClient) Do(ctx context.Context, act httpAction) (*http.Respo
|
|
|
continue
|
|
|
}
|
|
|
if resp.StatusCode/100 == 5 {
|
|
|
- // TODO: make sure this is a no leader response
|
|
|
- cerr.Errors = append(cerr.Errors, fmt.Errorf("client: etcd member %s has no leader", eps[k].String()))
|
|
|
+ switch resp.StatusCode {
|
|
|
+ case http.StatusInternalServerError, http.StatusServiceUnavailable:
|
|
|
+ // TODO: make sure this is a no leader response
|
|
|
+ cerr.Errors = append(cerr.Errors, fmt.Errorf("client: etcd member %s has no leader", eps[k].String()))
|
|
|
+ default:
|
|
|
+ cerr.Errors = append(cerr.Errors, fmt.Errorf("client: etcd member %s returns server error [%s]", eps[k].String(), http.StatusText(resp.StatusCode)))
|
|
|
+ }
|
|
|
continue
|
|
|
}
|
|
|
if k != pinned {
|