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")
func init() {
plugin.Register("clouddns",
func(c *caddy.Controller) error {
f := func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) {
var err error
var client *gcp.Service
if opt != nil {
client, err = gcp.NewService(ctx, opt)
} else {
// if credentials file is not provided in the Corefile
// authenticate the client using env variables
client, err = gcp.NewService(ctx)
}
return gcpClient{client}, err
}
return setup(c, f)
},
)
func init() { plugin.Register("clouddns", setup) }
// exposed for testing
var f = func(ctx context.Context, opt option.ClientOption) (gcpDNS, error) {
var err error
var client *gcp.Service
if opt != nil {
client, err = gcp.NewService(ctx, opt)
} else {
// if credentials file is not provided in the Corefile
// authenticate the client using env variables
client, err = gcp.NewService(ctx)
}
return gcpClient{client}, err
}
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() {
keyPairs := map[string]struct{}{}
keys := map[string][]string{}

View File

@@ -9,7 +9,7 @@ import (
)
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
}
@@ -41,7 +41,7 @@ func TestSetupCloudDNS(t *testing.T) {
for _, test := range tests {
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)
}
}