diff --git a/client/v3/naming/endpoints/endpoints.go b/client/v3/naming/endpoints/endpoints.go index 322b6c2860b1..2497f0bb958b 100644 --- a/client/v3/naming/endpoints/endpoints.go +++ b/client/v3/naming/endpoints/endpoints.go @@ -28,13 +28,6 @@ type Endpoint struct { // Addr is the server address on which a connection will be established. // Since etcd 3.1 Addr string - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // Since etcd 3.1 - // - // Deprecated: The field is deprecated and will be removed in 3.7. - Metadata any } type Operation uint8 diff --git a/client/v3/naming/endpoints/endpoints_impl.go b/client/v3/naming/endpoints/endpoints_impl.go index 5193d9867516..a9ec72a02ab0 100644 --- a/client/v3/naming/endpoints/endpoints_impl.go +++ b/client/v3/naming/endpoints/endpoints_impl.go @@ -63,9 +63,8 @@ func (m *endpointManager) Update(ctx context.Context, updates []*UpdateWithOpts) switch update.Op { case Add: internalUpdate := &internal.Update{ - Op: internal.Add, - Addr: update.Endpoint.Addr, - Metadata: update.Endpoint.Metadata, + Op: internal.Add, + Addr: update.Endpoint.Addr, } var v []byte @@ -109,7 +108,7 @@ func (m *endpointManager) NewWatchChannel(ctx context.Context) (WatchChannel, er up := &Update{ Op: Add, Key: string(kv.Key), - Endpoint: Endpoint{Addr: iup.Addr, Metadata: iup.Metadata}, + Endpoint: Endpoint{Addr: iup.Addr}, } initUpdates = append(initUpdates, up) } @@ -162,7 +161,7 @@ func (m *endpointManager) watch(ctx context.Context, rev int64, upch chan []*Upd default: continue } - up := &Update{Op: op, Key: string(e.Kv.Key), Endpoint: Endpoint{Addr: iup.Addr, Metadata: iup.Metadata}} + up := &Update{Op: op, Key: string(e.Kv.Key), Endpoint: Endpoint{Addr: iup.Addr}} deltaUps = append(deltaUps, up) } if len(deltaUps) > 0 { @@ -186,7 +185,7 @@ func (m *endpointManager) List(ctx context.Context) (Key2EndpointMap, error) { continue } - eps[string(kv.Key)] = Endpoint{Addr: iup.Addr, Metadata: iup.Metadata} + eps[string(kv.Key)] = Endpoint{Addr: iup.Addr} } return eps, nil } diff --git a/client/v3/naming/resolver/resolver.go b/client/v3/naming/resolver/resolver.go index f8629aaaa2f0..1aca340561af 100644 --- a/client/v3/naming/resolver/resolver.go +++ b/client/v3/naming/resolver/resolver.go @@ -112,8 +112,7 @@ func convertToGRPCEndpoint(ups map[string]*endpoints.Update) []gresolver.Endpoin ep := gresolver.Endpoint{ Addresses: []gresolver.Address{ { - Addr: up.Endpoint.Addr, - Metadata: up.Endpoint.Metadata, + Addr: up.Endpoint.Addr, }, }, } diff --git a/server/proxy/grpcproxy/cluster.go b/server/proxy/grpcproxy/cluster.go index 35b6ce09a9d2..07acfb94b5ef 100644 --- a/server/proxy/grpcproxy/cluster.go +++ b/server/proxy/grpcproxy/cluster.go @@ -17,7 +17,6 @@ package grpcproxy import ( "context" "errors" - "fmt" "os" "sync" @@ -138,18 +137,14 @@ func (cp *clusterProxy) MemberUpdate(ctx context.Context, r *pb.MemberUpdateRequ return cp.clus.MemberUpdate(ctx, r) } -func (cp *clusterProxy) membersFromUpdates() ([]*pb.Member, error) { +func (cp *clusterProxy) membersFromUpdates() []*pb.Member { cp.umu.RLock() defer cp.umu.RUnlock() mbs := make([]*pb.Member, 0, len(cp.umap)) for _, upt := range cp.umap { - m, err := decodeMeta(fmt.Sprint(upt.Metadata)) - if err != nil { - return nil, err - } - mbs = append(mbs, &pb.Member{Name: m.Name, ClientURLs: []string{upt.Addr}}) + mbs = append(mbs, &pb.Member{Name: "", ClientURLs: []string{upt.Addr}}) } - return mbs, nil + return mbs } // MemberList wraps member list API with following rules: @@ -160,10 +155,7 @@ func (cp *clusterProxy) membersFromUpdates() ([]*pb.Member, error) { func (cp *clusterProxy) MemberList(ctx context.Context, r *pb.MemberListRequest) (*pb.MemberListResponse, error) { if cp.advaddr != "" { if cp.prefix != "" { - mbs, err := cp.membersFromUpdates() - if err != nil { - return nil, err - } + mbs := cp.membersFromUpdates() if len(mbs) > 0 { return &pb.MemberListResponse{Members: mbs}, nil } diff --git a/server/proxy/grpcproxy/register.go b/server/proxy/grpcproxy/register.go index bb860405a1d5..fd94475b20d7 100644 --- a/server/proxy/grpcproxy/register.go +++ b/server/proxy/grpcproxy/register.go @@ -15,9 +15,6 @@ package grpcproxy import ( - "encoding/json" - "os" - "go.uber.org/zap" "golang.org/x/time/rate" @@ -72,7 +69,7 @@ func registerSession(lg *zap.Logger, c *clientv3.Client, prefix string, addr str ss.Close() return nil, err } - endpoint := endpoints.Endpoint{Addr: addr, Metadata: getMeta()} + endpoint := endpoints.Endpoint{Addr: addr} if err = em.AddEndpoint(c.Ctx(), prefix+"/"+addr, endpoint, clientv3.WithLease(ss.Lease())); err != nil { ss.Close() return nil, err @@ -85,20 +82,3 @@ func registerSession(lg *zap.Logger, c *clientv3.Client, prefix string, addr str ) return ss, nil } - -// meta represents metadata of proxy register. -type meta struct { - Name string `json:"name"` -} - -func getMeta() string { - hostname, _ := os.Hostname() - bts, _ := json.Marshal(meta{Name: hostname}) - return string(bts) -} - -func decodeMeta(s string) (meta, error) { - m := meta{} - err := json.Unmarshal([]byte(s), &m) - return m, err -} diff --git a/tests/integration/clientv3/naming/endpoints_test.go b/tests/integration/clientv3/naming/endpoints_test.go index 229ae6f7dcbb..adb93899379a 100644 --- a/tests/integration/clientv3/naming/endpoints_test.go +++ b/tests/integration/clientv3/naming/endpoints_test.go @@ -43,7 +43,7 @@ func TestEndpointManager(t *testing.T) { t.Fatal("failed to establish watch", err) } - e1 := endpoints.Endpoint{Addr: "127.0.0.1", Metadata: "metadata"} + e1 := endpoints.Endpoint{Addr: "127.0.0.1"} err = em.AddEndpoint(t.Context(), "foo/a1", e1) if err != nil { t.Fatal("failed to add foo", err) @@ -130,14 +130,14 @@ func TestEndpointManagerCRUD(t *testing.T) { // Add k1 := "foo/a1" - e1 := endpoints.Endpoint{Addr: "127.0.0.1", Metadata: "metadata1"} + e1 := endpoints.Endpoint{Addr: "127.0.0.1"} err = em.AddEndpoint(t.Context(), k1, e1) if err != nil { t.Fatal("failed to add", k1, err) } k2 := "foo/a2" - e2 := endpoints.Endpoint{Addr: "127.0.0.2", Metadata: "metadata2"} + e2 := endpoints.Endpoint{Addr: "127.0.0.2"} err = em.AddEndpoint(t.Context(), k2, e2) if err != nil { t.Fatal("failed to add", k2, err) @@ -166,7 +166,7 @@ func TestEndpointManagerCRUD(t *testing.T) { // Update k3 := "foo/a3" - e3 := endpoints.Endpoint{Addr: "127.0.0.3", Metadata: "metadata3"} + e3 := endpoints.Endpoint{Addr: "127.0.0.3"} updates := []*endpoints.UpdateWithOpts{ {Update: endpoints.Update{Op: endpoints.Add, Key: k3, Endpoint: e3}}, {Update: endpoints.Update{Op: endpoints.Delete, Key: k2}}, diff --git a/tests/integration/proxy/grpcproxy/cluster_test.go b/tests/integration/proxy/grpcproxy/cluster_test.go index b7276c78f383..80d34d085980 100644 --- a/tests/integration/proxy/grpcproxy/cluster_test.go +++ b/tests/integration/proxy/grpcproxy/cluster_test.go @@ -16,7 +16,6 @@ package grpcproxy import ( "net" - "os" "testing" "time" @@ -42,7 +41,6 @@ func TestClusterProxyMemberList(t *testing.T) { lg := zaptest.NewLogger(t) serverEps := []string{clus.Members[0].GRPCURL} prefix := "test-prefix" - hostname, _ := os.Hostname() cts := newClusterProxyServer(lg, serverEps, prefix, t) defer cts.close(t) @@ -63,7 +61,7 @@ func TestClusterProxyMemberList(t *testing.T) { require.Lenf(t, mresp.Members, 1, "len(mresp.Members) expected 1, got %d (%+v)", len(mresp.Members), mresp.Members) require.Lenf(t, mresp.Members[0].ClientURLs, 1, "len(mresp.Members[0].ClientURLs) expected 1, got %d (%+v)", len(mresp.Members[0].ClientURLs), mresp.Members[0].ClientURLs[0]) - assert.Contains(t, mresp.Members, &pb.Member{Name: hostname, ClientURLs: []string{cts.caddr}}) + assert.Contains(t, mresp.Members, &pb.Member{Name: "", ClientURLs: []string{cts.caddr}}) // test proxy member add newMemberAddr := "127.0.0.2:6789" @@ -75,7 +73,7 @@ func TestClusterProxyMemberList(t *testing.T) { mresp, err = client.Cluster.MemberList(t.Context()) require.NoErrorf(t, err, "err %v, want nil", err) require.Lenf(t, mresp.Members, 2, "len(mresp.Members) expected 2, got %d (%+v)", len(mresp.Members), mresp.Members) - assert.Contains(t, mresp.Members, &pb.Member{Name: hostname, ClientURLs: []string{newMemberAddr}}) + assert.Contains(t, mresp.Members, &pb.Member{Name: "", ClientURLs: []string{newMemberAddr}}) // test proxy member delete deregisterMember(cts.c, prefix, newMemberAddr, t) @@ -86,7 +84,7 @@ func TestClusterProxyMemberList(t *testing.T) { mresp, err = client.Cluster.MemberList(t.Context()) require.NoErrorf(t, err, "err %v, want nil", err) require.Lenf(t, mresp.Members, 1, "len(mresp.Members) expected 1, got %d (%+v)", len(mresp.Members), mresp.Members) - assert.Contains(t, mresp.Members, &pb.Member{Name: hostname, ClientURLs: []string{cts.caddr}}) + assert.Contains(t, mresp.Members, &pb.Member{Name: "", ClientURLs: []string{cts.caddr}}) } type clusterproxyTestServer struct {