From c20d31adc586c38f3b981cdb6829d60b81b2f5c8 Mon Sep 17 00:00:00 2001 From: Kelvin Liang Date: Wed, 9 Nov 2016 15:30:17 -0400 Subject: [PATCH] clientv3/naming: support OpOption when adding an endpoint if we want to add an endpoint with lease, we need this option. for example: resp, err := cli.Grant(context.TODO(), 5) if err != nil { log.Fatal(err) } err = r.Update(context.TODO(), serviceName, naming.Update{Op:naming.Add, Addr: exposedAddr}, clientv3.WithLease(resp.ID)) if err != nil { log.Fatalf(err) } --- clientv3/naming/grpc.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clientv3/naming/grpc.go b/clientv3/naming/grpc.go index 0f9973a15..fa7a2aa3f 100644 --- a/clientv3/naming/grpc.go +++ b/clientv3/naming/grpc.go @@ -31,16 +31,16 @@ type GRPCResolver struct { Client *etcd.Client } -func (gr *GRPCResolver) Update(ctx context.Context, target string, nm naming.Update) (err error) { +func (gr *GRPCResolver) Update(ctx context.Context, target string, nm naming.Update, opts ...etcd.OpOption) (err error) { switch nm.Op { case naming.Add: var v []byte if v, err = json.Marshal(nm); err != nil { return grpc.Errorf(codes.InvalidArgument, err.Error()) } - _, err = gr.Client.KV.Put(ctx, target+"/"+nm.Addr, string(v)) + _, err = gr.Client.KV.Put(ctx, target+"/"+nm.Addr, string(v), opts...) case naming.Delete: - _, err = gr.Client.Delete(ctx, target+"/"+nm.Addr) + _, err = gr.Client.Delete(ctx, target+"/"+nm.Addr, opts...) default: return grpc.Errorf(codes.InvalidArgument, "naming: bad naming op") }