mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 02:33:14 -04:00
plugin/chaos: add default list of authors (#2737)
* plugin/chaos: add default list of authors Add a owners_generate.go that generates a Owners variables for use in the chaos plugin. Add a default list of authors in the authors.bind CH zone. When doing a query this now returns: ~~~ sh % dig authors.bind TXT CH ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5456 ;; flags: qr rd; QUERY: 1, ANSWER: 22, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;authors.bind. CH TXT ;; ANSWER SECTION: authors.bind. 0 CH TXT "bradbeam" authors.bind. 0 CH TXT "chrisohaver" authors.bind. 0 CH TXT "dilyevsky" authors.bind. 0 CH TXT "ekleiner" authors.bind. 0 CH TXT "fastest963" authors.bind. 0 CH TXT "fturib" authors.bind. 0 CH TXT "greenpau" authors.bind. 0 CH TXT "grobie" authors.bind. 0 CH TXT "inigohu" authors.bind. 0 CH TXT "isolus" authors.bind. 0 CH TXT "johnbelamaric" authors.bind. 0 CH TXT "miekg" authors.bind. 0 CH TXT "nchrisdk" authors.bind. 0 CH TXT "nitisht" authors.bind. 0 CH TXT "pmoroney" authors.bind. 0 CH TXT "rajansandeep" authors.bind. 0 CH TXT "rdrozhdzh" authors.bind. 0 CH TXT "rtreffer" authors.bind. 0 CH TXT "stp-ip" authors.bind. 0 CH TXT "superq" authors.bind. 0 CH TXT "varyoo" authors.bind. 0 CH TXT "yongtang" ~~~ This was hard to do previously as we didn't hardcode this in the source, but now with OWNERS files we can just generate this list. Privacy wise this isn't worse than being listed in OWNERS file in the first place. And it's a nice hat tip to the people making CoreDNS better. Signed-off-by: Miek Gieben <miek@miek.nl> * Sticklet bot comments Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
//go:generate go run owners_generate.go
|
||||
|
||||
package chaos
|
||||
|
||||
import (
|
||||
"sort"
|
||||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
"github.com/coredns/coredns/plugin"
|
||||
|
||||
@@ -16,7 +20,7 @@ func init() {
|
||||
}
|
||||
|
||||
func setup(c *caddy.Controller) error {
|
||||
version, authors, err := chaosParse(c)
|
||||
version, authors, err := parse(c)
|
||||
if err != nil {
|
||||
return plugin.Error("chaos", err)
|
||||
}
|
||||
@@ -28,28 +32,42 @@ func setup(c *caddy.Controller) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func chaosParse(c *caddy.Controller) (string, map[string]struct{}, error) {
|
||||
func parse(c *caddy.Controller) (string, []string, error) {
|
||||
// Set here so we pick up AppName and AppVersion that get set in coremain's init().
|
||||
chaosVersion = caddy.AppName + "-" + caddy.AppVersion
|
||||
|
||||
version := ""
|
||||
authors := make(map[string]struct{})
|
||||
|
||||
for c.Next() {
|
||||
args := c.RemainingArgs()
|
||||
if len(args) == 0 {
|
||||
return chaosVersion, nil, nil
|
||||
return trim(chaosVersion), Owners, nil
|
||||
}
|
||||
if len(args) == 1 {
|
||||
return args[0], nil, nil
|
||||
return trim(args[0]), Owners, nil
|
||||
}
|
||||
|
||||
version = args[0]
|
||||
authors := make(map[string]struct{})
|
||||
for _, a := range args[1:] {
|
||||
authors[a] = struct{}{}
|
||||
}
|
||||
return version, authors, nil
|
||||
list := []string{}
|
||||
for k := range authors {
|
||||
k = trim(k) // limit size to 255 chars
|
||||
list = append(list, k)
|
||||
}
|
||||
sort.Strings(list)
|
||||
return version, list, nil
|
||||
}
|
||||
return version, authors, nil
|
||||
|
||||
return version, Owners, nil
|
||||
}
|
||||
|
||||
func trim(s string) string {
|
||||
if len(s) < 256 {
|
||||
return s
|
||||
}
|
||||
return s[:255]
|
||||
}
|
||||
|
||||
var chaosVersion string
|
||||
|
||||
Reference in New Issue
Block a user