From 6c5199fc19bea4da025da8302cfdc43a113b7adb Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Wed, 8 Sep 2021 16:32:29 -0700 Subject: [PATCH] [ring_hash_policy_working] fixes not in ringhash folder --- xds/internal/balancer/clusterresolver/config.go | 6 ++++-- xds/internal/balancer/clusterresolver/config_test.go | 5 +++-- xds/internal/resolver/serviceconfig.go | 2 +- xds/internal/resolver/serviceconfig_test.go | 4 ++-- xds/internal/resolver/xds_resolver_test.go | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/xds/internal/balancer/clusterresolver/config.go b/xds/internal/balancer/clusterresolver/config.go index 33191fc7bd03..a6a3cbab8040 100644 --- a/xds/internal/balancer/clusterresolver/config.go +++ b/xds/internal/balancer/clusterresolver/config.go @@ -23,8 +23,10 @@ import ( "fmt" "strings" + "google.golang.org/grpc/balancer/roundrobin" internalserviceconfig "google.golang.org/grpc/internal/serviceconfig" "google.golang.org/grpc/serviceconfig" + "google.golang.org/grpc/xds/internal/balancer/ringhash" ) // DiscoveryMechanismType is the type of discovery mechanism. @@ -167,8 +169,8 @@ type LBConfig struct { } const ( - rrName = "ROUND_ROBIN" - rhName = "RING_HASH" + rrName = roundrobin.Name + rhName = ringhash.Name ) func parseConfig(c json.RawMessage) (*LBConfig, error) { diff --git a/xds/internal/balancer/clusterresolver/config_test.go b/xds/internal/balancer/clusterresolver/config_test.go index 17d5f409674f..796f8a493722 100644 --- a/xds/internal/balancer/clusterresolver/config_test.go +++ b/xds/internal/balancer/clusterresolver/config_test.go @@ -25,6 +25,7 @@ import ( "github.com/google/go-cmp/cmp" "google.golang.org/grpc/internal/balancer/stub" internalserviceconfig "google.golang.org/grpc/internal/serviceconfig" + "google.golang.org/grpc/xds/internal/balancer/ringhash" ) func TestDiscoveryMechanismTypeMarshalJSON(t *testing.T) { @@ -136,7 +137,7 @@ const ( "type": "EDS", "edsServiceName": "test-eds-service-name" }], - "xdsLbPolicy":[{"RING_HASH":{}}] + "xdsLbPolicy":[{"ring_hash_experimental":{}}] }` testJSONConfig5 = `{ "discoveryMechanisms": [{ @@ -234,7 +235,7 @@ func TestParseConfig(t *testing.T) { }, }, XDSLBPolicy: &internalserviceconfig.BalancerConfig{ - Name: "RING_HASH", + Name: ringhash.Name, Config: nil, }, }, diff --git a/xds/internal/resolver/serviceconfig.go b/xds/internal/resolver/serviceconfig.go index dceea49b3b60..ddf699f938b3 100644 --- a/xds/internal/resolver/serviceconfig.go +++ b/xds/internal/resolver/serviceconfig.go @@ -226,7 +226,7 @@ func (cs *configSelector) generateHash(rpcInfo iresolver.RPCInfo, hashPolicies [ var generatedPolicyHash bool switch policy.HashPolicyType { case xdsclient.HashPolicyTypeHeader: - md, ok := metadata.FromIncomingContext(rpcInfo.Context) + md, ok := metadata.FromOutgoingContext(rpcInfo.Context) if !ok { continue } diff --git a/xds/internal/resolver/serviceconfig_test.go b/xds/internal/resolver/serviceconfig_test.go index 568873ebbc71..a1a48944dc46 100644 --- a/xds/internal/resolver/serviceconfig_test.go +++ b/xds/internal/resolver/serviceconfig_test.go @@ -73,7 +73,7 @@ func (s) TestGenerateRequestHash(t *testing.T) { }}, requestHashWant: xxhash.Sum64String("/new-products"), rpcInfo: iresolver.RPCInfo{ - Context: metadata.NewIncomingContext(context.Background(), metadata.Pairs(":path", "/products")), + Context: metadata.NewOutgoingContext(context.Background(), metadata.Pairs(":path", "/products")), Method: "/some-method", }, }, @@ -101,7 +101,7 @@ func (s) TestGenerateRequestHash(t *testing.T) { }}, requestHashWant: xxhash.Sum64String("eaebece"), rpcInfo: iresolver.RPCInfo{ - Context: metadata.NewIncomingContext(context.Background(), metadata.Pairs(":path", "abc")), + Context: metadata.NewOutgoingContext(context.Background(), metadata.Pairs(":path", "abc")), Method: "/some-method", }, }, diff --git a/xds/internal/resolver/xds_resolver_test.go b/xds/internal/resolver/xds_resolver_test.go index 3b147e4ff207..90e6c1d4db05 100644 --- a/xds/internal/resolver/xds_resolver_test.go +++ b/xds/internal/resolver/xds_resolver_test.go @@ -510,7 +510,7 @@ func (s) TestXDSResolverRequestHash(t *testing.T) { } // Selecting a config when there was a hash policy specified in the route // that will be selected should put a request hash in the config's context. - res, err := cs.SelectConfig(iresolver.RPCInfo{Context: metadata.NewIncomingContext(context.Background(), metadata.Pairs(":path", "/products"))}) + res, err := cs.SelectConfig(iresolver.RPCInfo{Context: metadata.NewOutgoingContext(context.Background(), metadata.Pairs(":path", "/products"))}) if err != nil { t.Fatalf("Unexpected error from cs.SelectConfig(_): %v", err) }