Adding first version of HealthCheck
Added a expvar style handler for the debug http server to allow health checks (/debug/health). Signed-off-by: Diogo Monica <diogo@docker.com>
This commit is contained in:
parent
47a8ad7a61
commit
5370f2c0be
7 changed files with 548 additions and 0 deletions
47
health/health_test.go
Normal file
47
health/health_test.go
Normal file
|
@ -0,0 +1,47 @@
|
|||
package health
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestReturns200IfThereAreNoChecks ensures that the result code of the health
|
||||
// endpoint is 200 if there are not currently registered checks.
|
||||
func TestReturns200IfThereAreNoChecks(t *testing.T) {
|
||||
recorder := httptest.NewRecorder()
|
||||
|
||||
req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
|
||||
if err != nil {
|
||||
t.Errorf("Failed to create request.")
|
||||
}
|
||||
|
||||
StatusHandler(recorder, req)
|
||||
|
||||
if recorder.Code != 200 {
|
||||
t.Errorf("Did not get a 200.")
|
||||
}
|
||||
}
|
||||
|
||||
// TestReturns500IfThereAreErrorChecks ensures that the result code of the
|
||||
// health endpoint is 500 if there are health checks with errors
|
||||
func TestReturns503IfThereAreErrorChecks(t *testing.T) {
|
||||
recorder := httptest.NewRecorder()
|
||||
|
||||
req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
|
||||
if err != nil {
|
||||
t.Errorf("Failed to create request.")
|
||||
}
|
||||
|
||||
// Create a manual error
|
||||
Register("some_check", CheckFunc(func() error {
|
||||
return errors.New("This Check did not succeed")
|
||||
}))
|
||||
|
||||
StatusHandler(recorder, req)
|
||||
|
||||
if recorder.Code != 503 {
|
||||
t.Errorf("Did not get a 503.")
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue