Configurable zone reload interval in file plugin (#2110)
* Configurable zone reload interval in file plugin * passing reload config from auto plugin to file plugin. removed noReload property from Zone struct. fixed tests based on short file reload hack
This commit is contained in:
parent
a80ec6096f
commit
552aab723c
12 changed files with 53 additions and 20 deletions
|
@ -3,6 +3,7 @@ package file
|
|||
import (
|
||||
"os"
|
||||
"path"
|
||||
"time"
|
||||
|
||||
"github.com/coredns/coredns/core/dnsserver"
|
||||
"github.com/coredns/coredns/plugin"
|
||||
|
@ -91,7 +92,7 @@ func fileParse(c *caddy.Controller) (Zones, error) {
|
|||
names = append(names, origins[i])
|
||||
}
|
||||
|
||||
noReload := false
|
||||
reload := 1 * time.Minute
|
||||
upstr := upstream.Upstream{}
|
||||
t := []string{}
|
||||
var e error
|
||||
|
@ -104,8 +105,15 @@ func fileParse(c *caddy.Controller) (Zones, error) {
|
|||
return Zones{}, e
|
||||
}
|
||||
|
||||
case "reload":
|
||||
d, err := time.ParseDuration(c.RemainingArgs()[0])
|
||||
if err != nil {
|
||||
return Zones{}, plugin.Error("file", err)
|
||||
}
|
||||
reload = d
|
||||
|
||||
case "no_reload":
|
||||
noReload = true
|
||||
reload = 0
|
||||
|
||||
case "upstream":
|
||||
args := c.RemainingArgs()
|
||||
|
@ -122,7 +130,7 @@ func fileParse(c *caddy.Controller) (Zones, error) {
|
|||
if t != nil {
|
||||
z[origin].TransferTo = append(z[origin].TransferTo, t...)
|
||||
}
|
||||
z[origin].NoReload = noReload
|
||||
z[origin].ReloadInterval = reload
|
||||
z[origin].Upstream = upstr
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue