resolver: rename Option to Options, leaving type aliases for now (#3175)

This commit is contained in:
Doug Fawley
2019-11-12 15:23:46 -08:00
committed by GitHub
parent dc9615bb06
commit 2cb07fcd90
19 changed files with 62 additions and 52 deletions

View File

@ -140,7 +140,7 @@ type ClientConn interface {
UpdateBalancerState(s connectivity.State, p Picker) UpdateBalancerState(s connectivity.State, p Picker)
// ResolveNow is called by balancer to notify gRPC to do a name resolving. // ResolveNow is called by balancer to notify gRPC to do a name resolving.
ResolveNow(resolver.ResolveNowOption) ResolveNow(resolver.ResolveNowOptions)
// Target returns the dial target for this ClientConn. // Target returns the dial target for this ClientConn.
// //

View File

@ -372,7 +372,7 @@ func (ccw *remoteBalancerCCWrapper) watchRemoteBalancer() {
} }
} }
// Trigger a re-resolve when the stream errors. // Trigger a re-resolve when the stream errors.
ccw.lb.cc.cc.ResolveNow(resolver.ResolveNowOption{}) ccw.lb.cc.cc.ResolveNow(resolver.ResolveNowOptions{})
ccw.lb.mu.Lock() ccw.lb.mu.Lock()
ccw.lb.remoteBalancerConnected = false ccw.lb.remoteBalancerConnected = false

View File

@ -871,7 +871,7 @@ func TestFallBackWithNoServerAddress(t *testing.T) {
resolveNowCh := make(chan struct{}, 1) resolveNowCh := make(chan struct{}, 1)
r, cleanup := manual.GenerateAndRegisterManualResolver() r, cleanup := manual.GenerateAndRegisterManualResolver()
r.ResolveNowCallback = func(resolver.ResolveNowOption) { r.ResolveNowCallback = func(resolver.ResolveNowOptions) {
select { select {
case <-resolveNowCh: case <-resolveNowCh:
default: default:

View File

@ -67,7 +67,7 @@ type lbManualResolver struct {
ccb balancer.ClientConn ccb balancer.ClientConn
} }
func (r *lbManualResolver) Build(_ resolver.Target, cc resolver.ClientConn, _ resolver.BuildOption) (resolver.Resolver, error) { func (r *lbManualResolver) Build(_ resolver.Target, cc resolver.ClientConn, _ resolver.BuildOptions) (resolver.Resolver, error) {
r.ccr = cc r.ccr = cc
return r, nil return r, nil
} }
@ -77,7 +77,7 @@ func (r *lbManualResolver) Scheme() string {
} }
// ResolveNow calls resolveNow on the parent ClientConn. // ResolveNow calls resolveNow on the parent ClientConn.
func (r *lbManualResolver) ResolveNow(o resolver.ResolveNowOption) { func (r *lbManualResolver) ResolveNow(o resolver.ResolveNowOptions) {
r.ccb.ResolveNow(o) r.ccb.ResolveNow(o)
} }

View File

@ -186,7 +186,7 @@ func (ccb *ccBalancerWrapper) UpdateBalancerState(s connectivity.State, p balanc
ccb.cc.csMgr.updateState(s) ccb.cc.csMgr.updateState(s)
} }
func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOption) { func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOptions) {
ccb.cc.resolveNow(o) ccb.cc.resolveNow(o)
} }

View File

@ -938,7 +938,7 @@ func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, addrs []r
} }
} }
func (cc *ClientConn) resolveNow(o resolver.ResolveNowOption) { func (cc *ClientConn) resolveNow(o resolver.ResolveNowOptions) {
cc.mu.RLock() cc.mu.RLock()
r := cc.resolverWrapper r := cc.resolverWrapper
cc.mu.RUnlock() cc.mu.RUnlock()
@ -1081,7 +1081,7 @@ func (ac *addrConn) adjustParams(r transport.GoAwayReason) {
func (ac *addrConn) resetTransport() { func (ac *addrConn) resetTransport() {
for i := 0; ; i++ { for i := 0; ; i++ {
if i > 0 { if i > 0 {
ac.cc.resolveNow(resolver.ResolveNowOption{}) ac.cc.resolveNow(resolver.ResolveNowOptions{})
} }
ac.mu.Lock() ac.mu.Lock()

View File

@ -92,7 +92,7 @@ func main() {
type exampleResolverBuilder struct{} type exampleResolverBuilder struct{}
func (*exampleResolverBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { func (*exampleResolverBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {
r := &exampleResolver{ r := &exampleResolver{
target: target, target: target,
cc: cc, cc: cc,
@ -119,8 +119,8 @@ func (r *exampleResolver) start() {
} }
r.cc.UpdateState(resolver.State{Addresses: addrs}) r.cc.UpdateState(resolver.State{Addresses: addrs})
} }
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOption) {} func (*exampleResolver) ResolveNow(o resolver.ResolveNowOptions) {}
func (*exampleResolver) Close() {} func (*exampleResolver) Close() {}
func init() { func init() {
resolver.Register(&exampleResolverBuilder{}) resolver.Register(&exampleResolverBuilder{})

View File

@ -98,7 +98,7 @@ func main() {
// ResolverBuilder(https://godoc.org/google.golang.org/grpc/resolver#Builder). // ResolverBuilder(https://godoc.org/google.golang.org/grpc/resolver#Builder).
type exampleResolverBuilder struct{} type exampleResolverBuilder struct{}
func (*exampleResolverBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { func (*exampleResolverBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {
r := &exampleResolver{ r := &exampleResolver{
target: target, target: target,
cc: cc, cc: cc,
@ -127,8 +127,8 @@ func (r *exampleResolver) start() {
} }
r.cc.UpdateState(resolver.State{Addresses: addrs}) r.cc.UpdateState(resolver.State{Addresses: addrs})
} }
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOption) {} func (*exampleResolver) ResolveNow(o resolver.ResolveNowOptions) {}
func (*exampleResolver) Close() {} func (*exampleResolver) Close() {}
func init() { func init() {
// Register the example ResolverBuilder. This is usually done in a package's // Register the example ResolverBuilder. This is usually done in a package's

View File

@ -108,7 +108,7 @@ type dnsBuilder struct {
} }
// Build creates and starts a DNS resolver that watches the name resolution of the target. // Build creates and starts a DNS resolver that watches the name resolution of the target.
func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {
host, port, err := parseTarget(target.Endpoint, defaultPort) host, port, err := parseTarget(target.Endpoint, defaultPort)
if err != nil { if err != nil {
return nil, err return nil, err
@ -181,7 +181,7 @@ type ipResolver struct {
} }
// ResolveNow resend the address it stores, no resolution is needed. // ResolveNow resend the address it stores, no resolution is needed.
func (i *ipResolver) ResolveNow(opt resolver.ResolveNowOption) { func (i *ipResolver) ResolveNow(opt resolver.ResolveNowOptions) {
select { select {
case i.rn <- struct{}{}: case i.rn <- struct{}{}:
default: default:
@ -229,7 +229,7 @@ type dnsResolver struct {
} }
// ResolveNow invoke an immediate resolution of the target that this dnsResolver watches. // ResolveNow invoke an immediate resolution of the target that this dnsResolver watches.
func (d *dnsResolver) ResolveNow(opt resolver.ResolveNowOption) { func (d *dnsResolver) ResolveNow(opt resolver.ResolveNowOptions) {
select { select {
case d.rn <- struct{}{}: case d.rn <- struct{}{}:
default: default:

View File

@ -730,7 +730,7 @@ func testDNSResolver(t *testing.T) {
for _, a := range tests { for _, a := range tests {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: a.target} cc := &testClientConn{target: a.target}
r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -820,7 +820,7 @@ func testDNSResolverWithSRV(t *testing.T) {
for _, a := range tests { for _, a := range tests {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: a.target} cc := &testClientConn{target: a.target}
r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -892,7 +892,7 @@ func testDNSResolveNow(t *testing.T) {
for _, a := range tests { for _, a := range tests {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: a.target} cc := &testClientConn{target: a.target}
r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -920,7 +920,7 @@ func testDNSResolveNow(t *testing.T) {
t.Errorf("Resolved service config of target: %q = %+v, want %+v\n", a.target, sc, a.scWant) t.Errorf("Resolved service config of target: %q = %+v, want %+v\n", a.target, sc, a.scWant)
} }
revertTbl := mutateTbl(a.target) revertTbl := mutateTbl(a.target)
r.ResolveNow(resolver.ResolveNowOption{}) r.ResolveNow(resolver.ResolveNowOptions{})
for { for {
addrs, cnt = cc.getAddress() addrs, cnt = cc.getAddress()
if cnt == 2 { if cnt == 2 {
@ -969,7 +969,7 @@ func testIPResolver(t *testing.T) {
for _, v := range tests { for _, v := range tests {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: v.target} cc := &testClientConn{target: v.target}
r, err := b.Build(resolver.Target{Endpoint: v.target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: v.target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -985,7 +985,7 @@ func testIPResolver(t *testing.T) {
if !reflect.DeepEqual(v.want, addrs) { if !reflect.DeepEqual(v.want, addrs) {
t.Errorf("Resolved addresses of target: %q = %+v, want %+v\n", v.target, addrs, v.want) t.Errorf("Resolved addresses of target: %q = %+v, want %+v\n", v.target, addrs, v.want)
} }
r.ResolveNow(resolver.ResolveNowOption{}) r.ResolveNow(resolver.ResolveNowOptions{})
for { for {
addrs, cnt = cc.getAddress() addrs, cnt = cc.getAddress()
if cnt == 2 { if cnt == 2 {
@ -1028,12 +1028,12 @@ func TestResolveFunc(t *testing.T) {
b := NewBuilder() b := NewBuilder()
for _, v := range tests { for _, v := range tests {
cc := &testClientConn{target: v.addr} cc := &testClientConn{target: v.addr}
r, err := b.Build(resolver.Target{Endpoint: v.addr}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: v.addr}, cc, resolver.BuildOptions{})
if err == nil { if err == nil {
r.Close() r.Close()
} }
if !reflect.DeepEqual(err, v.want) { if !reflect.DeepEqual(err, v.want) {
t.Errorf("Build(%q, cc, resolver.BuildOption{}) = %v, want %v", v.addr, err, v.want) t.Errorf("Build(%q, cc, resolver.BuildOptions{}) = %v, want %v", v.addr, err, v.want)
} }
} }
} }
@ -1060,7 +1060,7 @@ func TestDisableServiceConfig(t *testing.T) {
for _, a := range tests { for _, a := range tests {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: a.target} cc := &testClientConn{target: a.target}
r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOption{DisableServiceConfig: a.disableServiceConfig}) r, err := b.Build(resolver.Target{Endpoint: a.target}, cc, resolver.BuildOptions{DisableServiceConfig: a.disableServiceConfig})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -1084,7 +1084,7 @@ func TestDNSResolverRetry(t *testing.T) {
b := NewBuilder() b := NewBuilder()
target := "ipv4.single.fake" target := "ipv4.single.fake"
cc := &testClientConn{target: target} cc := &testClientConn{target: target}
r, err := b.Build(resolver.Target{Endpoint: target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("%v\n", err) t.Fatalf("%v\n", err)
} }
@ -1103,7 +1103,7 @@ func TestDNSResolverRetry(t *testing.T) {
// mutate the host lookup table so the target has 0 address returned. // mutate the host lookup table so the target has 0 address returned.
revertTbl := mutateTbl(target) revertTbl := mutateTbl(target)
// trigger a resolve that will get empty address list // trigger a resolve that will get empty address list
r.ResolveNow(resolver.ResolveNowOption{}) r.ResolveNow(resolver.ResolveNowOptions{})
for { for {
addrs, _ = cc.getAddress() addrs, _ = cc.getAddress()
if len(addrs) == 0 { if len(addrs) == 0 {
@ -1221,7 +1221,7 @@ func TestCustomAuthority(t *testing.T) {
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: "foo.bar.com"} cc := &testClientConn{target: "foo.bar.com"}
r, err := b.Build(resolver.Target{Endpoint: "foo.bar.com", Authority: a.authority}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: "foo.bar.com", Authority: a.authority}, cc, resolver.BuildOptions{})
if err == nil { if err == nil {
r.Close() r.Close()
@ -1259,7 +1259,7 @@ func TestRateLimitedResolve(t *testing.T) {
target := "foo.bar.com" target := "foo.bar.com"
b := NewBuilder() b := NewBuilder()
cc := &testClientConn{target: target} cc := &testClientConn{target: target}
r, err := b.Build(resolver.Target{Endpoint: target}, cc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{Endpoint: target}, cc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("resolver.Build() returned error: %v\n", err) t.Fatalf("resolver.Build() returned error: %v\n", err)
} }
@ -1292,7 +1292,7 @@ func TestRateLimitedResolve(t *testing.T) {
case <-done: case <-done:
return return
default: default:
r.ResolveNow(resolver.ResolveNowOption{}) r.ResolveNow(resolver.ResolveNowOptions{})
time.Sleep(1 * time.Millisecond) time.Sleep(1 * time.Millisecond)
} }
} }

View File

@ -26,7 +26,7 @@ const scheme = "passthrough"
type passthroughBuilder struct{} type passthroughBuilder struct{}
func (*passthroughBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { func (*passthroughBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {
r := &passthroughResolver{ r := &passthroughResolver{
target: target, target: target,
cc: cc, cc: cc,
@ -48,7 +48,7 @@ func (r *passthroughResolver) start() {
r.cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: r.target.Endpoint}}}) r.cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: r.target.Endpoint}}})
} }
func (*passthroughResolver) ResolveNow(o resolver.ResolveNowOption) {} func (*passthroughResolver) ResolveNow(o resolver.ResolveNowOptions) {}
func (*passthroughResolver) Close() {} func (*passthroughResolver) Close() {}

View File

@ -30,7 +30,7 @@ import (
// NewBuilderWithScheme creates a new test resolver builder with the given scheme. // NewBuilderWithScheme creates a new test resolver builder with the given scheme.
func NewBuilderWithScheme(scheme string) *Resolver { func NewBuilderWithScheme(scheme string) *Resolver {
return &Resolver{ return &Resolver{
ResolveNowCallback: func(resolver.ResolveNowOption) {}, ResolveNowCallback: func(resolver.ResolveNowOptions) {},
scheme: scheme, scheme: scheme,
} }
} }
@ -41,7 +41,7 @@ type Resolver struct {
// ResolveNowCallback is called when the ResolveNow method is called on the // ResolveNowCallback is called when the ResolveNow method is called on the
// resolver. Must not be nil. Must not be changed after the resolver may // resolver. Must not be nil. Must not be changed after the resolver may
// be built. // be built.
ResolveNowCallback func(resolver.ResolveNowOption) ResolveNowCallback func(resolver.ResolveNowOptions)
scheme string scheme string
// Fields actually belong to the resolver. // Fields actually belong to the resolver.
@ -56,7 +56,7 @@ func (r *Resolver) InitialState(s resolver.State) {
} }
// Build returns itself for Resolver, because it's both a builder and a resolver. // Build returns itself for Resolver, because it's both a builder and a resolver.
func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOption) (resolver.Resolver, error) { func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) {
r.CC = cc r.CC = cc
if r.bootstrapState != nil { if r.bootstrapState != nil {
r.UpdateState(*r.bootstrapState) r.UpdateState(*r.bootstrapState)
@ -70,7 +70,7 @@ func (r *Resolver) Scheme() string {
} }
// ResolveNow is a noop for Resolver. // ResolveNow is a noop for Resolver.
func (r *Resolver) ResolveNow(o resolver.ResolveNowOption) { func (r *Resolver) ResolveNow(o resolver.ResolveNowOptions) {
r.ResolveNowCallback(o) r.ResolveNowCallback(o)
} }

View File

@ -124,9 +124,14 @@ type Address struct {
Metadata interface{} Metadata interface{}
} }
// BuildOption includes additional information for the builder to create // BuildOption is a type alias of BuildOptions for legacy reasons.
//
// Deprecated: use BuildOptions instead.
type BuildOption = BuildOptions
// BuildOptions includes additional information for the builder to create
// the resolver. // the resolver.
type BuildOption struct { type BuildOptions struct {
// DisableServiceConfig indicates whether a resolver implementation should // DisableServiceConfig indicates whether a resolver implementation should
// fetch service config data. // fetch service config data.
DisableServiceConfig bool DisableServiceConfig bool
@ -224,14 +229,19 @@ type Builder interface {
// //
// gRPC dial calls Build synchronously, and fails if the returned error is // gRPC dial calls Build synchronously, and fails if the returned error is
// not nil. // not nil.
Build(target Target, cc ClientConn, opts BuildOption) (Resolver, error) Build(target Target, cc ClientConn, opts BuildOptions) (Resolver, error)
// Scheme returns the scheme supported by this resolver. // Scheme returns the scheme supported by this resolver.
// Scheme is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md. // Scheme is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md.
Scheme() string Scheme() string
} }
// ResolveNowOption includes additional information for ResolveNow. // ResolveNowOption is a type alias of ResolveNowOptions for legacy reasons.
type ResolveNowOption struct{} //
// Deprecated: use ResolveNowOptions instead.
type ResolveNowOption = ResolveNowOptions
// ResolveNowOptions includes additional information for ResolveNow.
type ResolveNowOptions struct{}
// Resolver watches for the updates on the specified target. // Resolver watches for the updates on the specified target.
// Updates include address updates and service config updates. // Updates include address updates and service config updates.
@ -240,7 +250,7 @@ type Resolver interface {
// again. It's just a hint, resolver can ignore this if it's not necessary. // again. It's just a hint, resolver can ignore this if it's not necessary.
// //
// It could be called multiple times concurrently. // It could be called multiple times concurrently.
ResolveNow(ResolveNowOption) ResolveNow(ResolveNowOptions)
// Close closes the resolver. // Close closes the resolver.
Close() Close()
} }

View File

@ -92,7 +92,7 @@ func newCCResolverWrapper(cc *ClientConn) (*ccResolverWrapper, error) {
if creds := cc.dopts.copts.TransportCredentials; creds != nil { if creds := cc.dopts.copts.TransportCredentials; creds != nil {
credsClone = creds.Clone() credsClone = creds.Clone()
} }
rbo := resolver.BuildOption{ rbo := resolver.BuildOptions{
DisableServiceConfig: cc.dopts.disableServiceConfig, DisableServiceConfig: cc.dopts.disableServiceConfig,
DialCreds: credsClone, DialCreds: credsClone,
CredsBundle: cc.dopts.copts.CredsBundle, CredsBundle: cc.dopts.copts.CredsBundle,
@ -113,7 +113,7 @@ func newCCResolverWrapper(cc *ClientConn) (*ccResolverWrapper, error) {
return ccr, nil return ccr, nil
} }
func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOption) { func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) {
ccr.resolverMu.Lock() ccr.resolverMu.Lock()
if !ccr.done.HasFired() { if !ccr.done.HasFired() {
ccr.resolver.ResolveNow(o) ccr.resolver.ResolveNow(o)
@ -149,7 +149,7 @@ func (ccr *ccResolverWrapper) poll(err error) {
ccr.polling = p ccr.polling = p
go func() { go func() {
for i := 0; ; i++ { for i := 0; ; i++ {
ccr.resolveNow(resolver.ResolveNowOption{}) ccr.resolveNow(resolver.ResolveNowOptions{})
t := time.NewTimer(ccr.cc.dopts.resolveNowBackoff(i)) t := time.NewTimer(ccr.cc.dopts.resolveNowBackoff(i))
select { select {
case <-p: case <-p:

View File

@ -133,7 +133,7 @@ func testResolverErrorPolling(t *testing.T, badUpdate func(*manual.Resolver), go
defer rcleanup() defer rcleanup()
rn := make(chan struct{}) rn := make(chan struct{})
defer func() { close(rn) }() defer func() { close(rn) }()
r.ResolveNowCallback = func(resolver.ResolveNowOption) { rn <- struct{}{} } r.ResolveNowCallback = func(resolver.ResolveNowOptions) { rn <- struct{}{} }
defaultDialOptions := []DialOption{ defaultDialOptions := []DialOption{
WithInsecure(), WithInsecure(),

View File

@ -123,7 +123,7 @@ func (tcc *testClientConn) UpdateBalancerState(s connectivity.State, p balancer.
tcc.newPickerCh <- p tcc.newPickerCh <- p
} }
func (tcc *testClientConn) ResolveNow(resolver.ResolveNowOption) { func (tcc *testClientConn) ResolveNow(resolver.ResolveNowOptions) {
panic("not implemented") panic("not implemented")
} }

View File

@ -168,7 +168,7 @@ func (t *testClientConn) NewSubConn(addrs []resolver.Address, opts balancer.NewS
func (testClientConn) RemoveSubConn(balancer.SubConn) {} func (testClientConn) RemoveSubConn(balancer.SubConn) {}
func (testClientConn) UpdateBalancerState(s connectivity.State, p balancer.Picker) {} func (testClientConn) UpdateBalancerState(s connectivity.State, p balancer.Picker) {}
func (testClientConn) ResolveNow(resolver.ResolveNowOption) {} func (testClientConn) ResolveNow(resolver.ResolveNowOptions) {}
func (testClientConn) Target() string { return testServiceName } func (testClientConn) Target() string { return testServiceName }
type scStateChange struct { type scStateChange struct {

View File

@ -59,7 +59,7 @@ func NewBuilder() resolver.Builder {
type xdsBuilder struct{} type xdsBuilder struct{}
// Build helps implement the resolver.Builder interface. // Build helps implement the resolver.Builder interface.
func (b *xdsBuilder) Build(t resolver.Target, cc resolver.ClientConn, o resolver.BuildOption) (resolver.Resolver, error) { func (b *xdsBuilder) Build(t resolver.Target, cc resolver.ClientConn, o resolver.BuildOptions) (resolver.Resolver, error) {
// The xds balancer must have been registered at this point for the service // The xds balancer must have been registered at this point for the service
// config to be parsed properly. // config to be parsed properly.
scpr := cc.ParseServiceConfig(jsonSC) scpr := cc.ParseServiceConfig(jsonSC)
@ -82,7 +82,7 @@ func (*xdsBuilder) Scheme() string {
type xdsResolver struct{} type xdsResolver struct{}
// ResolveNow is a no-op at this point. // ResolveNow is a no-op at this point.
func (*xdsResolver) ResolveNow(o resolver.ResolveNowOption) {} func (*xdsResolver) ResolveNow(o resolver.ResolveNowOptions) {}
// Close is a no-op at this point. // Close is a no-op at this point.
func (*xdsResolver) Close() {} func (*xdsResolver) Close() {}

View File

@ -87,7 +87,7 @@ func TestXDSRsolverSchemeAndAddresses(t *testing.T) {
} }
tcc := &testClientConn{done: make(chan struct{})} tcc := &testClientConn{done: make(chan struct{})}
r, err := b.Build(resolver.Target{}, tcc, resolver.BuildOption{}) r, err := b.Build(resolver.Target{}, tcc, resolver.BuildOptions{})
if err != nil { if err != nil {
t.Fatalf("xdsBuilder.Build() failed with error: %v", err) t.Fatalf("xdsBuilder.Build() failed with error: %v", err)
} }