client: elevate context to caller of MembersAPI

This commit is contained in:
Brian Waldon
2014-10-31 13:59:25 -07:00
parent 913d102a81
commit f0760d6246
3 changed files with 31 additions and 27 deletions

View File

@@ -6,6 +6,7 @@ import (
"os"
"strings"
"github.com/coreos/etcd/Godeps/_workspace/src/code.google.com/p/go.net/context"
"github.com/coreos/etcd/Godeps/_workspace/src/github.com/codegangsta/cli"
"github.com/coreos/etcd/client"
)
@@ -49,13 +50,16 @@ func mustNewMembersAPI(c *cli.Context) client.MembersAPI {
}
if !c.GlobalBool("no-sync") {
if err := hc.Sync(); err != nil {
ctx, cancel := context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
err := hc.Sync(ctx)
cancel()
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
}
return client.NewMembersAPI(hc, client.DefaultRequestTimeout)
return client.NewMembersAPI(hc)
}
func actionMemberList(c *cli.Context) {
@@ -64,7 +68,9 @@ func actionMemberList(c *cli.Context) {
os.Exit(1)
}
mAPI := mustNewMembersAPI(c)
members, err := mAPI.List()
ctx, cancel := context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
members, err := mAPI.List(ctx)
cancel()
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
@@ -85,7 +91,9 @@ func actionMemberAdd(c *cli.Context) {
mAPI := mustNewMembersAPI(c)
url := args[1]
m, err := mAPI.Add(url)
ctx, cancel := context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
m, err := mAPI.Add(ctx, url)
cancel()
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
@@ -95,7 +103,9 @@ func actionMemberAdd(c *cli.Context) {
newName := args[0]
fmt.Printf("Added member named %s with ID %s to cluster\n", newName, newID)
members, err := mAPI.List()
ctx, cancel = context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
members, err := mAPI.List(ctx)
cancel()
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
@@ -127,7 +137,10 @@ func actionMemberRemove(c *cli.Context) {
mAPI := mustNewMembersAPI(c)
mID := args[0]
if err := mAPI.Remove(mID); err != nil {
ctx, cancel := context.WithTimeout(context.Background(), client.DefaultRequestTimeout)
err := mAPI.Remove(ctx, mID)
cancel()
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}