etcdctlv3: combine Watch, WatchPrefix

This commit is contained in:
Gyu-Ho Lee 2016-02-23 17:59:19 -08:00
parent a24d276891
commit 7a7751b994
2 changed files with 8 additions and 10 deletions

View File

@ -54,7 +54,7 @@ func snapshotToStdout(c *clientv3.Client) {
// must explicitly fetch first revision since no retry on stdout // must explicitly fetch first revision since no retry on stdout
wapi := clientv3.NewWatcher(c) wapi := clientv3.NewWatcher(c)
defer wapi.Close() defer wapi.Close()
wr := <-wapi.WatchPrefix(context.TODO(), "", 1) wr := <-wapi.Watch(context.TODO(), "", clientv3.WithPrefix(), clientv3.WithRev(1))
if len(wr.Events) > 0 { if len(wr.Events) > 0 {
wr.CompactRevision = 1 wr.CompactRevision = 1
} }

View File

@ -60,12 +60,11 @@ func watchCommandFunc(cmd *cobra.Command, args []string) {
c := mustClientFromCmd(cmd) c := mustClientFromCmd(cmd)
w := clientv3.NewWatcher(c) w := clientv3.NewWatcher(c)
var wc clientv3.WatchChan opts := []clientv3.OpOption{clientv3.WithRev(watchRev)}
if !watchPrefix { if watchPrefix {
wc = w.Watch(context.TODO(), args[0], watchRev) opts = append(opts, clientv3.WithPrefix())
} else {
wc = w.Watch(context.TODO(), args[0], watchRev)
} }
wc := w.Watch(context.TODO(), args[0], opts...)
printWatchCh(wc) printWatchCh(wc)
err := w.Close() err := w.Close()
if err == nil { if err == nil {
@ -114,12 +113,11 @@ func watchInteractiveFunc(cmd *cobra.Command, args []string) {
if err != nil { if err != nil {
key = moreargs[0] key = moreargs[0]
} }
var ch clientv3.WatchChan opts := []clientv3.OpOption{clientv3.WithRev(watchRev)}
if watchPrefix { if watchPrefix {
ch = w.WatchPrefix(context.TODO(), key, watchRev) opts = append(opts, clientv3.WithPrefix())
} else {
ch = w.Watch(context.TODO(), key, watchRev)
} }
ch := w.Watch(context.TODO(), key, opts...)
go printWatchCh(ch) go printWatchCh(ch)
} }
} }