فهرست منبع

clientv3: use default client lease api

Anthony Romano 9 سال پیش
والد
کامیت
f8c3fa637f
3فایلهای تغییر یافته به همراه13 افزوده شده و 34 حذف شده
  1. 3 5
      clientv3/concurrency/session.go
  2. 7 19
      clientv3/example_lease_test.go
  3. 3 10
      etcdctlv3/command/lease_command.go

+ 3 - 5
clientv3/concurrency/session.go

@@ -49,15 +49,14 @@ func NewSession(client *v3.Client) (*Session, error) {
 		return s, nil
 	}
 
-	lc := v3.NewLease(client)
-	resp, err := lc.Create(context.TODO(), sessionTTL)
+	resp, err := client.Create(context.TODO(), sessionTTL)
 	if err != nil {
 		return nil, err
 	}
 	id := lease.LeaseID(resp.ID)
 
 	ctx, cancel := context.WithCancel(context.Background())
-	keepAlive, err := lc.KeepAlive(ctx, id)
+	keepAlive, err := client.KeepAlive(ctx, id)
 	if err != nil || keepAlive == nil {
 		return nil, err
 	}
@@ -72,7 +71,6 @@ func NewSession(client *v3.Client) (*Session, error) {
 			clientSessions.mu.Lock()
 			delete(clientSessions.sessions, client)
 			clientSessions.mu.Unlock()
-			lc.Close()
 			close(donec)
 		}()
 		for range keepAlive {
@@ -101,6 +99,6 @@ func (s *Session) Orphan() {
 // Close orphans the session and revokes the session lease.
 func (s *Session) Close() error {
 	s.Orphan()
-	_, err := v3.NewLease(s.client).Revoke(context.TODO(), s.id)
+	_, err := s.client.Revoke(context.TODO(), s.id)
 	return err
 }

+ 7 - 19
clientv3/example_lease_test.go

@@ -33,11 +33,8 @@ func ExampleLease_create() {
 	}
 	defer cli.Close()
 
-	lapi := clientv3.NewLease(cli)
-	defer lapi.Close()
-
 	// minimum lease TTL is 5-second
-	resp, err := lapi.Create(context.TODO(), 5)
+	resp, err := cli.Create(context.TODO(), 5)
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -59,10 +56,7 @@ func ExampleLease_revoke() {
 	}
 	defer cli.Close()
 
-	lapi := clientv3.NewLease(cli)
-	defer lapi.Close()
-
-	resp, err := lapi.Create(context.TODO(), 5)
+	resp, err := cli.Create(context.TODO(), 5)
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -73,7 +67,7 @@ func ExampleLease_revoke() {
 	}
 
 	// revoking lease expires the key attached to its lease ID
-	_, err = lapi.Revoke(context.TODO(), lease.LeaseID(resp.ID))
+	_, err = cli.Revoke(context.TODO(), lease.LeaseID(resp.ID))
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -96,10 +90,7 @@ func ExampleLease_keepAlive() {
 	}
 	defer cli.Close()
 
-	lapi := clientv3.NewLease(cli)
-	defer lapi.Close()
-
-	resp, err := lapi.Create(context.TODO(), 5)
+	resp, err := cli.Create(context.TODO(), 5)
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -110,7 +101,7 @@ func ExampleLease_keepAlive() {
 	}
 
 	// the key 'foo' will be kept forever
-	_, err = lapi.KeepAlive(context.TODO(), lease.LeaseID(resp.ID))
+	_, err = cli.KeepAlive(context.TODO(), lease.LeaseID(resp.ID))
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -126,10 +117,7 @@ func ExampleLease_keepAliveOnce() {
 	}
 	defer cli.Close()
 
-	lapi := clientv3.NewLease(cli)
-	defer lapi.Close()
-
-	resp, err := lapi.Create(context.TODO(), 5)
+	resp, err := cli.Create(context.TODO(), 5)
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -140,7 +128,7 @@ func ExampleLease_keepAliveOnce() {
 	}
 
 	// to renew the lease only once
-	_, err = lapi.KeepAliveOnce(context.TODO(), lease.LeaseID(resp.ID))
+	_, err = cli.KeepAliveOnce(context.TODO(), lease.LeaseID(resp.ID))
 	if err != nil {
 		log.Fatal(err)
 	}

+ 3 - 10
etcdctlv3/command/lease_command.go

@@ -21,7 +21,6 @@ import (
 
 	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/spf13/cobra"
 	"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
-	"github.com/coreos/etcd/clientv3"
 	"github.com/coreos/etcd/lease"
 )
 
@@ -62,9 +61,7 @@ func leaseCreateCommandFunc(cmd *cobra.Command, args []string) {
 		ExitWithError(ExitBadArgs, fmt.Errorf("bad TTL (%v)", err))
 	}
 
-	c := mustClientFromCmd(cmd)
-	l := clientv3.NewLease(c)
-	resp, err := l.Create(context.TODO(), ttl)
+	resp, err := mustClientFromCmd(cmd).Create(context.TODO(), ttl)
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "failed to create lease (%v)\n", err)
 		return
@@ -95,9 +92,7 @@ func leaseRevokeCommandFunc(cmd *cobra.Command, args []string) {
 		ExitWithError(ExitBadArgs, fmt.Errorf("bad lease ID arg (%v), expecting ID in Hex", err))
 	}
 
-	c := mustClientFromCmd(cmd)
-	l := clientv3.NewLease(c)
-	_, err = l.Revoke(context.TODO(), lease.LeaseID(id))
+	_, err = mustClientFromCmd(cmd).Revoke(context.TODO(), lease.LeaseID(id))
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "failed to revoke lease (%v)\n", err)
 		return
@@ -128,9 +123,7 @@ func leaseKeepAliveCommandFunc(cmd *cobra.Command, args []string) {
 		ExitWithError(ExitBadArgs, fmt.Errorf("bad lease ID arg (%v), expecting ID in Hex", err))
 	}
 
-	c := mustClientFromCmd(cmd)
-	l := clientv3.NewLease(c)
-	respc, kerr := l.KeepAlive(context.TODO(), lease.LeaseID(id))
+	respc, kerr := mustClientFromCmd(cmd).KeepAlive(context.TODO(), lease.LeaseID(id))
 	if kerr != nil {
 		ExitWithError(ExitBadConnection, kerr)
 	}