etcdctl: add ttl flag for lock command

This commit is contained in:
Zhou
2017-08-05 13:06:46 +08:00
parent 366f5381e0
commit 9c21eefd09
2 changed files with 9 additions and 2 deletions

View File

@ -832,10 +832,14 @@ echo ${transferee_id}
## Concurrency commands ## Concurrency commands
### LOCK \<lockname\> [command arg1 arg2 ...] ### LOCK [options] \<lockname\> [command arg1 arg2 ...]
LOCK acquires a distributed named mutex with a given name. Once the lock is acquired, it will be held until etcdctl is terminated. LOCK acquires a distributed named mutex with a given name. Once the lock is acquired, it will be held until etcdctl is terminated.
#### Options
- ttl - time out in seconds of lock session.
#### Output #### Output
Once the lock is acquired, the result for the GET on the unique lock holder key is displayed. Once the lock is acquired, the result for the GET on the unique lock holder key is displayed.

View File

@ -28,6 +28,8 @@ import (
"golang.org/x/net/context" "golang.org/x/net/context"
) )
var lockTTL = 10
// NewLockCommand returns the cobra command for "lock". // NewLockCommand returns the cobra command for "lock".
func NewLockCommand() *cobra.Command { func NewLockCommand() *cobra.Command {
c := &cobra.Command{ c := &cobra.Command{
@ -35,6 +37,7 @@ func NewLockCommand() *cobra.Command {
Short: "Acquires a named lock", Short: "Acquires a named lock",
Run: lockCommandFunc, Run: lockCommandFunc,
} }
c.Flags().IntVarP(&lockTTL, "ttl", "", lockTTL, "timeout for session")
return c return c
} }
@ -49,7 +52,7 @@ func lockCommandFunc(cmd *cobra.Command, args []string) {
} }
func lockUntilSignal(c *clientv3.Client, lockname string, cmdArgs []string) error { func lockUntilSignal(c *clientv3.Client, lockname string, cmdArgs []string) error {
s, err := concurrency.NewSession(c) s, err := concurrency.NewSession(c, concurrency.WithTTL(lockTTL))
if err != nil { if err != nil {
return err return err
} }