From ae27b991b1777c2eb34086d45d44f45266b71375 Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Thu, 14 Apr 2016 23:44:23 -0700 Subject: [PATCH] *: add more examples to clientv3, pkg/adt --- clientv3/example_maintenence_test.go | 17 +++++++++++++ clientv3/example_watch_test.go | 26 +++++++++++++++++-- pkg/adt/example_test.go | 37 ++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 pkg/adt/example_test.go diff --git a/clientv3/example_maintenence_test.go b/clientv3/example_maintenence_test.go index 86c94c607..e7ce44ce3 100644 --- a/clientv3/example_maintenence_test.go +++ b/clientv3/example_maintenence_test.go @@ -49,3 +49,20 @@ func ExampleMaintenance_status() { // endpoint: localhost:22379 / IsLeader: false // endpoint: localhost:32379 / IsLeader: true } + +func ExampleMaintenance_defragment() { + for _, ep := range endpoints { + cli, err := clientv3.New(clientv3.Config{ + Endpoints: []string{ep}, + DialTimeout: dialTimeout, + }) + if err != nil { + log.Fatal(err) + } + defer cli.Close() + + if _, err = cli.Defragment(context.TODO(), ep); err != nil { + log.Fatal(err) + } + } +} diff --git a/clientv3/example_watch_test.go b/clientv3/example_watch_test.go index f38dc6ac2..4340941c5 100644 --- a/clientv3/example_watch_test.go +++ b/clientv3/example_watch_test.go @@ -41,7 +41,7 @@ func ExampleWatcher_watch() { // PUT "foo" : "bar" } -func ExampleWatcher_watchPrefix() { +func ExampleWatcher_watchWithPrefix() { cli, err := clientv3.New(clientv3.Config{ Endpoints: endpoints, DialTimeout: dialTimeout, @@ -60,7 +60,29 @@ func ExampleWatcher_watchPrefix() { // PUT "foo1" : "bar" } -func ExampleWatcher_watchProgressNotify() { +func ExampleWatcher_watchWithRange() { + cli, err := clientv3.New(clientv3.Config{ + Endpoints: endpoints, + DialTimeout: dialTimeout, + }) + if err != nil { + log.Fatal(err) + } + defer cli.Close() + + // watches within ['foo1', 'foo4'), in lexicographical order + rch := cli.Watch(context.Background(), "foo1", clientv3.WithRange("foo4")) + for wresp := range rch { + for _, ev := range wresp.Events { + fmt.Printf("%s %q : %q\n", ev.Type, ev.Kv.Key, ev.Kv.Value) + } + } + // PUT "foo1" : "bar" + // PUT "foo2" : "bar" + // PUT "foo3" : "bar" +} + +func ExampleWatcher_watchWithProgressNotify() { cli, err := clientv3.New(clientv3.Config{ Endpoints: endpoints, DialTimeout: dialTimeout, diff --git a/pkg/adt/example_test.go b/pkg/adt/example_test.go new file mode 100644 index 000000000..e23aae4ef --- /dev/null +++ b/pkg/adt/example_test.go @@ -0,0 +1,37 @@ +// Copyright 2016 CoreOS, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package adt_test + +import ( + "fmt" + + "github.com/coreos/etcd/pkg/adt" +) + +func Example() { + ivt := &adt.IntervalTree{} + + ivt.Insert(adt.NewInt64Interval(1, 3), 123) + ivt.Insert(adt.NewInt64Interval(9, 13), 456) + ivt.Insert(adt.NewInt64Interval(7, 20), 789) + + rs := ivt.Stab(adt.NewInt64Point(10)) + for _, v := range rs { + fmt.Printf("Overlapping range: %+v\n", v) + } + // output: + // Overlapping range: &{Ivl:{Begin:7 End:20} Val:789} + // Overlapping range: &{Ivl:{Begin:9 End:13} Val:456} +}