Merge pull request #12913 from gmarek/remove_healthcheck

Remove unused (?) HealthCheck from KubeletClient
pull/6/head
Saad Ali 2015-08-19 14:49:00 -07:00
commit 25dfc9932f
4 changed files with 2 additions and 105 deletions

View File

@ -52,7 +52,6 @@ import (
"k8s.io/kubernetes/pkg/kubelet/dockertools"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/master"
"k8s.io/kubernetes/pkg/probe"
"k8s.io/kubernetes/pkg/tools/etcdtest"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/wait"
@ -82,10 +81,6 @@ func (fakeKubeletClient) GetConnectionInfo(host string) (string, uint, http.Roun
return "", 0, nil, errors.New("Not Implemented")
}
func (fakeKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
return probe.Success, "", nil
}
type delegateHandler struct {
delegate http.Handler
}

View File

@ -18,26 +18,14 @@ package unversioned
import (
"errors"
"net"
"net/http"
"net/url"
"strconv"
"k8s.io/kubernetes/pkg/probe"
httprobe "k8s.io/kubernetes/pkg/probe/http"
)
// KubeletClient is an interface for all kubelet functionality
type KubeletClient interface {
KubeletHealthChecker
ConnectionInfoGetter
}
// KubeletHealthchecker is an interface for healthchecking kubelets
type KubeletHealthChecker interface {
HealthCheck(host string) (result probe.Result, output string, err error)
}
type ConnectionInfoGetter interface {
GetConnectionInfo(host string) (scheme string, port uint, transport http.RoundTripper, err error)
}
@ -94,33 +82,11 @@ func (c *HTTPKubeletClient) GetConnectionInfo(host string) (string, uint, http.R
return scheme, c.Config.Port, c.Client.Transport, nil
}
func (c *HTTPKubeletClient) url(host, path, query string) *url.URL {
scheme := "http"
if c.Config.EnableHttps {
scheme = "https"
}
return &url.URL{
Scheme: scheme,
Host: net.JoinHostPort(host, strconv.FormatUint(uint64(c.Config.Port), 10)),
Path: path,
RawQuery: query,
}
}
func (c *HTTPKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
return httprobe.DoHTTPProbe(c.url(host, "/healthz", ""), c.Client)
}
// FakeKubeletClient is a fake implementation of KubeletClient which returns an error
// when called. It is useful to pass to the master in a test configuration with
// no kubelets.
type FakeKubeletClient struct{}
func (c FakeKubeletClient) HealthCheck(host string) (probe.Result, string, error) {
return probe.Unknown, "", errors.New("Not Implemented")
}
func (c FakeKubeletClient) GetConnectionInfo(host string) (string, uint, http.RoundTripper, error) {
return "", 0, nil, errors.New("Not Implemented")
}

View File

@ -18,11 +18,8 @@ package unversioned
import (
"encoding/json"
"net/http"
"net/http/httptest"
"net/url"
"strconv"
"strings"
"testing"
"k8s.io/kubernetes/pkg/probe"
@ -43,65 +40,14 @@ func TestHTTPKubeletClient(t *testing.T) {
testServer := httptest.NewServer(&fakeHandler)
defer testServer.Close()
hostURL, err := url.Parse(testServer.URL)
_, err = url.Parse(testServer.URL)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
parts := strings.Split(hostURL.Host, ":")
port, err := strconv.Atoi(parts[1])
if err != nil {
t.Errorf("unexpected error: %v", err)
}
c := &HTTPKubeletClient{
Client: http.DefaultClient,
Config: &KubeletConfig{Port: uint(port)},
}
gotObj, _, err := c.HealthCheck(parts[0])
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if gotObj != expectObj {
t.Errorf("expected: %#v, got %#v", expectObj, gotObj)
}
}
func TestHTTPKubeletClientError(t *testing.T) {
expectObj := probe.Failure
fakeHandler := util.FakeHandler{
StatusCode: 500,
ResponseBody: "Internal server error",
}
testServer := httptest.NewServer(&fakeHandler)
defer testServer.Close()
hostURL, err := url.Parse(testServer.URL)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
parts := strings.Split(hostURL.Host, ":")
port, err := strconv.Atoi(parts[1])
if err != nil {
t.Errorf("unexpected error: %v", err)
}
c := &HTTPKubeletClient{
Client: http.DefaultClient,
Config: &KubeletConfig{Port: uint(port)},
}
gotObj, _, err := c.HealthCheck(parts[0])
if gotObj != expectObj {
t.Errorf("expected: %#v, got %#v", expectObj, gotObj)
}
}
func TestNewKubeletClient(t *testing.T) {
config := &KubeletConfig{
Port: 9000,
EnableHttps: false,
}
@ -112,20 +58,10 @@ func TestNewKubeletClient(t *testing.T) {
if client == nil {
t.Error("client is nil.")
}
host := "127.0.0.1"
healthStatus, _, err := client.HealthCheck(host)
if healthStatus != probe.Failure {
t.Errorf("Expected %v and got %v.", probe.Failure, healthStatus)
}
if err != nil {
t.Error("Expected a nil error")
}
}
func TestNewKubeletClientTLSInvalid(t *testing.T) {
config := &KubeletConfig{
Port: 9000,
EnableHttps: true,
//Invalid certificate and key path
TLSClientConfig: TLSClientConfig{
@ -146,7 +82,6 @@ func TestNewKubeletClientTLSInvalid(t *testing.T) {
func TestNewKubeletClientTLSValid(t *testing.T) {
config := &KubeletConfig{
Port: 9000,
EnableHttps: true,
TLSClientConfig: TLSClientConfig{
CertFile: "../testdata/mycertvalid.cer",

View File

@ -52,6 +52,7 @@ func proxyContext(version string) {
f := NewFramework("proxy")
prefix := "/api/" + version
// Port here has to be kept in sync with default kubelet port.
It("should proxy logs on node with explicit kubelet port", func() { nodeProxyTest(f, version, ":10250/logs/") })
It("should proxy logs on node", func() { nodeProxyTest(f, version, "/logs/") })