balancer: remove Header from PickOptions; it is also available through context (#2674)
This commit is contained in:
Родитель
2d5c4dfb95
Коммит
3c84def893
|
@ -171,9 +171,6 @@ type PickOptions struct {
|
|||
// FullMethodName is the method name that NewClientStream() is called
|
||||
// with. The canonical format is /service/Method.
|
||||
FullMethodName string
|
||||
// Header contains the metadata from the RPC's client header. The metadata
|
||||
// should not be modified; make a copy first if needed.
|
||||
Header metadata.MD
|
||||
}
|
||||
|
||||
// DoneInfo contains additional information for done.
|
||||
|
|
|
@ -42,7 +42,6 @@ import (
|
|||
"google.golang.org/grpc/internal/grpcsync"
|
||||
"google.golang.org/grpc/internal/transport"
|
||||
"google.golang.org/grpc/keepalive"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/resolver"
|
||||
_ "google.golang.org/grpc/resolver/dns" // To register dns resolver.
|
||||
_ "google.golang.org/grpc/resolver/passthrough" // To register passthrough resolver.
|
||||
|
@ -747,10 +746,8 @@ func (cc *ClientConn) healthCheckConfig() *healthCheckConfig {
|
|||
}
|
||||
|
||||
func (cc *ClientConn) getTransport(ctx context.Context, failfast bool, method string) (transport.ClientTransport, func(balancer.DoneInfo), error) {
|
||||
hdr, _ := metadata.FromOutgoingContext(ctx)
|
||||
t, done, err := cc.blockingpicker.pick(ctx, failfast, balancer.PickOptions{
|
||||
FullMethodName: method,
|
||||
Header: hdr,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, nil, toRPCErr(err)
|
||||
|
|
|
@ -29,7 +29,6 @@ import (
|
|||
"google.golang.org/grpc/connectivity"
|
||||
"google.golang.org/grpc/credentials"
|
||||
"google.golang.org/grpc/grpclog"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/resolver"
|
||||
testpb "google.golang.org/grpc/test/grpc_testing"
|
||||
"google.golang.org/grpc/testdata"
|
||||
|
@ -46,7 +45,6 @@ type testBalancer struct {
|
|||
sc balancer.SubConn
|
||||
|
||||
newSubConnOptions balancer.NewSubConnOptions
|
||||
pickOptions []balancer.PickOptions
|
||||
doneInfo []balancer.DoneInfo
|
||||
}
|
||||
|
||||
|
@ -103,7 +101,6 @@ type picker struct {
|
|||
}
|
||||
|
||||
func (p *picker) Pick(ctx context.Context, opts balancer.PickOptions) (balancer.SubConn, func(balancer.DoneInfo), error) {
|
||||
p.bal.pickOptions = append(p.bal.pickOptions, opts)
|
||||
if p.err != nil {
|
||||
return nil, nil, p.err
|
||||
}
|
||||
|
@ -138,13 +135,13 @@ func (s) TestCredsBundleFromBalancer(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func (s) TestPickAndDone(t *testing.T) {
|
||||
func (s) TestDoneInfo(t *testing.T) {
|
||||
for _, e := range listTestEnv() {
|
||||
testPickAndDone(t, e)
|
||||
testDoneInfo(t, e)
|
||||
}
|
||||
}
|
||||
|
||||
func testPickAndDone(t *testing.T, e env) {
|
||||
func testDoneInfo(t *testing.T, e env) {
|
||||
te := newTest(t, e)
|
||||
b := &testBalancer{}
|
||||
balancer.Register(b)
|
||||
|
@ -164,20 +161,10 @@ func testPickAndDone(t *testing.T, e env) {
|
|||
if _, err := tc.EmptyCall(ctx, &testpb.Empty{}); !reflect.DeepEqual(err, wantErr) {
|
||||
t.Fatalf("TestService/EmptyCall(_, _) = _, %v, want _, %v", err, wantErr)
|
||||
}
|
||||
md := metadata.Pairs("testMDKey", "testMDVal")
|
||||
ctx = metadata.NewOutgoingContext(ctx, md)
|
||||
if _, err := tc.UnaryCall(ctx, &testpb.SimpleRequest{}); err != nil {
|
||||
t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <nil>", ctx, err)
|
||||
}
|
||||
|
||||
poWant := []balancer.PickOptions{
|
||||
{FullMethodName: "/grpc.testing.TestService/EmptyCall"},
|
||||
{FullMethodName: "/grpc.testing.TestService/UnaryCall", Header: md},
|
||||
}
|
||||
if !reflect.DeepEqual(b.pickOptions, poWant) {
|
||||
t.Fatalf("b.pickOptions = %v; want %v", b.pickOptions, poWant)
|
||||
}
|
||||
|
||||
if len(b.doneInfo) < 1 || !reflect.DeepEqual(b.doneInfo[0].Err, wantErr) {
|
||||
t.Fatalf("b.doneInfo = %v; want b.doneInfo[0].Err = %v", b.doneInfo, wantErr)
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче