mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 16:24:19 -04:00
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:
@@ -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{}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user