Sfoglia il codice sorgente

v3client: add example and godoc New

Anthony Romano 8 anni fa
parent
commit
01d1a579bc
2 ha cambiato i file con 32 aggiunte e 0 eliminazioni
  1. 29 0
      etcdserver/api/v3client/doc.go
  2. 3 0
      etcdserver/api/v3client/v3client.go

+ 29 - 0
etcdserver/api/v3client/doc.go

@@ -13,4 +13,33 @@
 // limitations under the License.
 
 // Package v3client provides clientv3 interfaces from an etcdserver.
+//
+// Use v3client by creating an EtcdServer instance, then wrapping it with v3client.New:
+//
+//	import (
+//		"context"
+//
+//		"github.com/coreos/etcd/embed"
+//		"github.com/coreos/etcd/etcdserver/api/v3client"
+//	)
+//
+//	...
+//
+//	// create an embedded EtcdServer from the default configuration
+//	cfg := embed.NewConfig()
+//	cfg.Dir = "default.etcd"
+//	e, err := embed.StartEtcd(cfg)
+//	if err != nil {
+//		// handle error!
+//	}
+//
+//	// wrap the EtcdServer with v3client
+//	cli := v3client.New(e)
+//
+//	// use like an ordinary clientv3
+//	resp, err := cli.Put(context.TODO(), "some-key", "it works!")
+//	if err != nil {
+//		// handle error!
+//	}
+//
 package v3client

+ 3 - 0
etcdserver/api/v3client/v3client.go

@@ -24,6 +24,9 @@ import (
 	"github.com/coreos/etcd/proxy/grpcproxy/adapter"
 )
 
+// New creates a clientv3 client that wraps an in-process EtcdServer. Instead
+// of making gRPC calls through sockets, the client makes direct function calls
+// to the etcd server through its api/v3rpc function interfaces.
 func New(s *etcdserver.EtcdServer) *clientv3.Client {
 	c := clientv3.NewCtxClient(context.Background())