mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Unify fake runtime helper in kuberuntime, rkt and dockertools.
This commit is contained in:
parent
7265908e7f
commit
0deec63d1a
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = [
|
srcs = [
|
||||||
"fake_cache.go",
|
"fake_cache.go",
|
||||||
"fake_runtime.go",
|
"fake_runtime.go",
|
||||||
|
"fake_runtime_helper.go",
|
||||||
"mockfileinfo.go",
|
"mockfileinfo.go",
|
||||||
"os.go",
|
"os.go",
|
||||||
"runtime_mock.go",
|
"runtime_mock.go",
|
||||||
@ -19,6 +20,7 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/v1:go_default_library",
|
"//pkg/api/v1:go_default_library",
|
||||||
|
"//pkg/kubelet/cm:go_default_library",
|
||||||
"//pkg/kubelet/container:go_default_library",
|
"//pkg/kubelet/container:go_default_library",
|
||||||
"//pkg/util/term:go_default_library",
|
"//pkg/util/term:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
|
63
pkg/kubelet/container/testing/fake_runtime_helper.go
Normal file
63
pkg/kubelet/container/testing/fake_runtime_helper.go
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package testing
|
||||||
|
|
||||||
|
import (
|
||||||
|
kubetypes "k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
|
"k8s.io/kubernetes/pkg/kubelet/cm"
|
||||||
|
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FakeRuntimeHelper implements RuntimeHelper interfaces for testing purposes.
|
||||||
|
type FakeRuntimeHelper struct {
|
||||||
|
DNSServers []string
|
||||||
|
DNSSearches []string
|
||||||
|
HostName string
|
||||||
|
HostDomain string
|
||||||
|
PodContainerDir string
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) {
|
||||||
|
var opts kubecontainer.RunContainerOptions
|
||||||
|
if len(container.TerminationMessagePath) != 0 {
|
||||||
|
opts.PodContainerDir = f.PodContainerDir
|
||||||
|
}
|
||||||
|
return &opts, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FakeRuntimeHelper) GetPodCgroupParent(pod *v1.Pod) (cm.CgroupName, string) {
|
||||||
|
return "", ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, error) {
|
||||||
|
return f.DNSServers, f.DNSSearches, f.Err
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is not used by docker runtime.
|
||||||
|
func (f *FakeRuntimeHelper) GeneratePodHostNameAndDomain(pod *v1.Pod) (string, string, error) {
|
||||||
|
return f.HostName, f.HostDomain, f.Err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FakeRuntimeHelper) GetPodDir(podUID kubetypes.UID) string {
|
||||||
|
return "/poddir/" + string(podUID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FakeRuntimeHelper) GetExtraSupplementalGroupsForPod(pod *v1.Pod) []int64 {
|
||||||
|
return nil
|
||||||
|
}
|
@ -107,7 +107,6 @@ go_test(
|
|||||||
"//pkg/api/v1:go_default_library",
|
"//pkg/api/v1:go_default_library",
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/apis/componentconfig:go_default_library",
|
||||||
"//pkg/credentialprovider:go_default_library",
|
"//pkg/credentialprovider:go_default_library",
|
||||||
"//pkg/kubelet/cm:go_default_library",
|
|
||||||
"//pkg/kubelet/container:go_default_library",
|
"//pkg/kubelet/container:go_default_library",
|
||||||
"//pkg/kubelet/container/testing:go_default_library",
|
"//pkg/kubelet/container/testing:go_default_library",
|
||||||
"//pkg/kubelet/events:go_default_library",
|
"//pkg/kubelet/events:go_default_library",
|
||||||
|
@ -695,7 +695,7 @@ func (dm *DockerManager) runContainer(
|
|||||||
// here we just add a unique container id to make the path unique for different instances
|
// here we just add a unique container id to make the path unique for different instances
|
||||||
// of the same container.
|
// of the same container.
|
||||||
containerLogPath := path.Join(opts.PodContainerDir, cid)
|
containerLogPath := path.Join(opts.PodContainerDir, cid)
|
||||||
fs, err := os.Create(containerLogPath)
|
fs, err := dm.os.Create(containerLogPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// TODO: Clean up the previously created dir? return the error?
|
// TODO: Clean up the previously created dir? return the error?
|
||||||
utilruntime.HandleError(fmt.Errorf("error creating termination-log file %q: %v", containerLogPath, err))
|
utilruntime.HandleError(fmt.Errorf("error creating termination-log file %q: %v", containerLogPath, err))
|
||||||
@ -706,7 +706,7 @@ func (dm *DockerManager) runContainer(
|
|||||||
// open(2) to create the file, so the final mode used is "mode &
|
// open(2) to create the file, so the final mode used is "mode &
|
||||||
// ~umask". But we want to make sure the specified mode is used
|
// ~umask". But we want to make sure the specified mode is used
|
||||||
// in the file no matter what the umask is.
|
// in the file no matter what the umask is.
|
||||||
if err := os.Chmod(containerLogPath, 0666); err != nil {
|
if err := dm.os.Chmod(containerLogPath, 0666); err != nil {
|
||||||
utilruntime.HandleError(fmt.Errorf("unable to set termination-log file permissions %q: %v", containerLogPath, err))
|
utilruntime.HandleError(fmt.Errorf("unable to set termination-log file permissions %q: %v", containerLogPath, err))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
|
||||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||||
containertest "k8s.io/kubernetes/pkg/kubelet/container/testing"
|
containertest "k8s.io/kubernetes/pkg/kubelet/container/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/images"
|
"k8s.io/kubernetes/pkg/kubelet/images"
|
||||||
@ -86,49 +85,6 @@ func (f *fakeHTTP) Get(url string) (*http.Response, error) {
|
|||||||
return nil, f.err
|
return nil, f.err
|
||||||
}
|
}
|
||||||
|
|
||||||
// fakeRuntimeHelper implementes kubecontainer.RuntimeHelper inter
|
|
||||||
// faces for testing purposes.
|
|
||||||
// TODO(random-liu): Move this into pkg/kubelet/container/testing
|
|
||||||
type fakeRuntimeHelper struct{}
|
|
||||||
|
|
||||||
var _ kubecontainer.RuntimeHelper = &fakeRuntimeHelper{}
|
|
||||||
|
|
||||||
var testPodContainerDir string
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) {
|
|
||||||
var opts kubecontainer.RunContainerOptions
|
|
||||||
var err error
|
|
||||||
if len(container.TerminationMessagePath) != 0 {
|
|
||||||
testPodContainerDir, err = ioutil.TempDir(testTempDir, "fooPodContainerDir")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
opts.PodContainerDir = testPodContainerDir
|
|
||||||
}
|
|
||||||
return &opts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodCgroupParent(pod *v1.Pod) (cm.CgroupName, string) {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, error) {
|
|
||||||
return nil, nil, fmt.Errorf("not implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is not used by docker runtime.
|
|
||||||
func (f *fakeRuntimeHelper) GeneratePodHostNameAndDomain(pod *v1.Pod) (string, string, error) {
|
|
||||||
return "", "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodDir(kubetypes.UID) string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetExtraSupplementalGroupsForPod(pod *v1.Pod) []int64 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type fakeImageManager struct{}
|
type fakeImageManager struct{}
|
||||||
|
|
||||||
func newFakeImageManager() images.ImageManager {
|
func newFakeImageManager() images.ImageManager {
|
||||||
@ -166,7 +122,7 @@ func createTestDockerManager(fakeHTTPClient *fakeHTTP, fakeDocker *FakeDockerCli
|
|||||||
0, 0, "",
|
0, 0, "",
|
||||||
&containertest.FakeOS{},
|
&containertest.FakeOS{},
|
||||||
networkPlugin,
|
networkPlugin,
|
||||||
&fakeRuntimeHelper{},
|
&containertest.FakeRuntimeHelper{},
|
||||||
fakeHTTPClient,
|
fakeHTTPClient,
|
||||||
flowcontrol.NewBackOff(time.Second, 300*time.Second))
|
flowcontrol.NewBackOff(time.Second, 300*time.Second))
|
||||||
|
|
||||||
@ -1275,6 +1231,9 @@ func TestPortForwardNoSuchContainer(t *testing.T) {
|
|||||||
|
|
||||||
func TestSyncPodWithTerminationLog(t *testing.T) {
|
func TestSyncPodWithTerminationLog(t *testing.T) {
|
||||||
dm, fakeDocker := newTestDockerManager()
|
dm, fakeDocker := newTestDockerManager()
|
||||||
|
// Set test pod container directory.
|
||||||
|
testPodContainerDir := "test/pod/container/dir"
|
||||||
|
dm.runtimeHelper.(*containertest.FakeRuntimeHelper).PodContainerDir = testPodContainerDir
|
||||||
container := v1.Container{
|
container := v1.Container{
|
||||||
Name: "bar",
|
Name: "bar",
|
||||||
TerminationMessagePath: "/dev/somepath",
|
TerminationMessagePath: "/dev/somepath",
|
||||||
@ -1293,8 +1252,6 @@ func TestSyncPodWithTerminationLog(t *testing.T) {
|
|||||||
"create", "start", "inspect_container",
|
"create", "start", "inspect_container",
|
||||||
})
|
})
|
||||||
|
|
||||||
defer os.Remove(testPodContainerDir)
|
|
||||||
|
|
||||||
fakeDocker.Lock()
|
fakeDocker.Lock()
|
||||||
if len(fakeDocker.Created) != 2 ||
|
if len(fakeDocker.Created) != 2 ||
|
||||||
!matchString(t, "/k8s_POD\\.[a-f0-9]+_foo_new_", fakeDocker.Created[0]) ||
|
!matchString(t, "/k8s_POD\\.[a-f0-9]+_foo_new_", fakeDocker.Created[0]) ||
|
||||||
|
@ -32,7 +32,6 @@ go_library(
|
|||||||
"//pkg/credentialprovider:go_default_library",
|
"//pkg/credentialprovider:go_default_library",
|
||||||
"//pkg/kubelet/api:go_default_library",
|
"//pkg/kubelet/api:go_default_library",
|
||||||
"//pkg/kubelet/api/v1alpha1/runtime:go_default_library",
|
"//pkg/kubelet/api/v1alpha1/runtime:go_default_library",
|
||||||
"//pkg/kubelet/cm:go_default_library",
|
|
||||||
"//pkg/kubelet/container:go_default_library",
|
"//pkg/kubelet/container:go_default_library",
|
||||||
"//pkg/kubelet/dockertools:go_default_library",
|
"//pkg/kubelet/dockertools:go_default_library",
|
||||||
"//pkg/kubelet/events:go_default_library",
|
"//pkg/kubelet/events:go_default_library",
|
||||||
|
@ -17,19 +17,16 @@ limitations under the License.
|
|||||||
package kuberuntime
|
package kuberuntime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
cadvisorapi "github.com/google/cadvisor/info/v1"
|
cadvisorapi "github.com/google/cadvisor/info/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
kubetypes "k8s.io/apimachinery/pkg/types"
|
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/client-go/util/flowcontrol"
|
"k8s.io/client-go/util/flowcontrol"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/credentialprovider"
|
"k8s.io/kubernetes/pkg/credentialprovider"
|
||||||
internalapi "k8s.io/kubernetes/pkg/kubelet/api"
|
internalapi "k8s.io/kubernetes/pkg/kubelet/api"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
|
||||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/images"
|
"k8s.io/kubernetes/pkg/kubelet/images"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
|
"k8s.io/kubernetes/pkg/kubelet/lifecycle"
|
||||||
@ -47,42 +44,6 @@ func (f *fakeHTTP) Get(url string) (*http.Response, error) {
|
|||||||
return nil, f.err
|
return nil, f.err
|
||||||
}
|
}
|
||||||
|
|
||||||
// fakeRuntimeHelper implements kubecontainer.RuntimeHelper interfaces for testing purposes.
|
|
||||||
type fakeRuntimeHelper struct{}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodCgroupParent(pod *v1.Pod) (cm.CgroupName, string) {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) {
|
|
||||||
var opts kubecontainer.RunContainerOptions
|
|
||||||
if len(container.TerminationMessagePath) != 0 {
|
|
||||||
testPodContainerDir, err := ioutil.TempDir("", "fooPodContainerDir")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
opts.PodContainerDir = testPodContainerDir
|
|
||||||
}
|
|
||||||
return &opts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, error) {
|
|
||||||
return nil, nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is not used by docker runtime.
|
|
||||||
func (f *fakeRuntimeHelper) GeneratePodHostNameAndDomain(pod *v1.Pod) (string, string, error) {
|
|
||||||
return "", "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodDir(kubetypes.UID) string {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetExtraSupplementalGroupsForPod(pod *v1.Pod) []int64 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type fakePodGetter struct {
|
type fakePodGetter struct {
|
||||||
pods map[types.UID]*v1.Pod
|
pods map[types.UID]*v1.Pod
|
||||||
}
|
}
|
||||||
@ -96,7 +57,7 @@ func (f *fakePodGetter) GetPodByUID(uid types.UID) (*v1.Pod, bool) {
|
|||||||
return pod, found
|
return pod, found
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFakeKubeRuntimeManager(runtimeService internalapi.RuntimeService, imageService internalapi.ImageManagerService, machineInfo *cadvisorapi.MachineInfo, networkPlugin network.NetworkPlugin, osInterface kubecontainer.OSInterface) (*kubeGenericRuntimeManager, error) {
|
func NewFakeKubeRuntimeManager(runtimeService internalapi.RuntimeService, imageService internalapi.ImageManagerService, machineInfo *cadvisorapi.MachineInfo, networkPlugin network.NetworkPlugin, osInterface kubecontainer.OSInterface, runtimeHelper kubecontainer.RuntimeHelper) (*kubeGenericRuntimeManager, error) {
|
||||||
recorder := &record.FakeRecorder{}
|
recorder := &record.FakeRecorder{}
|
||||||
kubeRuntimeManager := &kubeGenericRuntimeManager{
|
kubeRuntimeManager := &kubeGenericRuntimeManager{
|
||||||
recorder: recorder,
|
recorder: recorder,
|
||||||
@ -106,7 +67,7 @@ func NewFakeKubeRuntimeManager(runtimeService internalapi.RuntimeService, imageS
|
|||||||
machineInfo: machineInfo,
|
machineInfo: machineInfo,
|
||||||
osInterface: osInterface,
|
osInterface: osInterface,
|
||||||
networkPlugin: networkPlugin,
|
networkPlugin: networkPlugin,
|
||||||
runtimeHelper: &fakeRuntimeHelper{},
|
runtimeHelper: runtimeHelper,
|
||||||
runtimeService: runtimeService,
|
runtimeService: runtimeService,
|
||||||
imageService: imageService,
|
imageService: imageService,
|
||||||
keyring: credentialprovider.NewDockerKeyring(),
|
keyring: credentialprovider.NewDockerKeyring(),
|
||||||
|
@ -58,7 +58,7 @@ func createTestRuntimeManager() (*apitest.FakeRuntimeService, *apitest.FakeImage
|
|||||||
network.UseDefaultMTU,
|
network.UseDefaultMTU,
|
||||||
)
|
)
|
||||||
osInterface := &containertest.FakeOS{}
|
osInterface := &containertest.FakeOS{}
|
||||||
manager, err := NewFakeKubeRuntimeManager(fakeRuntimeService, fakeImageService, machineInfo, networkPlugin, osInterface)
|
manager, err := NewFakeKubeRuntimeManager(fakeRuntimeService, fakeImageService, machineInfo, networkPlugin, osInterface, &containertest.FakeRuntimeHelper{})
|
||||||
return fakeRuntimeService, fakeImageService, manager, err
|
return fakeRuntimeService, fakeImageService, manager, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,6 @@ go_test(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/v1:go_default_library",
|
"//pkg/api/v1:go_default_library",
|
||||||
"//pkg/kubelet/cm:go_default_library",
|
|
||||||
"//pkg/kubelet/container:go_default_library",
|
"//pkg/kubelet/container:go_default_library",
|
||||||
"//pkg/kubelet/container/testing:go_default_library",
|
"//pkg/kubelet/container/testing:go_default_library",
|
||||||
"//pkg/kubelet/lifecycle:go_default_library",
|
"//pkg/kubelet/lifecycle:go_default_library",
|
||||||
|
@ -28,8 +28,6 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/cm"
|
|
||||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// fakeRktInterface mocks the rktapi.PublicAPIClient interface for testing purpose.
|
// fakeRktInterface mocks the rktapi.PublicAPIClient interface for testing purpose.
|
||||||
@ -151,40 +149,6 @@ func (f *fakeSystemd) ResetFailedUnit(name string) error {
|
|||||||
return f.err
|
return f.err
|
||||||
}
|
}
|
||||||
|
|
||||||
// fakeRuntimeHelper implementes kubecontainer.RuntimeHelper interfaces for testing purpose.
|
|
||||||
// TODO(random-liu): Move this into pkg/kubelet/container/testing
|
|
||||||
type fakeRuntimeHelper struct {
|
|
||||||
dnsServers []string
|
|
||||||
dnsSearches []string
|
|
||||||
hostName string
|
|
||||||
hostDomain string
|
|
||||||
err error
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GenerateRunContainerOptions(pod *v1.Pod, container *v1.Container, podIP string) (*kubecontainer.RunContainerOptions, error) {
|
|
||||||
return nil, fmt.Errorf("Not implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodCgroupParent(pod *v1.Pod) (cm.CgroupName, string) {
|
|
||||||
return "", ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetClusterDNS(pod *v1.Pod) ([]string, []string, error) {
|
|
||||||
return f.dnsServers, f.dnsSearches, f.err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GeneratePodHostNameAndDomain(pod *v1.Pod) (string, string, error) {
|
|
||||||
return f.hostName, f.hostDomain, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetPodDir(podUID types.UID) string {
|
|
||||||
return "/poddir/" + string(podUID)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeRuntimeHelper) GetExtraSupplementalGroupsForPod(pod *v1.Pod) []int64 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type fakeRktCli struct {
|
type fakeRktCli struct {
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
cmds []string
|
cmds []string
|
||||||
|
@ -585,7 +585,7 @@ func TestGetPodStatus(t *testing.T) {
|
|||||||
fs := newFakeSystemd()
|
fs := newFakeSystemd()
|
||||||
fnp := nettest.NewMockNetworkPlugin(ctrl)
|
fnp := nettest.NewMockNetworkPlugin(ctrl)
|
||||||
fos := &containertesting.FakeOS{}
|
fos := &containertesting.FakeOS{}
|
||||||
frh := &fakeRuntimeHelper{}
|
frh := &containertesting.FakeRuntimeHelper{}
|
||||||
r := &Runtime{
|
r := &Runtime{
|
||||||
apisvc: fr,
|
apisvc: fr,
|
||||||
systemd: fs,
|
systemd: fs,
|
||||||
@ -1391,7 +1391,12 @@ func TestGenerateRunCommand(t *testing.T) {
|
|||||||
for i, tt := range tests {
|
for i, tt := range tests {
|
||||||
testCaseHint := fmt.Sprintf("test case #%d", i)
|
testCaseHint := fmt.Sprintf("test case #%d", i)
|
||||||
rkt.network = network.NewPluginManager(tt.networkPlugin)
|
rkt.network = network.NewPluginManager(tt.networkPlugin)
|
||||||
rkt.runtimeHelper = &fakeRuntimeHelper{tt.dnsServers, tt.dnsSearches, tt.hostName, "", tt.err}
|
rkt.runtimeHelper = &containertesting.FakeRuntimeHelper{
|
||||||
|
DNSServers: tt.dnsServers,
|
||||||
|
DNSSearches: tt.dnsSearches,
|
||||||
|
HostName: tt.hostName,
|
||||||
|
Err: tt.err,
|
||||||
|
}
|
||||||
rkt.execer = &utilexec.FakeExec{CommandScript: []utilexec.FakeCommandAction{func(cmd string, args ...string) utilexec.Cmd {
|
rkt.execer = &utilexec.FakeExec{CommandScript: []utilexec.FakeCommandAction{func(cmd string, args ...string) utilexec.Cmd {
|
||||||
return utilexec.InitFakeCmd(&utilexec.FakeCmd{}, cmd, args...)
|
return utilexec.InitFakeCmd(&utilexec.FakeCmd{}, cmd, args...)
|
||||||
}}}
|
}}}
|
||||||
|
Loading…
Reference in New Issue
Block a user