plugin/clouddns: remove initialization from init (#3349)

* plugin/clouddns: remove initialization from init

Init should just call the plugin.Register with a setup function.

Fixes: #3343

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix placement for var f

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben
2019-10-02 23:18:36 +01:00
committed by Yong Tang
parent 0da2c0c366
commit 8fde7407d9
2 changed files with 17 additions and 21 deletions

View File

@@ -17,27 +17,23 @@ import (
var log = clog.NewWithPlugin("clouddns") var log = clog.NewWithPlugin("clouddns")
func init() { func init() { plugin.Register("clouddns", setup) }
plugin.Register("clouddns",
func(c *caddy.Controller) error { // exposed for testing
f := func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) { var f = func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) {
var err error var err error
var client *gcp.Service var client *gcp.Service
if opt != nil { if opt != nil {
client, err = gcp.NewService(ctx, opt) client, err = gcp.NewService(ctx, opt)
} else { } else {
// if credentials file is not provided in the Corefile // if credentials file is not provided in the Corefile
// authenticate the client using env variables // authenticate the client using env variables
client, err = gcp.NewService(ctx) client, err = gcp.NewService(ctx)
} }
return gcpClient{client}, err return gcpClient{client}, err
}
return setup(c, f)
},
)
} }
func setup(c *caddy.Controller, f func(ctx context.Context, opt option.ClientOption) (gcpDNS, error)) error { func setup(c *caddy.Controller) error {
for c.Next() { for c.Next() {
keyPairs := map[string]struct{}{} keyPairs := map[string]struct{}{}
keys := map[string][]string{} keys := map[string][]string{}

View File

@@ -9,7 +9,7 @@ import (
) )
func TestSetupCloudDNS(t *testing.T) { func TestSetupCloudDNS(t *testing.T) {
f := func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) { f = func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) {
return fakeGCPClient{}, nil return fakeGCPClient{}, nil
} }
@@ -41,7 +41,7 @@ func TestSetupCloudDNS(t *testing.T) {
for _, test := range tests { for _, test := range tests {
c := caddy.NewTestController("dns", test.body) c := caddy.NewTestController("dns", test.body)
if err := setup(c, f); (err == nil) == test.expectedError { if err := setup(c); (err == nil) == test.expectedError {
t.Errorf("Unexpected errors: %v", err) t.Errorf("Unexpected errors: %v", err)
} }
} }