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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 62 additions and 52 deletions

View File

@ -140,7 +140,7 @@ type ClientConn interface {
UpdateBalancerState(s connectivity.State, p Picker)
// 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.
//

View File

@ -372,7 +372,7 @@ func (ccw *remoteBalancerCCWrapper) watchRemoteBalancer() {
}
}
// 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.remoteBalancerConnected = false

View File

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

View File

@ -67,7 +67,7 @@ type lbManualResolver struct {
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
return r, nil
}
@ -77,7 +77,7 @@ func (r *lbManualResolver) Scheme() string {
}
// 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)
}

View File

@ -186,7 +186,7 @@ func (ccb *ccBalancerWrapper) UpdateBalancerState(s connectivity.State, p balanc
ccb.cc.csMgr.updateState(s)
}
func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOption) {
func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOptions) {
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()
r := cc.resolverWrapper
cc.mu.RUnlock()
@ -1081,7 +1081,7 @@ func (ac *addrConn) adjustParams(r transport.GoAwayReason) {
func (ac *addrConn) resetTransport() {
for i := 0; ; i++ {
if i > 0 {
ac.cc.resolveNow(resolver.ResolveNowOption{})
ac.cc.resolveNow(resolver.ResolveNowOptions{})
}
ac.mu.Lock()

View File

@ -92,7 +92,7 @@ func main() {
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{
target: target,
cc: cc,
@ -119,8 +119,8 @@ func (r *exampleResolver) start() {
}
r.cc.UpdateState(resolver.State{Addresses: addrs})
}
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOption) {}
func (*exampleResolver) Close() {}
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOptions) {}
func (*exampleResolver) Close() {}
func init() {
resolver.Register(&exampleResolverBuilder{})

View File

@ -98,7 +98,7 @@ func main() {
// ResolverBuilder(https://godoc.org/google.golang.org/grpc/resolver#Builder).
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{
target: target,
cc: cc,
@ -127,8 +127,8 @@ func (r *exampleResolver) start() {
}
r.cc.UpdateState(resolver.State{Addresses: addrs})
}
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOption) {}
func (*exampleResolver) Close() {}
func (*exampleResolver) ResolveNow(o resolver.ResolveNowOptions) {}
func (*exampleResolver) Close() {}
func init() {
// 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.
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)
if err != nil {
return nil, err
@ -181,7 +181,7 @@ type ipResolver struct {
}
// 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 {
case i.rn <- struct{}{}:
default:
@ -229,7 +229,7 @@ type dnsResolver struct {
}
// 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 {
case d.rn <- struct{}{}:
default:

View File

@ -730,7 +730,7 @@ func testDNSResolver(t *testing.T) {
for _, a := range tests {
b := NewBuilder()
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 {
t.Fatalf("%v\n", err)
}
@ -820,7 +820,7 @@ func testDNSResolverWithSRV(t *testing.T) {
for _, a := range tests {
b := NewBuilder()
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 {
t.Fatalf("%v\n", err)
}
@ -892,7 +892,7 @@ func testDNSResolveNow(t *testing.T) {
for _, a := range tests {
b := NewBuilder()
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 {
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)
}
revertTbl := mutateTbl(a.target)
r.ResolveNow(resolver.ResolveNowOption{})
r.ResolveNow(resolver.ResolveNowOptions{})
for {
addrs, cnt = cc.getAddress()
if cnt == 2 {
@ -969,7 +969,7 @@ func testIPResolver(t *testing.T) {
for _, v := range tests {
b := NewBuilder()
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 {
t.Fatalf("%v\n", err)
}
@ -985,7 +985,7 @@ func testIPResolver(t *testing.T) {
if !reflect.DeepEqual(v.want, addrs) {
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 {
addrs, cnt = cc.getAddress()
if cnt == 2 {
@ -1028,12 +1028,12 @@ func TestResolveFunc(t *testing.T) {
b := NewBuilder()
for _, v := range tests {
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 {
r.Close()
}
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 {
b := NewBuilder()
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 {
t.Fatalf("%v\n", err)
}
@ -1084,7 +1084,7 @@ func TestDNSResolverRetry(t *testing.T) {
b := NewBuilder()
target := "ipv4.single.fake"
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 {
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.
revertTbl := mutateTbl(target)
// trigger a resolve that will get empty address list
r.ResolveNow(resolver.ResolveNowOption{})
r.ResolveNow(resolver.ResolveNowOptions{})
for {
addrs, _ = cc.getAddress()
if len(addrs) == 0 {
@ -1221,7 +1221,7 @@ func TestCustomAuthority(t *testing.T) {
b := NewBuilder()
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 {
r.Close()
@ -1259,7 +1259,7 @@ func TestRateLimitedResolve(t *testing.T) {
target := "foo.bar.com"
b := NewBuilder()
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 {
t.Fatalf("resolver.Build() returned error: %v\n", err)
}
@ -1292,7 +1292,7 @@ func TestRateLimitedResolve(t *testing.T) {
case <-done:
return
default:
r.ResolveNow(resolver.ResolveNowOption{})
r.ResolveNow(resolver.ResolveNowOptions{})
time.Sleep(1 * time.Millisecond)
}
}

View File

@ -26,7 +26,7 @@ const scheme = "passthrough"
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{
target: target,
cc: cc,
@ -48,7 +48,7 @@ func (r *passthroughResolver) start() {
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() {}

View File

@ -30,7 +30,7 @@ import (
// NewBuilderWithScheme creates a new test resolver builder with the given scheme.
func NewBuilderWithScheme(scheme string) *Resolver {
return &Resolver{
ResolveNowCallback: func(resolver.ResolveNowOption) {},
ResolveNowCallback: func(resolver.ResolveNowOptions) {},
scheme: scheme,
}
}
@ -41,7 +41,7 @@ type Resolver struct {
// ResolveNowCallback is called when the ResolveNow method is called on the
// resolver. Must not be nil. Must not be changed after the resolver may
// be built.
ResolveNowCallback func(resolver.ResolveNowOption)
ResolveNowCallback func(resolver.ResolveNowOptions)
scheme string
// 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.
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
if r.bootstrapState != nil {
r.UpdateState(*r.bootstrapState)
@ -70,7 +70,7 @@ func (r *Resolver) Scheme() string {
}
// ResolveNow is a noop for Resolver.
func (r *Resolver) ResolveNow(o resolver.ResolveNowOption) {
func (r *Resolver) ResolveNow(o resolver.ResolveNowOptions) {
r.ResolveNowCallback(o)
}

View File

@ -124,9 +124,14 @@ type Address struct {
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.
type BuildOption struct {
type BuildOptions struct {
// DisableServiceConfig indicates whether a resolver implementation should
// fetch service config data.
DisableServiceConfig bool
@ -224,14 +229,19 @@ type Builder interface {
//
// gRPC dial calls Build synchronously, and fails if the returned error is
// 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 is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md.
Scheme() string
}
// ResolveNowOption includes additional information for ResolveNow.
type ResolveNowOption struct{}
// ResolveNowOption is a type alias of ResolveNowOptions for legacy reasons.
//
// 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.
// 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.
//
// It could be called multiple times concurrently.
ResolveNow(ResolveNowOption)
ResolveNow(ResolveNowOptions)
// Close closes the resolver.
Close()
}

View File

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

View File

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

View File

@ -123,7 +123,7 @@ func (tcc *testClientConn) UpdateBalancerState(s connectivity.State, p balancer.
tcc.newPickerCh <- p
}
func (tcc *testClientConn) ResolveNow(resolver.ResolveNowOption) {
func (tcc *testClientConn) ResolveNow(resolver.ResolveNowOptions) {
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) UpdateBalancerState(s connectivity.State, p balancer.Picker) {}
func (testClientConn) ResolveNow(resolver.ResolveNowOption) {}
func (testClientConn) ResolveNow(resolver.ResolveNowOptions) {}
func (testClientConn) Target() string { return testServiceName }
type scStateChange struct {

View File

@ -59,7 +59,7 @@ func NewBuilder() resolver.Builder {
type xdsBuilder struct{}
// 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
// config to be parsed properly.
scpr := cc.ParseServiceConfig(jsonSC)
@ -82,7 +82,7 @@ func (*xdsBuilder) Scheme() string {
type xdsResolver struct{}
// 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.
func (*xdsResolver) Close() {}

View File

@ -87,7 +87,7 @@ func TestXDSRsolverSchemeAndAddresses(t *testing.T) {
}
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 {
t.Fatalf("xdsBuilder.Build() failed with error: %v", err)
}