clientv3: use default client lease api

This commit is contained in:
Anthony Romano 2016-02-24 23:08:38 -08:00
parent 8f7d474a6b
commit f8c3fa637f
3 changed files with 13 additions and 34 deletions

View File

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

View File

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

View File

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