mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 04:27:54 +00:00
fix broken TestExecutorLaunchAndKillTask unit test
This commit is contained in:
parent
eca5a2ac88
commit
5e4992aa5e
@ -19,6 +19,7 @@ package executor
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
@ -97,10 +98,15 @@ type suicideWatcher interface {
|
||||
|
||||
type podStatusFunc func() (*api.PodStatus, error)
|
||||
|
||||
// KubeletInterface consists of the kubelet.Kubelet API's that we actually use
|
||||
type KubeletInterface interface {
|
||||
GetHostIP() (net.IP, error)
|
||||
}
|
||||
|
||||
// KubernetesExecutor is an mesos executor that runs pods
|
||||
// in a minion machine.
|
||||
type KubernetesExecutor struct {
|
||||
kl *kubelet.Kubelet // the kubelet instance.
|
||||
kl KubeletInterface // the kubelet instance.
|
||||
updateChan chan<- interface{} // to send pod config updates to the kubelet
|
||||
state stateType
|
||||
tasks map[string]*kuberTask
|
||||
@ -118,11 +124,11 @@ type KubernetesExecutor struct {
|
||||
kubeletFinished <-chan struct{} // signals that kubelet Run() died
|
||||
initialRegistration sync.Once
|
||||
exitFunc func(int)
|
||||
podStatusFunc func(*kubelet.Kubelet, *api.Pod) (*api.PodStatus, error)
|
||||
podStatusFunc func(KubeletInterface, *api.Pod) (*api.PodStatus, error)
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Kubelet *kubelet.Kubelet
|
||||
Kubelet KubeletInterface
|
||||
Updates chan<- interface{} // to send pod config updates to the kubelet
|
||||
SourceName string
|
||||
APIClient *client.Client
|
||||
@ -132,7 +138,7 @@ type Config struct {
|
||||
SuicideTimeout time.Duration
|
||||
KubeletFinished <-chan struct{} // signals that kubelet Run() died
|
||||
ExitFunc func(int)
|
||||
PodStatusFunc func(*kubelet.Kubelet, *api.Pod) (*api.PodStatus, error)
|
||||
PodStatusFunc func(KubeletInterface, *api.Pod) (*api.PodStatus, error)
|
||||
}
|
||||
|
||||
func (k *KubernetesExecutor) isConnected() bool {
|
||||
|
@ -18,6 +18,7 @@ package executor
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"reflect"
|
||||
@ -285,6 +286,15 @@ func TestExecutorReregister(t *testing.T) {
|
||||
mockDriver.AssertExpectations(t)
|
||||
}
|
||||
|
||||
type fakeKubelet struct {
|
||||
*kubelet.Kubelet
|
||||
hostIP net.IP
|
||||
}
|
||||
|
||||
func (kl *fakeKubelet) GetHostIP() (net.IP, error) {
|
||||
return kl.hostIP, nil
|
||||
}
|
||||
|
||||
// TestExecutorLaunchAndKillTask ensures that the executor is able to launch
|
||||
// and kill tasks while properly bookkeping its tasks.
|
||||
func TestExecutorLaunchAndKillTask(t *testing.T) {
|
||||
@ -304,8 +314,11 @@ func TestExecutorLaunchAndKillTask(t *testing.T) {
|
||||
Host: testApiServer.server.URL,
|
||||
Version: testapi.Version(),
|
||||
}),
|
||||
Kubelet: &kubelet.Kubelet{},
|
||||
PodStatusFunc: func(kl *kubelet.Kubelet, pod *api.Pod) (*api.PodStatus, error) {
|
||||
Kubelet: &fakeKubelet{
|
||||
Kubelet: &kubelet.Kubelet{},
|
||||
hostIP: net.IPv4(127, 0, 0, 1),
|
||||
},
|
||||
PodStatusFunc: func(kl KubeletInterface, pod *api.Pod) (*api.PodStatus, error) {
|
||||
return &api.PodStatus{
|
||||
ContainerStatuses: []api.ContainerStatus{
|
||||
{
|
||||
@ -331,6 +344,7 @@ func TestExecutorLaunchAndKillTask(t *testing.T) {
|
||||
}
|
||||
|
||||
pod := NewTestPod(1)
|
||||
pod.Spec.Containers[0].Name = "foo"
|
||||
podTask, err := podtask.New(api.NewDefaultContext(), "",
|
||||
*pod, &mesosproto.ExecutorInfo{})
|
||||
assert.Equal(t, nil, err, "must be able to create a task from a pod")
|
||||
|
@ -376,8 +376,8 @@ func (ks *KubeletExecutorServer) createAndInitKubelet(
|
||||
}
|
||||
},
|
||||
ExitFunc: os.Exit,
|
||||
PodStatusFunc: func(kl *kubelet.Kubelet, pod *api.Pod) (*api.PodStatus, error) {
|
||||
return kl.GetRuntime().GetPodStatus(pod)
|
||||
PodStatusFunc: func(_ executor.KubeletInterface, pod *api.Pod) (*api.PodStatus, error) {
|
||||
return klet.GetRuntime().GetPodStatus(pod)
|
||||
},
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user