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
}
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
}

View File

@ -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)
}

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/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)
}