Browse Source

etcdctlv3: combine Watch, WatchPrefix

Gyu-Ho Lee 9 years ago
parent
commit
7a7751b994
2 changed files with 8 additions and 10 deletions
  1. 1 1
      etcdctlv3/command/snapshot_command.go
  2. 7 9
      etcdctlv3/command/watch_command.go

+ 1 - 1
etcdctlv3/command/snapshot_command.go

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

+ 7 - 9
etcdctlv3/command/watch_command.go

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