Selaa lähdekoodia

Merge pull request #3270 from xiang90/better_err

Better error message for etcdctl
Xiang Li 10 vuotta sitten
vanhempi
commit
f468d8b51a
3 muutettua tiedostoa jossa 7 lisäystä ja 2 poistoa
  1. 1 1
      client/client.go
  2. 5 0
      etcdctl/command/error.go
  3. 1 1
      etcdctl/command/util.go

+ 1 - 1
client/client.go

@@ -406,7 +406,7 @@ func (c *simpleHTTPClient) Do(ctx context.Context, act httpAction) (*http.Respon
 		case ctx.Err() != nil:
 			err = ctx.Err()
 		case hctx.Err() != nil:
-			err = fmt.Errorf("client: endpoint %s exceeded header timeout", c.endpoint)
+			err = fmt.Errorf("client: endpoint %s exceeded header timeout", c.endpoint.String())
 		default:
 			panic("failed to get error from context")
 		}

+ 5 - 0
etcdctl/command/error.go

@@ -17,6 +17,8 @@ package command
 import (
 	"fmt"
 	"os"
+
+	"github.com/coreos/etcd/client"
 )
 
 const (
@@ -29,5 +31,8 @@ const (
 
 func handleError(code int, err error) {
 	fmt.Fprintln(os.Stderr, "Error: ", err)
+	if cerr, ok := err.(*client.ClusterError); ok {
+		fmt.Fprintln(os.Stderr, cerr.Detail())
+	}
 	os.Exit(code)
 }

+ 1 - 1
etcdctl/command/util.go

@@ -215,7 +215,7 @@ func mustNewClient(c *cli.Context) client.Client {
 		err := hc.Sync(ctx)
 		cancel()
 		if err != nil {
-			fmt.Fprintln(os.Stderr, err.Error())
+			handleError(ExitServerError, err)
 			os.Exit(1)
 		}
 	}