mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Merge pull request #12913 from gmarek/remove_healthcheck
Remove unused (?) HealthCheck from KubeletClient
This commit is contained in:
		@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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")
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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/") })
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user