plugin/health: add lameduck mode (#1379)

* plugin/health: add lameduck mode

Add a way to configure lameduck more, i.e. set health to false, stop
polling plugins. Then wait for a duration before shutting down. As the
health middleware is configured early on in the plugin list, it will
hold up all other shutdown, meaning we still answer queries.

* Add New

* More tests

* golint

* remove confusing text
This commit is contained in:
Miek Gieben
2018-01-18 10:40:09 +00:00
committed by GitHub
parent 318bab7795
commit c39e5cd014
5 changed files with 112 additions and 14 deletions

View File

@@ -13,17 +13,27 @@ func TestSetupHealth(t *testing.T) {
}{
{`health`, false},
{`health localhost:1234`, false},
{`health localhost:1234 {
lameduck 4s
}`, false},
{`health bla:a`, false},
{`health bla`, true},
{`health bla bla`, true},
{`health localhost:1234 {
lameduck a
}`, true},
{`health localhost:1234 {
lamedudk 4
} `, true},
}
for i, test := range tests {
c := caddy.NewTestController("dns", test.input)
_, err := healthParse(c)
_, _, err := healthParse(c)
if test.shouldErr && err == nil {
t.Errorf("Test %d: Expected error but found %s for input %s", i, err, test.input)
t.Errorf("Test %d: Expected error but found none for input %s", i, test.input)
}
if err != nil {