All middleware equal (#535)

* all-middleware-equal

* Revert "all-middleware-equal"

This reverts commit ee77b2a981.

* middleware: treat external and local the same

Make the middleware generation simpler and also specify the local
middleware, meaning that it can now be removed as well. Simplify
the code a bit and regen everything.

* remove lineNR, not used
This commit is contained in:
Miek Gieben 2017-02-19 20:34:29 +00:00 committed by GitHub
parent bcd9c8b0fb
commit ea38b642b8
4 changed files with 66 additions and 44 deletions

View file

@ -30,7 +30,6 @@ var directives = []string{
"kubernetes",
"reverse",
"proxy",
"httpprox",
"whoami",
"erratic",
}

View file

@ -1,4 +1,27 @@
// generated by directives_generate.go; DO NOT EDIT
package core
import ()
import (
_ "github.com/miekg/coredns/middleware/auto"
_ "github.com/miekg/coredns/middleware/bind"
_ "github.com/miekg/coredns/middleware/cache"
_ "github.com/miekg/coredns/middleware/chaos"
_ "github.com/miekg/coredns/middleware/dnssec"
_ "github.com/miekg/coredns/middleware/erratic"
_ "github.com/miekg/coredns/middleware/errors"
_ "github.com/miekg/coredns/middleware/etcd"
_ "github.com/miekg/coredns/middleware/file"
_ "github.com/miekg/coredns/middleware/health"
_ "github.com/miekg/coredns/middleware/kubernetes"
_ "github.com/miekg/coredns/middleware/loadbalance"
_ "github.com/miekg/coredns/middleware/log"
_ "github.com/miekg/coredns/middleware/metrics"
_ "github.com/miekg/coredns/middleware/pprof"
_ "github.com/miekg/coredns/middleware/proxy"
_ "github.com/miekg/coredns/middleware/reverse"
_ "github.com/miekg/coredns/middleware/rewrite"
_ "github.com/miekg/coredns/middleware/root"
_ "github.com/miekg/coredns/middleware/secondary"
_ "github.com/miekg/coredns/middleware/trace"
_ "github.com/miekg/coredns/middleware/whoami"
)

View file

@ -25,22 +25,23 @@ func main() {
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
if !strings.HasPrefix(line, `//`) && !strings.HasPrefix(line, "#") {
items := strings.Split(line, ":")
if len(items) == 3 {
if priority, err := strconv.Atoi(items[0]); err == nil {
md[priority] = items[1]
}
if strings.HasPrefix(line, "#") {
continue
}
if items[2] != "" {
if strings.Contains(items[2], "/") {
mi[items[1]] = items[2]
} else {
mi[items[1]] = middlewarePath + items[2]
}
}
items := strings.Split(line, ":")
if len(items) != 3 {
// ignore
continue
}
priority, err := strconv.Atoi(items[0])
fatalIfErr(err)
}
md[priority] = items[1]
mi[items[1]] = middlewarePath + items[2] // Default, unless overriden by 3rd arg
if strings.Contains(items[2], "/") { // External package has been given
mi[items[1]] = items[2]
}
}

View file

@ -6,39 +6,38 @@
# (after) them during a request, but they must not
# care what middleware above them are doing.
# How to rebuild with updated middleware configurations:
# Modify the list below and run `make gen && make`
# Modify the list below and run `go gen && go build`
# The parser takes the input format of
# <order>:<middleware-name>:<package-name>
# OR
# <order>:<middleware-name>:
# Or
# <order>:<middleware-name>:<fully-qualified-package-name>
#
# External middleware example:
# 80:log:github.com/miekg/coredns/middleware/log
# Local middleware example:
# 80:log:
# 80:log:log
10:root:
20:bind:
30:trace:
40:health:
50:pprof:
60:prometheus:
70:errors:
80:log:
90:chaos:
100:cache:
110:rewrite:
120:loadbalance:
130:dnssec:
140:file:
150:auto:
160:secondary:
170:etcd:
180:kubernetes:
185:reverse:
190:proxy:
200:httpprox:
210:whoami:
220:erratic:
10:root:root
20:bind:bind
30:trace:trace
40:health:health
50:pprof:pprof
60:prometheus:metrics
70:errors:errors
80:log:log
90:chaos:chaos
100:cache:cache
110:rewrite:rewrite
120:loadbalance:loadbalance
130:dnssec:dnssec
140:file:file
150:auto:auto
160:secondary:secondary
170:etcd:etcd
180:kubernetes:kubernetes
185:reverse:reverse
190:proxy:proxy
210:whoami:whoami
220:erratic:erratic