From 1cad722a6db042e350f23b62883942d189d55139 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Fri, 22 Jul 2016 16:51:43 -0700 Subject: [PATCH] integration: support watch apis in cluster_proxy build --- integration/cluster_proxy.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/integration/cluster_proxy.go b/integration/cluster_proxy.go index 2c3f61cee..11c417a64 100644 --- a/integration/cluster_proxy.go +++ b/integration/cluster_proxy.go @@ -22,12 +22,17 @@ import ( "github.com/coreos/etcd/proxy/grpcproxy" ) +var proxies map[*clientv3.Client]grpcAPI = make(map[*clientv3.Client]grpcAPI) + func toGRPC(c *clientv3.Client) grpcAPI { + if v, ok := proxies[c]; ok { + return v + } return grpcAPI{ pb.NewClusterClient(c.ActiveConnection()), grpcproxy.KvServerToKvClient(grpcproxy.NewKvProxy(c)), pb.NewLeaseClient(c.ActiveConnection()), - pb.NewWatchClient(c.ActiveConnection()), + grpcproxy.WatchServerToWatchClient(grpcproxy.NewWatchProxy(c)), pb.NewMaintenanceClient(c.ActiveConnection()), } } @@ -37,6 +42,9 @@ func newClientV3(cfg clientv3.Config) (*clientv3.Client, error) { if err != nil { return nil, err } + + proxies[c] = toGRPC(c) c.KV = clientv3.NewKVFromKVClient(grpcproxy.KvServerToKvClient(grpcproxy.NewKvProxy(c))) + c.Watcher = clientv3.NewWatchFromWatchClient(grpcproxy.WatchServerToWatchClient(grpcproxy.NewWatchProxy(c))) return c, nil }