func TestHealthCheck(t *testing.T) { fw := newServerTest() fw.fakeKubelet.containerVersionFunc = func() (kubecontainer.Version, error) { return dockertools.NewVersion("1.15") } fw.fakeKubelet.hostnameFunc = func() string { return "127.0.0.1" } // Test with correct hostname, Docker version assertHealthIsOk(t, fw.testHTTPServer.URL+"/healthz") //Test with incorrect hostname fw.fakeKubelet.hostnameFunc = func() string { return "fake" } assertHealthIsOk(t, fw.testHTTPServer.URL+"/healthz") //Test with old container runtime version fw.fakeKubelet.containerVersionFunc = func() (kubecontainer.Version, error) { return dockertools.NewVersion("1.1") } assertHealthFails(t, fw.testHTTPServer.URL+"/healthz", http.StatusInternalServerError) }
func TestHealthCheck(t *testing.T) { fw := newServerTest() fw.fakeKubelet.containerVersionFunc = func() (kubecontainer.Version, error) { return dockertools.NewVersion("1.15") } fw.fakeKubelet.hostnameFunc = func() string { return "127.0.0.1" } // Test with correct hostname, Docker version resp, err := http.Get(fw.testHTTPServer.URL + "/healthz") if err != nil { t.Fatalf("Got error GETing: %v", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { t.Errorf("expected status code %d, got %d", http.StatusOK, resp.StatusCode) } body, err := ioutil.ReadAll(resp.Body) if err != nil { // copying the response body did not work t.Fatalf("Cannot copy resp: %#v", err) } result := string(body) if !strings.Contains(result, "ok") { t.Errorf("expected body contains ok, got %s", result) } //Test with incorrect hostname fw.fakeKubelet.hostnameFunc = func() string { return "fake" } resp, err = http.Get(fw.testHTTPServer.URL + "/healthz") if err != nil { t.Fatalf("Got error GETing: %v", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { t.Errorf("expected status code %d, got %d", http.StatusOK, resp.StatusCode) } //Test with old container runtime version fw.fakeKubelet.containerVersionFunc = func() (kubecontainer.Version, error) { return dockertools.NewVersion("1.1") } resp, err = http.Get(fw.testHTTPServer.URL + "/healthz") if err != nil { t.Fatalf("Got error GETing: %v", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusInternalServerError { t.Errorf("expected status code %d, got %d", http.StatusInternalServerError, resp.StatusCode) } }
func TestSyncLoopCheck(t *testing.T) { fw := newServerTest() fw.fakeKubelet.containerVersionFunc = func() (kubecontainer.Version, error) { return dockertools.NewVersion("1.15") } fw.fakeKubelet.hostnameFunc = func() string { return "127.0.0.1" } fw.fakeKubelet.resyncInterval = time.Minute fw.fakeKubelet.loopEntryTime = time.Now() // Test with correct hostname, Docker version assertHealthIsOk(t, fw.testHTTPServer.URL+"/healthz") fw.fakeKubelet.loopEntryTime = time.Now().Add(time.Minute * -10) assertHealthFails(t, fw.testHTTPServer.URL+"/healthz", http.StatusInternalServerError) }