mirror of https://github.com/grpc/grpc-go.git
balancer: remove Header from PickOptions; it is also available through context (#2674)
This commit is contained in:
parent
2d5c4dfb95
commit
3c84def893
|
|
@ -171,9 +171,6 @@ type PickOptions struct {
|
||||||
// FullMethodName is the method name that NewClientStream() is called
|
// FullMethodName is the method name that NewClientStream() is called
|
||||||
// with. The canonical format is /service/Method.
|
// with. The canonical format is /service/Method.
|
||||||
FullMethodName string
|
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.
|
// DoneInfo contains additional information for done.
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ import (
|
||||||
"google.golang.org/grpc/internal/grpcsync"
|
"google.golang.org/grpc/internal/grpcsync"
|
||||||
"google.golang.org/grpc/internal/transport"
|
"google.golang.org/grpc/internal/transport"
|
||||||
"google.golang.org/grpc/keepalive"
|
"google.golang.org/grpc/keepalive"
|
||||||
"google.golang.org/grpc/metadata"
|
|
||||||
"google.golang.org/grpc/resolver"
|
"google.golang.org/grpc/resolver"
|
||||||
_ "google.golang.org/grpc/resolver/dns" // To register dns resolver.
|
_ "google.golang.org/grpc/resolver/dns" // To register dns resolver.
|
||||||
_ "google.golang.org/grpc/resolver/passthrough" // To register passthrough 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) {
|
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{
|
t, done, err := cc.blockingpicker.pick(ctx, failfast, balancer.PickOptions{
|
||||||
FullMethodName: method,
|
FullMethodName: method,
|
||||||
Header: hdr,
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, toRPCErr(err)
|
return nil, nil, toRPCErr(err)
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ import (
|
||||||
"google.golang.org/grpc/connectivity"
|
"google.golang.org/grpc/connectivity"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
"google.golang.org/grpc/grpclog"
|
"google.golang.org/grpc/grpclog"
|
||||||
"google.golang.org/grpc/metadata"
|
|
||||||
"google.golang.org/grpc/resolver"
|
"google.golang.org/grpc/resolver"
|
||||||
testpb "google.golang.org/grpc/test/grpc_testing"
|
testpb "google.golang.org/grpc/test/grpc_testing"
|
||||||
"google.golang.org/grpc/testdata"
|
"google.golang.org/grpc/testdata"
|
||||||
|
|
@ -46,7 +45,6 @@ type testBalancer struct {
|
||||||
sc balancer.SubConn
|
sc balancer.SubConn
|
||||||
|
|
||||||
newSubConnOptions balancer.NewSubConnOptions
|
newSubConnOptions balancer.NewSubConnOptions
|
||||||
pickOptions []balancer.PickOptions
|
|
||||||
doneInfo []balancer.DoneInfo
|
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) {
|
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 {
|
if p.err != nil {
|
||||||
return nil, nil, p.err
|
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() {
|
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)
|
te := newTest(t, e)
|
||||||
b := &testBalancer{}
|
b := &testBalancer{}
|
||||||
balancer.Register(b)
|
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) {
|
if _, err := tc.EmptyCall(ctx, &testpb.Empty{}); !reflect.DeepEqual(err, wantErr) {
|
||||||
t.Fatalf("TestService/EmptyCall(_, _) = _, %v, want _, %v", 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 {
|
if _, err := tc.UnaryCall(ctx, &testpb.SimpleRequest{}); err != nil {
|
||||||
t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <nil>", ctx, err)
|
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) {
|
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)
|
t.Fatalf("b.doneInfo = %v; want b.doneInfo[0].Err = %v", b.doneInfo, wantErr)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue