From 004c5fca9d7dfb8b58d608e4d50833b40953441f Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Fri, 20 Sep 2019 08:02:30 +0100 Subject: [PATCH] all: simply registering plugins (#3287) Abstract the caddy call and make it simpler. See #3261 for some part of the discussion. Go from: ~~~ go func init() { caddy.RegisterPlugin("any", caddy.Plugin{ ServerType: "dns", Action: setup, }) } ~~~ To: ~~~ go func init() { plugin.Register("any", setup) } ~~~ This requires some external documents in coredns.io to be updated as well; the old way still works, so it's backwards compatible. Signed-off-by: Miek Gieben --- plugin/acl/setup.go | 7 +------ plugin/any/setup.go | 7 +------ plugin/auto/setup.go | 7 +------ plugin/autopath/setup.go | 8 +------- plugin/azure/setup.go | 7 +------ plugin/cache/setup.go | 7 +------ plugin/chaos/setup.go | 8 +------- plugin/clouddns/setup.go | 7 +++---- plugin/deprecated/setup.go | 9 +++------ plugin/dnssec/setup.go | 7 +------ plugin/dnstap/setup.go | 7 +------ plugin/erratic/setup.go | 7 +------ plugin/errors/setup.go | 7 +------ plugin/etcd/setup.go | 7 +------ plugin/file/setup.go | 7 +------ plugin/forward/setup.go | 7 +------ plugin/grpc/setup.go | 7 +------ plugin/health/setup.go | 7 +------ plugin/hosts/setup.go | 7 +------ plugin/k8s_external/setup.go | 7 +------ plugin/kubernetes/setup.go | 7 +------ plugin/loadbalance/setup.go | 7 +------ plugin/log/setup.go | 7 +------ plugin/loop/setup.go | 7 +------ plugin/metadata/setup.go | 7 +------ plugin/metrics/setup.go | 7 +------ plugin/nsid/setup.go | 7 +------ plugin/pprof/setup.go | 7 +------ plugin/ready/setup.go | 7 +------ plugin/register.go | 11 +++++++++++ plugin/reload/setup.go | 7 +------ plugin/rewrite/setup.go | 7 +------ plugin/route53/setup.go | 7 +++---- plugin/secondary/setup.go | 7 +------ plugin/sign/setup.go | 7 +------ plugin/template/setup.go | 7 +------ plugin/trace/setup.go | 7 +------ plugin/whoami/setup.go | 7 +------ 38 files changed, 54 insertions(+), 220 deletions(-) create mode 100644 plugin/register.go diff --git a/plugin/acl/setup.go b/plugin/acl/setup.go index 1179175dd..749737714 100644 --- a/plugin/acl/setup.go +++ b/plugin/acl/setup.go @@ -13,12 +13,7 @@ import ( "github.com/miekg/dns" ) -func init() { - caddy.RegisterPlugin("acl", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("acl", setup) } func newDefaultFilter() *iptree.Tree { defaultFilter := iptree.NewTree() diff --git a/plugin/any/setup.go b/plugin/any/setup.go index f2d709e26..703b8e5d2 100644 --- a/plugin/any/setup.go +++ b/plugin/any/setup.go @@ -7,12 +7,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("any", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("any", setup) } func setup(c *caddy.Controller) error { a := Any{} diff --git a/plugin/auto/setup.go b/plugin/auto/setup.go index f62aa7168..e6495b192 100644 --- a/plugin/auto/setup.go +++ b/plugin/auto/setup.go @@ -18,12 +18,7 @@ import ( var log = clog.NewWithPlugin("auto") -func init() { - caddy.RegisterPlugin("auto", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("auto", setup) } func setup(c *caddy.Controller) error { a, err := autoParse(c) diff --git a/plugin/autopath/setup.go b/plugin/autopath/setup.go index 2f69a3eb2..94dde5953 100644 --- a/plugin/autopath/setup.go +++ b/plugin/autopath/setup.go @@ -11,13 +11,7 @@ import ( "github.com/miekg/dns" ) -func init() { - caddy.RegisterPlugin("autopath", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) - -} +func init() { plugin.Register("autopath", setup) } func setup(c *caddy.Controller) error { ap, mw, err := autoPathParse(c) diff --git a/plugin/azure/setup.go b/plugin/azure/setup.go index ef5711c00..15ebb7d6f 100644 --- a/plugin/azure/setup.go +++ b/plugin/azure/setup.go @@ -17,12 +17,7 @@ import ( var log = clog.NewWithPlugin("azure") -func init() { - caddy.RegisterPlugin("azure", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("azure", setup) } func setup(c *caddy.Controller) error { env, keys, fall, err := parse(c) diff --git a/plugin/cache/setup.go b/plugin/cache/setup.go index 3bffe8581..e4ca494db 100644 --- a/plugin/cache/setup.go +++ b/plugin/cache/setup.go @@ -16,12 +16,7 @@ import ( var log = clog.NewWithPlugin("cache") -func init() { - caddy.RegisterPlugin("cache", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("cache", setup) } func setup(c *caddy.Controller) error { ca, err := cacheParse(c) diff --git a/plugin/chaos/setup.go b/plugin/chaos/setup.go index 33eba8a50..42ce76b4f 100644 --- a/plugin/chaos/setup.go +++ b/plugin/chaos/setup.go @@ -11,13 +11,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("chaos", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) - -} +func init() { plugin.Register("chaos", setup) } func setup(c *caddy.Controller) error { version, authors, err := parse(c) diff --git a/plugin/clouddns/setup.go b/plugin/clouddns/setup.go index 732c240f7..35c7e9179 100644 --- a/plugin/clouddns/setup.go +++ b/plugin/clouddns/setup.go @@ -18,9 +18,8 @@ import ( var log = clog.NewWithPlugin("clouddns") func init() { - caddy.RegisterPlugin("clouddns", caddy.Plugin{ - ServerType: "dns", - Action: func(c *caddy.Controller) error { + 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 @@ -35,7 +34,7 @@ func init() { } return setup(c, f) }, - }) + ) } func setup(c *caddy.Controller, f func(ctx context.Context, opt option.ClientOption) (gcpDNS, error)) error { diff --git a/plugin/deprecated/setup.go b/plugin/deprecated/setup.go index 36c13bdb6..782f36f04 100644 --- a/plugin/deprecated/setup.go +++ b/plugin/deprecated/setup.go @@ -20,7 +20,7 @@ import ( ) // removed has the names of the plugins that need to error on startup. -var removed = []string{"reverse"} +var removed = []string{""} func setup(c *caddy.Controller) error { c.Next() @@ -29,10 +29,7 @@ func setup(c *caddy.Controller) error { } func init() { - for _, plugin := range removed { - caddy.RegisterPlugin(plugin, caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) + for _, plug := range removed { + plugin.Register(plug, setup) } } diff --git a/plugin/dnssec/setup.go b/plugin/dnssec/setup.go index 54a2390fd..f410fb8b5 100644 --- a/plugin/dnssec/setup.go +++ b/plugin/dnssec/setup.go @@ -17,12 +17,7 @@ import ( var log = clog.NewWithPlugin("dnssec") -func init() { - caddy.RegisterPlugin("dnssec", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("dnssec", setup) } func setup(c *caddy.Controller) error { zones, keys, capacity, splitkeys, err := dnssecParse(c) diff --git a/plugin/dnstap/setup.go b/plugin/dnstap/setup.go index c9595ec73..5baec5c6e 100644 --- a/plugin/dnstap/setup.go +++ b/plugin/dnstap/setup.go @@ -15,12 +15,7 @@ import ( var log = clog.NewWithPlugin("dnstap") -func init() { - caddy.RegisterPlugin("dnstap", caddy.Plugin{ - ServerType: "dns", - Action: wrapSetup, - }) -} +func init() { plugin.Register("dnstap", wrapSetup) } func wrapSetup(c *caddy.Controller) error { if err := setup(c); err != nil { diff --git a/plugin/erratic/setup.go b/plugin/erratic/setup.go index 98ac4f0c2..1cc6e048d 100644 --- a/plugin/erratic/setup.go +++ b/plugin/erratic/setup.go @@ -11,12 +11,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("erratic", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("erratic", setup) } func setup(c *caddy.Controller) error { e, err := parseErratic(c) diff --git a/plugin/errors/setup.go b/plugin/errors/setup.go index a196d220f..283f3dd15 100644 --- a/plugin/errors/setup.go +++ b/plugin/errors/setup.go @@ -10,12 +10,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("errors", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("errors", setup) } func setup(c *caddy.Controller) error { handler, err := errorsParse(c) diff --git a/plugin/etcd/setup.go b/plugin/etcd/setup.go index d7827c875..c2916de51 100644 --- a/plugin/etcd/setup.go +++ b/plugin/etcd/setup.go @@ -15,12 +15,7 @@ import ( var log = clog.NewWithPlugin("etcd") -func init() { - caddy.RegisterPlugin("etcd", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("etcd", setup) } func setup(c *caddy.Controller) error { e, err := etcdParse(c) diff --git a/plugin/file/setup.go b/plugin/file/setup.go index ce78e815e..44ecf2ca1 100644 --- a/plugin/file/setup.go +++ b/plugin/file/setup.go @@ -13,12 +13,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("file", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("file", setup) } func setup(c *caddy.Controller) error { zones, err := fileParse(c) diff --git a/plugin/forward/setup.go b/plugin/forward/setup.go index d084d6118..60ec08fa3 100644 --- a/plugin/forward/setup.go +++ b/plugin/forward/setup.go @@ -16,12 +16,7 @@ import ( "github.com/caddyserver/caddy/caddyfile" ) -func init() { - caddy.RegisterPlugin("forward", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("forward", setup) } func setup(c *caddy.Controller) error { f, err := parseForward(c) diff --git a/plugin/grpc/setup.go b/plugin/grpc/setup.go index aecef9d83..5c0c9a452 100644 --- a/plugin/grpc/setup.go +++ b/plugin/grpc/setup.go @@ -14,12 +14,7 @@ import ( "github.com/caddyserver/caddy/caddyfile" ) -func init() { - caddy.RegisterPlugin("grpc", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("grpc", setup) } func setup(c *caddy.Controller) error { g, err := parseGRPC(c) diff --git a/plugin/health/setup.go b/plugin/health/setup.go index 75e35d8e6..1f72cb245 100644 --- a/plugin/health/setup.go +++ b/plugin/health/setup.go @@ -11,12 +11,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("health", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("health", setup) } func setup(c *caddy.Controller) error { addr, lame, err := parse(c) diff --git a/plugin/hosts/setup.go b/plugin/hosts/setup.go index be95a547f..09f030842 100644 --- a/plugin/hosts/setup.go +++ b/plugin/hosts/setup.go @@ -17,12 +17,7 @@ import ( var log = clog.NewWithPlugin("hosts") -func init() { - caddy.RegisterPlugin("hosts", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("hosts", setup) } func periodicHostsUpdate(h *Hosts) chan bool { parseChan := make(chan bool) diff --git a/plugin/k8s_external/setup.go b/plugin/k8s_external/setup.go index ed645c0c8..5c2dce0b2 100644 --- a/plugin/k8s_external/setup.go +++ b/plugin/k8s_external/setup.go @@ -9,12 +9,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("k8s_external", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("k8s_external", setup) } func setup(c *caddy.Controller) error { e, err := parse(c) diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go index 1309139d7..63d85fee9 100644 --- a/plugin/kubernetes/setup.go +++ b/plugin/kubernetes/setup.go @@ -34,12 +34,7 @@ import ( var log = clog.NewWithPlugin("kubernetes") -func init() { - caddy.RegisterPlugin("kubernetes", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("kubernetes", setup) } func setup(c *caddy.Controller) error { klog.SetOutput(os.Stdout) diff --git a/plugin/loadbalance/setup.go b/plugin/loadbalance/setup.go index c31fc15e1..4c5a6bfd8 100644 --- a/plugin/loadbalance/setup.go +++ b/plugin/loadbalance/setup.go @@ -12,12 +12,7 @@ import ( var log = clog.NewWithPlugin("loadbalance") -func init() { - caddy.RegisterPlugin("loadbalance", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("loadbalance", setup) } func setup(c *caddy.Controller) error { err := parse(c) diff --git a/plugin/log/setup.go b/plugin/log/setup.go index 2e89d1f81..f9441bf92 100644 --- a/plugin/log/setup.go +++ b/plugin/log/setup.go @@ -12,12 +12,7 @@ import ( "github.com/miekg/dns" ) -func init() { - caddy.RegisterPlugin("log", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("log", setup) } func setup(c *caddy.Controller) error { rules, err := logParse(c) diff --git a/plugin/loop/setup.go b/plugin/loop/setup.go index 30f1a2527..3cf4861ac 100644 --- a/plugin/loop/setup.go +++ b/plugin/loop/setup.go @@ -13,12 +13,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("loop", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("loop", setup) } func setup(c *caddy.Controller) error { l, err := parse(c) diff --git a/plugin/metadata/setup.go b/plugin/metadata/setup.go index 665216ea8..734ea678e 100644 --- a/plugin/metadata/setup.go +++ b/plugin/metadata/setup.go @@ -7,12 +7,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("metadata", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("metadata", setup) } func setup(c *caddy.Controller) error { m, err := metadataParse(c) diff --git a/plugin/metrics/setup.go b/plugin/metrics/setup.go index 744db7cd3..719362609 100644 --- a/plugin/metrics/setup.go +++ b/plugin/metrics/setup.go @@ -20,12 +20,7 @@ var ( registry = newReg() ) -func init() { - caddy.RegisterPlugin("prometheus", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("prometheus", setup) } func setup(c *caddy.Controller) error { m, err := parse(c) diff --git a/plugin/nsid/setup.go b/plugin/nsid/setup.go index c851c7d20..3fa0edd85 100644 --- a/plugin/nsid/setup.go +++ b/plugin/nsid/setup.go @@ -10,12 +10,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("nsid", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("nsid", setup) } func setup(c *caddy.Controller) error { nsid, err := nsidParse(c) diff --git a/plugin/pprof/setup.go b/plugin/pprof/setup.go index 175a16011..8de3b2ac0 100644 --- a/plugin/pprof/setup.go +++ b/plugin/pprof/setup.go @@ -15,12 +15,7 @@ var log = clog.NewWithPlugin("pprof") const defaultAddr = "localhost:6053" -func init() { - caddy.RegisterPlugin("pprof", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("pprof", setup) } func setup(c *caddy.Controller) error { h := &handler{addr: defaultAddr} diff --git a/plugin/ready/setup.go b/plugin/ready/setup.go index eb1e1a8a4..3c0e2ce43 100644 --- a/plugin/ready/setup.go +++ b/plugin/ready/setup.go @@ -9,12 +9,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("ready", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("ready", setup) } func setup(c *caddy.Controller) error { addr, err := parse(c) diff --git a/plugin/register.go b/plugin/register.go new file mode 100644 index 000000000..2d74b2622 --- /dev/null +++ b/plugin/register.go @@ -0,0 +1,11 @@ +package plugin + +import "github.com/caddyserver/caddy" + +// Register registers your plugin with CoreDNS and allows it to be called when the server is running. +func Register(name string, action caddy.SetupFunc) { + caddy.RegisterPlugin(name, caddy.Plugin{ + ServerType: "dns", + Action: action, + }) +} diff --git a/plugin/reload/setup.go b/plugin/reload/setup.go index b52afe560..c0dcc14e9 100644 --- a/plugin/reload/setup.go +++ b/plugin/reload/setup.go @@ -14,12 +14,7 @@ import ( var log = clog.NewWithPlugin("reload") -func init() { - caddy.RegisterPlugin("reload", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("reload", setup) } // the info reload is global to all application, whatever number of reloads. // it is used to transmit data between Setup and start of the hook called 'onInstanceStartup' diff --git a/plugin/rewrite/setup.go b/plugin/rewrite/setup.go index 00c0a2f2c..6b6bcce66 100644 --- a/plugin/rewrite/setup.go +++ b/plugin/rewrite/setup.go @@ -10,12 +10,7 @@ import ( var log = clog.NewWithPlugin("rewrite") -func init() { - caddy.RegisterPlugin("rewrite", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("rewrite", setup) } func setup(c *caddy.Controller) error { rewrites, err := rewriteParse(c) diff --git a/plugin/route53/setup.go b/plugin/route53/setup.go index 23fb5e74f..31169edaf 100644 --- a/plugin/route53/setup.go +++ b/plugin/route53/setup.go @@ -25,9 +25,8 @@ import ( var log = clog.NewWithPlugin("route53") func init() { - caddy.RegisterPlugin("route53", caddy.Plugin{ - ServerType: "dns", - Action: func(c *caddy.Controller) error { + plugin.Register("route53", + func(c *caddy.Controller) error { f := func(credential *credentials.Credentials) route53iface.Route53API { return route53.New(session.Must(session.NewSession(&aws.Config{ Credentials: credential, @@ -35,7 +34,7 @@ func init() { } return setup(c, f) }, - }) + ) } func setup(c *caddy.Controller, f func(*credentials.Credentials) route53iface.Route53API) error { diff --git a/plugin/secondary/setup.go b/plugin/secondary/setup.go index 401b2af74..410bc0976 100644 --- a/plugin/secondary/setup.go +++ b/plugin/secondary/setup.go @@ -10,12 +10,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("secondary", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("secondary", setup) } func setup(c *caddy.Controller) error { zones, err := secondaryParse(c) diff --git a/plugin/sign/setup.go b/plugin/sign/setup.go index 6cc3b711d..8f4d4abd5 100644 --- a/plugin/sign/setup.go +++ b/plugin/sign/setup.go @@ -12,12 +12,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("sign", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("sign", setup) } func setup(c *caddy.Controller) error { sign, err := parse(c) diff --git a/plugin/template/setup.go b/plugin/template/setup.go index 045459ef1..908266f29 100644 --- a/plugin/template/setup.go +++ b/plugin/template/setup.go @@ -12,12 +12,7 @@ import ( "github.com/miekg/dns" ) -func init() { - caddy.RegisterPlugin("template", caddy.Plugin{ - ServerType: "dns", - Action: setupTemplate, - }) -} +func init() { plugin.Register("template", setupTemplate) } func setupTemplate(c *caddy.Controller) error { handler, err := templateParse(c) diff --git a/plugin/trace/setup.go b/plugin/trace/setup.go index 87d9e7e24..64931933a 100644 --- a/plugin/trace/setup.go +++ b/plugin/trace/setup.go @@ -11,12 +11,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("trace", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("trace", setup) } func setup(c *caddy.Controller) error { t, err := traceParse(c) diff --git a/plugin/whoami/setup.go b/plugin/whoami/setup.go index f0ae1e6d6..6c19b72d6 100644 --- a/plugin/whoami/setup.go +++ b/plugin/whoami/setup.go @@ -7,12 +7,7 @@ import ( "github.com/caddyserver/caddy" ) -func init() { - caddy.RegisterPlugin("whoami", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} +func init() { plugin.Register("whoami", setup) } func setup(c *caddy.Controller) error { c.Next() // 'whoami'