From 3dfc8bf7f3360ad34209eb44bb7fa532c6954eff Mon Sep 17 00:00:00 2001 From: ymqytw Date: Tue, 18 Jul 2017 22:58:53 -0700 Subject: [PATCH] update import --- cmd/kube-proxy/app/server.go | 2 +- cmd/kubemark/hollow-node.go | 2 +- .../providers/openstack/metadata.go | 2 +- pkg/kubectl/cmd/run.go | 2 +- pkg/kubectl/cmd/util/helpers.go | 2 +- pkg/kubectl/cmd/util/helpers_test.go | 4 +- pkg/kubelet/dockershim/exec.go | 2 +- .../dockershim/remote/docker_service.go | 2 +- pkg/kubelet/kubelet.go | 2 +- pkg/kubelet/network/cni/cni.go | 2 +- pkg/kubelet/network/cni/cni_test.go | 13 +- pkg/kubelet/network/hairpin/hairpin.go | 2 +- pkg/kubelet/network/hairpin/hairpin_test.go | 13 +- pkg/kubelet/network/kubenet/kubenet_linux.go | 2 +- .../network/kubenet/kubenet_linux_test.go | 31 +- pkg/kubelet/network/plugins.go | 2 +- pkg/kubelet/prober/common_test.go | 2 +- pkg/kubelet/prober/prober.go | 2 +- pkg/kubelet/prober/worker_test.go | 2 +- pkg/kubelet/remote/remote_runtime.go | 2 +- pkg/kubelet/rkt/rkt.go | 2 +- pkg/kubelet/rkt/rkt_test.go | 7 +- pkg/kubelet/server/remotecommand/exec.go | 2 +- pkg/kubemark/hollow_proxy.go | 2 +- pkg/probe/exec/exec.go | 2 +- pkg/proxy/iptables/proxier.go | 2 +- pkg/proxy/iptables/proxier_test.go | 17 +- pkg/proxy/userspace/proxier.go | 2 +- pkg/proxy/userspace/proxier_test.go | 15 +- pkg/proxy/util/conntrack.go | 2 +- pkg/proxy/util/conntrack_test.go | 31 +- pkg/proxy/winuserspace/proxysocket.go | 2 +- pkg/util/bandwidth/linux.go | 2 +- pkg/util/bandwidth/linux_test.go | 103 ++--- pkg/util/ebtables/ebtables.go | 2 +- pkg/util/ebtables/ebtables_test.go | 43 +- pkg/util/ipconfig/ipconfig.go | 2 +- pkg/util/ipconfig/ipconfig_test.go | 2 +- pkg/util/iptables/iptables.go | 2 +- pkg/util/iptables/iptables_test.go | 417 +++++++++--------- pkg/util/mount/mount.go | 2 +- pkg/util/mount/mount_linux.go | 2 +- pkg/util/mount/nsenter_mount.go | 2 +- pkg/util/mount/safe_format_and_mount_test.go | 19 +- pkg/util/netsh/netsh.go | 2 +- pkg/volume/aws_ebs/attacher.go | 2 +- pkg/volume/aws_ebs/aws_ebs.go | 2 +- pkg/volume/azure_dd/attacher.go | 2 +- pkg/volume/azure_dd/azure_common.go | 2 +- pkg/volume/azure_dd/azure_common_test.go | 17 +- pkg/volume/cinder/attacher.go | 2 +- pkg/volume/cinder/cinder.go | 2 +- pkg/volume/cinder/cinder_util.go | 2 +- pkg/volume/fc/attacher.go | 2 +- pkg/volume/fc/fc.go | 2 +- pkg/volume/flexvolume/attacher-defaults.go | 2 +- pkg/volume/flexvolume/common_test.go | 19 +- pkg/volume/flexvolume/mounter.go | 2 +- pkg/volume/flexvolume/plugin.go | 2 +- pkg/volume/flexvolume/plugin_test.go | 2 +- pkg/volume/flexvolume/unmounter.go | 2 +- pkg/volume/gce_pd/attacher.go | 2 +- pkg/volume/gce_pd/gce_util.go | 2 +- pkg/volume/git_repo/git_repo.go | 2 +- pkg/volume/git_repo/git_repo_test.go | 15 +- pkg/volume/glusterfs/glusterfs.go | 2 +- pkg/volume/glusterfs/glusterfs_test.go | 15 +- pkg/volume/iscsi/iscsi.go | 2 +- pkg/volume/nfs/nfs.go | 2 +- pkg/volume/photon_pd/attacher.go | 2 +- pkg/volume/photon_pd/photon_pd.go | 2 +- pkg/volume/portworx/portworx.go | 2 +- pkg/volume/quobyte/quobyte.go | 2 +- pkg/volume/rbd/rbd.go | 2 +- pkg/volume/rbd/rbd_util.go | 2 +- pkg/volume/scaleio/sio_volume.go | 2 +- pkg/volume/storageos/storageos.go | 2 +- pkg/volume/storageos/storageos_util.go | 2 +- pkg/volume/vsphere_volume/attacher.go | 2 +- pkg/volume/vsphere_volume/vsphere_volume.go | 2 +- test/e2e/framework/ingress_utils.go | 2 +- test/e2e/framework/util.go | 2 +- test/e2e/kubectl/kubectl.go | 2 +- 83 files changed, 464 insertions(+), 449 deletions(-) diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index ec9065f2ef..da21b6a996 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -62,7 +62,6 @@ import ( "k8s.io/kubernetes/pkg/proxy/winuserspace" "k8s.io/kubernetes/pkg/util/configz" utildbus "k8s.io/kubernetes/pkg/util/dbus" - "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" utilnetsh "k8s.io/kubernetes/pkg/util/netsh" utilnode "k8s.io/kubernetes/pkg/util/node" @@ -71,6 +70,7 @@ import ( "k8s.io/kubernetes/pkg/util/resourcecontainer" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" "k8s.io/kubernetes/pkg/version/verflag" + "k8s.io/utils/exec" "github.com/golang/glog" "github.com/prometheus/client_golang/prometheus" diff --git a/cmd/kubemark/hollow-node.go b/cmd/kubemark/hollow-node.go index 5b69f2bb54..593344c14b 100644 --- a/cmd/kubemark/hollow-node.go +++ b/cmd/kubemark/hollow-node.go @@ -34,10 +34,10 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" "k8s.io/kubernetes/pkg/kubemark" - fakeexec "k8s.io/kubernetes/pkg/util/exec" fakeiptables "k8s.io/kubernetes/pkg/util/iptables/testing" fakesysctl "k8s.io/kubernetes/pkg/util/sysctl/testing" _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration + fakeexec "k8s.io/utils/exec/testing" "github.com/golang/glog" "github.com/spf13/pflag" diff --git a/pkg/cloudprovider/providers/openstack/metadata.go b/pkg/cloudprovider/providers/openstack/metadata.go index 0ea608a81a..9ab0e09189 100644 --- a/pkg/cloudprovider/providers/openstack/metadata.go +++ b/pkg/cloudprovider/providers/openstack/metadata.go @@ -28,8 +28,8 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" + "k8s.io/utils/exec" ) // metadataUrl is URL to OpenStack metadata server. It's hardcoded IPv4 diff --git a/pkg/kubectl/cmd/run.go b/pkg/kubectl/cmd/run.go index f7b3cd56bc..b0ad01a2be 100644 --- a/pkg/kubectl/cmd/run.go +++ b/pkg/kubectl/cmd/run.go @@ -40,9 +40,9 @@ import ( "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" - uexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/i18n" "k8s.io/kubernetes/pkg/util/interrupt" + uexec "k8s.io/utils/exec" ) var ( diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index bf5f57ce5a..0cd966c632 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -48,7 +48,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/printers" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index eb64a96021..9b5b86c441 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -35,7 +35,7 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" apitesting "k8s.io/kubernetes/pkg/api/testing" - uexec "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) func TestMerge(t *testing.T) { @@ -266,7 +266,7 @@ func TestCheckNoResourceMatchError(t *testing.T) { func TestCheckExitError(t *testing.T) { testCheckError(t, []checkErrTestCase{ { - uexec.CodeExitError{Err: fmt.Errorf("pod foo/bar terminated"), Code: 42}, + exec.CodeExitError{Err: fmt.Errorf("pod foo/bar terminated"), Code: 42}, "pod foo/bar terminated", 42, }, diff --git a/pkg/kubelet/dockershim/exec.go b/pkg/kubelet/dockershim/exec.go index 881afea6c3..6d4b229cd8 100644 --- a/pkg/kubelet/dockershim/exec.go +++ b/pkg/kubelet/dockershim/exec.go @@ -28,8 +28,8 @@ import ( "k8s.io/client-go/tools/remotecommand" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/term" + utilexec "k8s.io/utils/exec" "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker" ) diff --git a/pkg/kubelet/dockershim/remote/docker_service.go b/pkg/kubelet/dockershim/remote/docker_service.go index e224708eb4..13a5e8bfd2 100644 --- a/pkg/kubelet/dockershim/remote/docker_service.go +++ b/pkg/kubelet/dockershim/remote/docker_service.go @@ -25,7 +25,7 @@ import ( internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" "k8s.io/kubernetes/pkg/kubelet/dockershim" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) // DockerService is the interface implement CRI remote service server. diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 9759e3dc03..7949b6f9ec 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -99,7 +99,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/volumemanager" "k8s.io/kubernetes/pkg/security/apparmor" utildbus "k8s.io/kubernetes/pkg/util/dbus" - utilexec "k8s.io/kubernetes/pkg/util/exec" kubeio "k8s.io/kubernetes/pkg/util/io" utilipt "k8s.io/kubernetes/pkg/util/iptables" "k8s.io/kubernetes/pkg/util/mount" @@ -107,6 +106,7 @@ import ( "k8s.io/kubernetes/pkg/util/oom" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/network/cni/cni.go b/pkg/kubelet/network/cni/cni.go index 1e9c91b818..02c3719c09 100644 --- a/pkg/kubelet/network/cni/cni.go +++ b/pkg/kubelet/network/cni/cni.go @@ -29,7 +29,7 @@ import ( "k8s.io/kubernetes/pkg/apis/componentconfig" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/network" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/network/cni/cni_test.go b/pkg/kubelet/network/cni/cni_test.go index 8b3b078718..8e39009d73 100644 --- a/pkg/kubelet/network/cni/cni_test.go +++ b/pkg/kubelet/network/cni/cni_test.go @@ -43,7 +43,8 @@ import ( "k8s.io/kubernetes/pkg/kubelet/network/cni/testing" "k8s.io/kubernetes/pkg/kubelet/network/hostport" networktest "k8s.io/kubernetes/pkg/kubelet/network/testing" - utilexec "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func installPluginUnderTest(t *testing.T, testVendorCNIDirPrefix, testNetworkConfigPath, vendorName string, plugName string) { @@ -159,10 +160,10 @@ func TestCNIPlugin(t *testing.T) { podIP := "10.0.0.2" podIPOutput := fmt.Sprintf("4: eth0 inet %s/24 scope global dynamic eth0\\ valid_lft forever preferred_lft forever", podIP) - fakeCmds := []utilexec.FakeCommandAction{ - func(cmd string, args ...string) utilexec.Cmd { - return utilexec.InitFakeCmd(&utilexec.FakeCmd{ - CombinedOutputScript: []utilexec.FakeCombinedOutputAction{ + fakeCmds := []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(podIPOutput), nil }, @@ -171,7 +172,7 @@ func TestCNIPlugin(t *testing.T) { }, } - fexec := &utilexec.FakeExec{ + fexec := &fakeexec.FakeExec{ CommandScript: fakeCmds, LookPathFunc: func(file string) (string, error) { return fmt.Sprintf("/fake-bin/%s", file), nil diff --git a/pkg/kubelet/network/hairpin/hairpin.go b/pkg/kubelet/network/hairpin/hairpin.go index 3bea370445..fd9cdf43e9 100644 --- a/pkg/kubelet/network/hairpin/hairpin.go +++ b/pkg/kubelet/network/hairpin/hairpin.go @@ -26,7 +26,7 @@ import ( "strconv" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/network/hairpin/hairpin_test.go b/pkg/kubelet/network/hairpin/hairpin_test.go index 8c667f0c69..c749183a26 100644 --- a/pkg/kubelet/network/hairpin/hairpin_test.go +++ b/pkg/kubelet/network/hairpin/hairpin_test.go @@ -24,7 +24,8 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func TestFindPairInterfaceOfContainerInterface(t *testing.T) { @@ -54,15 +55,15 @@ func TestFindPairInterfaceOfContainerInterface(t *testing.T) { }, } for _, test := range tests { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(test.output), test.err }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fcmd, cmd, args...) + return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, LookPathFunc: func(file string) (string, error) { diff --git a/pkg/kubelet/network/kubenet/kubenet_linux.go b/pkg/kubelet/network/kubenet/kubenet_linux.go index 81aa2373b8..30f652e73d 100644 --- a/pkg/kubelet/network/kubenet/kubenet_linux.go +++ b/pkg/kubelet/network/kubenet/kubenet_linux.go @@ -45,9 +45,9 @@ import ( "k8s.io/kubernetes/pkg/util/bandwidth" utildbus "k8s.io/kubernetes/pkg/util/dbus" utilebtables "k8s.io/kubernetes/pkg/util/ebtables" - utilexec "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/network/kubenet/kubenet_linux_test.go b/pkg/kubelet/network/kubenet/kubenet_linux_test.go index 4a1a255b6b..beff2e8138 100644 --- a/pkg/kubelet/network/kubenet/kubenet_linux_test.go +++ b/pkg/kubelet/network/kubenet/kubenet_linux_test.go @@ -32,9 +32,10 @@ import ( hostporttest "k8s.io/kubernetes/pkg/kubelet/network/hostport/testing" nettest "k8s.io/kubernetes/pkg/kubelet/network/testing" "k8s.io/kubernetes/pkg/util/bandwidth" - "k8s.io/kubernetes/pkg/util/exec" ipttest "k8s.io/kubernetes/pkg/util/iptables/testing" sysctltest "k8s.io/kubernetes/pkg/util/sysctl/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) // test it fulfills the NetworkPlugin interface @@ -79,11 +80,11 @@ func TestGetPodNetworkStatus(t *testing.T) { //TODO: add test cases for retrieving ip inside container network namespace } - fakeCmds := make([]exec.FakeCommandAction, 0) + fakeCmds := make([]fakeexec.FakeCommandAction, 0) for _, t := range testCases { // the fake commands return the IP from the given index, or an error - fCmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fCmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { ip, ok := podIPMap[kubecontainer.ContainerID{ID: t.id}] if !ok { @@ -94,10 +95,10 @@ func TestGetPodNetworkStatus(t *testing.T) { }, } fakeCmds = append(fakeCmds, func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fCmd, cmd, args...) + return fakeexec.InitFakeCmd(&fCmd, cmd, args...) }) } - fexec := exec.FakeExec{ + fexec := fakeexec.FakeExec{ CommandScript: fakeCmds, LookPathFunc: func(file string) (string, error) { return fmt.Sprintf("/fake-bin/%s", file), nil @@ -128,8 +129,8 @@ func TestGetPodNetworkStatus(t *testing.T) { // TestTeardownCallsShaper tests that a `TearDown` call does call // `shaper.Reset` func TestTeardownCallsShaper(t *testing.T) { - fexec := &exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{}, + fexec := &fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{}, LookPathFunc: func(file string) (string, error) { return fmt.Sprintf("/fake-bin/%s", file), nil }, @@ -162,22 +163,22 @@ func TestTeardownCallsShaper(t *testing.T) { // TestInit tests that a `Init` call with an MTU sets the MTU func TestInit_MTU(t *testing.T) { - var fakeCmds []exec.FakeCommandAction + var fakeCmds []fakeexec.FakeCommandAction { // modprobe br-netfilter - fCmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fCmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return make([]byte, 0), nil }, }, } fakeCmds = append(fakeCmds, func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fCmd, cmd, args...) + return fakeexec.InitFakeCmd(&fCmd, cmd, args...) }) } - fexec := &exec.FakeExec{ + fexec := &fakeexec.FakeExec{ CommandScript: fakeCmds, LookPathFunc: func(file string) (string, error) { return fmt.Sprintf("/fake-bin/%s", file), nil @@ -254,8 +255,8 @@ func TestTearDownWithoutRuntime(t *testing.T) { fhost.Runtime = nil mockcni := &mock_cni.MockCNI{} - fexec := &exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{}, + fexec := &fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{}, LookPathFunc: func(file string) (string, error) { return fmt.Sprintf("/fake-bin/%s", file), nil }, diff --git a/pkg/kubelet/network/plugins.go b/pkg/kubelet/network/plugins.go index ca75c95a33..08c6ef2d49 100644 --- a/pkg/kubelet/network/plugins.go +++ b/pkg/kubelet/network/plugins.go @@ -32,8 +32,8 @@ import ( "k8s.io/kubernetes/pkg/apis/componentconfig" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/network/hostport" - utilexec "k8s.io/kubernetes/pkg/util/exec" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" + utilexec "k8s.io/utils/exec" ) const DefaultPluginName = "kubernetes.io/no-op" diff --git a/pkg/kubelet/prober/common_test.go b/pkg/kubelet/prober/common_test.go index 6c99ea19e3..f19ecd97b0 100644 --- a/pkg/kubelet/prober/common_test.go +++ b/pkg/kubelet/prober/common_test.go @@ -30,7 +30,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/status" statustest "k8s.io/kubernetes/pkg/kubelet/status/testing" "k8s.io/kubernetes/pkg/probe" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/prober/prober.go b/pkg/kubelet/prober/prober.go index 3da2dcbcae..076d5b676c 100644 --- a/pkg/kubelet/prober/prober.go +++ b/pkg/kubelet/prober/prober.go @@ -37,7 +37,7 @@ import ( execprobe "k8s.io/kubernetes/pkg/probe/exec" httprobe "k8s.io/kubernetes/pkg/probe/http" tcprobe "k8s.io/kubernetes/pkg/probe/tcp" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" "github.com/golang/glog" ) diff --git a/pkg/kubelet/prober/worker_test.go b/pkg/kubelet/prober/worker_test.go index e7bc904ba5..30f408fa55 100644 --- a/pkg/kubelet/prober/worker_test.go +++ b/pkg/kubelet/prober/worker_test.go @@ -33,7 +33,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/status" statustest "k8s.io/kubernetes/pkg/kubelet/status/testing" "k8s.io/kubernetes/pkg/probe" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) func init() { diff --git a/pkg/kubelet/remote/remote_runtime.go b/pkg/kubelet/remote/remote_runtime.go index 096ef32be5..647c564b7e 100644 --- a/pkg/kubelet/remote/remote_runtime.go +++ b/pkg/kubelet/remote/remote_runtime.go @@ -28,7 +28,7 @@ import ( internalapi "k8s.io/kubernetes/pkg/kubelet/apis/cri" runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" "k8s.io/kubernetes/pkg/kubelet/util" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) // RemoteRuntimeService is a gRPC implementation of internalapi.RuntimeService. diff --git a/pkg/kubelet/rkt/rkt.go b/pkg/kubelet/rkt/rkt.go index 6e6addfe03..359ad6d1de 100644 --- a/pkg/kubelet/rkt/rkt.go +++ b/pkg/kubelet/rkt/rkt.go @@ -62,10 +62,10 @@ import ( "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/securitycontext" - utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/selinux" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/util/term" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/kubelet/rkt/rkt_test.go b/pkg/kubelet/rkt/rkt_test.go index 18092169b6..6b51e5095d 100644 --- a/pkg/kubelet/rkt/rkt_test.go +++ b/pkg/kubelet/rkt/rkt_test.go @@ -46,7 +46,8 @@ import ( "k8s.io/kubernetes/pkg/kubelet/network/kubenet" nettest "k8s.io/kubernetes/pkg/kubelet/network/testing" "k8s.io/kubernetes/pkg/kubelet/types" - utilexec "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" "strings" ) @@ -1415,8 +1416,8 @@ func TestGenerateRunCommand(t *testing.T) { HostName: tt.hostName, Err: tt.err, } - rkt.execer = &utilexec.FakeExec{CommandScript: []utilexec.FakeCommandAction{func(cmd string, args ...string) utilexec.Cmd { - return utilexec.InitFakeCmd(&utilexec.FakeCmd{}, cmd, args...) + rkt.execer = &fakeexec.FakeExec{CommandScript: []fakeexec.FakeCommandAction{func(cmd string, args ...string) exec.Cmd { + return fakeexec.InitFakeCmd(&fakeexec.FakeCmd{}, cmd, args...) }}} // a command should be created of this form, but the returned command shouldn't be called (asserted by having no expectations on it) diff --git a/pkg/kubelet/server/remotecommand/exec.go b/pkg/kubelet/server/remotecommand/exec.go index 8d14a937a3..8eaf82a6fe 100644 --- a/pkg/kubelet/server/remotecommand/exec.go +++ b/pkg/kubelet/server/remotecommand/exec.go @@ -28,7 +28,7 @@ import ( remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/remotecommand" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) // Executor knows how to execute a command in a container in a pod. diff --git a/pkg/kubemark/hollow_proxy.go b/pkg/kubemark/hollow_proxy.go index 11db20e7d0..1a9525ebb6 100644 --- a/pkg/kubemark/hollow_proxy.go +++ b/pkg/kubemark/hollow_proxy.go @@ -32,11 +32,11 @@ import ( "k8s.io/kubernetes/pkg/proxy" proxyconfig "k8s.io/kubernetes/pkg/proxy/config" "k8s.io/kubernetes/pkg/proxy/iptables" - utilexec "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" utilnode "k8s.io/kubernetes/pkg/util/node" utilpointer "k8s.io/kubernetes/pkg/util/pointer" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" + utilexec "k8s.io/utils/exec" "github.com/golang/glog" ) diff --git a/pkg/probe/exec/exec.go b/pkg/probe/exec/exec.go index 2507ca4389..817492a609 100644 --- a/pkg/probe/exec/exec.go +++ b/pkg/probe/exec/exec.go @@ -18,7 +18,7 @@ package exec import ( "k8s.io/kubernetes/pkg/probe" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" "github.com/golang/glog" ) diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index 0a8123be09..3ca08763b8 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -49,10 +49,10 @@ import ( "k8s.io/kubernetes/pkg/proxy/healthcheck" utilproxy "k8s.io/kubernetes/pkg/proxy/util" "k8s.io/kubernetes/pkg/util/async" - utilexec "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilversion "k8s.io/kubernetes/pkg/util/version" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index 894a98ccc4..768f0db8ff 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -36,9 +36,10 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/util/async" - "k8s.io/kubernetes/pkg/util/exec" utiliptables "k8s.io/kubernetes/pkg/util/iptables" iptablestest "k8s.io/kubernetes/pkg/util/iptables/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func checkAllLines(t *testing.T, table utiliptables.Table, save []byte, expectedLines map[utiliptables.Chain]string) { @@ -187,18 +188,18 @@ func newFakeServiceInfo(service proxy.ServicePortName, ip net.IP, port int, prot } func TestDeleteEndpointConnections(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, func() ([]byte, error) { return []byte(""), fmt.Errorf("conntrack v1.4.2 (conntrack-tools): 0 flow entries have been deleted.") }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, LookPathFunc: func(cmd string) (string, error) { return cmd, nil }, } @@ -386,7 +387,7 @@ func NewFakeProxier(ipt utiliptables.Interface) *Proxier { // TODO: Call NewProxier after refactoring out the goroutine // invocation into a Run() method. p := &Proxier{ - exec: &exec.FakeExec{}, + exec: &fakeexec.FakeExec{}, serviceMap: make(proxyServiceMap), serviceChanges: newServiceChangeMap(), endpointsMap: make(proxyEndpointsMap), diff --git a/pkg/proxy/userspace/proxier.go b/pkg/proxy/userspace/proxier.go index 5224d45d4b..86f9ff31af 100644 --- a/pkg/proxy/userspace/proxier.go +++ b/pkg/proxy/userspace/proxier.go @@ -36,8 +36,8 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" utilproxy "k8s.io/kubernetes/pkg/proxy/util" - utilexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/iptables" + utilexec "k8s.io/utils/exec" ) type portal struct { diff --git a/pkg/proxy/userspace/proxier_test.go b/pkg/proxy/userspace/proxier_test.go index b497318a97..d3699a0a7e 100644 --- a/pkg/proxy/userspace/proxier_test.go +++ b/pkg/proxy/userspace/proxier_test.go @@ -34,8 +34,9 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/util/exec" ipttest "k8s.io/kubernetes/pkg/util/iptables/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) const ( @@ -905,15 +906,15 @@ func TestProxyUpdatePortal(t *testing.T) { waitForNumProxyLoops(t, p, 1) } -func makeFakeExec() *exec.FakeExec { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ +func makeFakeExec() *fakeexec.FakeExec { + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, }, } - return &exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + return &fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, LookPathFunc: func(cmd string) (string, error) { return cmd, nil }, } diff --git a/pkg/proxy/util/conntrack.go b/pkg/proxy/util/conntrack.go index 436045ecb3..389de1f555 100644 --- a/pkg/proxy/util/conntrack.go +++ b/pkg/proxy/util/conntrack.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" "github.com/golang/glog" ) diff --git a/pkg/proxy/util/conntrack_test.go b/pkg/proxy/util/conntrack_test.go index 05729f51e3..a788f1f67f 100644 --- a/pkg/proxy/util/conntrack_test.go +++ b/pkg/proxy/util/conntrack_test.go @@ -21,12 +21,13 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func TestExecConntrackTool(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, func() ([]byte, error) { @@ -34,11 +35,11 @@ func TestExecConntrackTool(t *testing.T) { }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, LookPathFunc: func(cmd string) (string, error) { return cmd, nil }, } @@ -74,8 +75,8 @@ func TestExecConntrackTool(t *testing.T) { } func TestDeleteServiceConnections(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, func() ([]byte, error) { return []byte("1 flow entries have been deleted"), nil }, func() ([]byte, error) { @@ -83,11 +84,11 @@ func TestDeleteServiceConnections(t *testing.T) { }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, LookPathFunc: func(cmd string) (string, error) { return cmd, nil }, } diff --git a/pkg/proxy/winuserspace/proxysocket.go b/pkg/proxy/winuserspace/proxysocket.go index 08bc0c25a6..ced3a8b0cc 100644 --- a/pkg/proxy/winuserspace/proxysocket.go +++ b/pkg/proxy/winuserspace/proxysocket.go @@ -32,8 +32,8 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/proxy" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/ipconfig" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/util/bandwidth/linux.go b/pkg/util/bandwidth/linux.go index 9949aa3d17..539e0588f9 100644 --- a/pkg/util/bandwidth/linux.go +++ b/pkg/util/bandwidth/linux.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" "github.com/golang/glog" ) diff --git a/pkg/util/bandwidth/linux_test.go b/pkg/util/bandwidth/linux_test.go index 980f8f845c..61bfc13de3 100644 --- a/pkg/util/bandwidth/linux_test.go +++ b/pkg/util/bandwidth/linux_test.go @@ -25,7 +25,8 @@ import ( "testing" "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) var tcClassOutput = `class htb 1:1 root prio 0 rate 10000bit ceil 10000bit burst 1600b cburst 1600b @@ -63,15 +64,15 @@ func TestNextClassID(t *testing.T) { }, } for _, test := range tests { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(test.output), test.err }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fcmd, cmd, args...) + return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -245,15 +246,15 @@ func TestFindCIDRClass(t *testing.T) { }, } for _, test := range tests { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(test.output), test.err }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fcmd, cmd, args...) + return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -284,15 +285,15 @@ func TestFindCIDRClass(t *testing.T) { } func TestGetCIDRs(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(tcFilterOutput), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fcmd, cmd, args...) + return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -349,8 +350,8 @@ func TestLimit(t *testing.T) { } for _, test := range tests { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(tcClassOutput), test.err }, func() ([]byte, error) { return []byte{}, test.err }, func() ([]byte, error) { return []byte{}, test.err }, @@ -360,14 +361,14 @@ func TestLimit(t *testing.T) { }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } iface := "cbr0" @@ -465,19 +466,19 @@ func TestReset(t *testing.T) { }, } for _, test := range tests { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(tcFilterOutput), test.err }, func() ([]byte, error) { return []byte{}, test.err }, func() ([]byte, error) { return []byte{}, test.err }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } iface := "cbr0" @@ -524,15 +525,15 @@ func TestReset(t *testing.T) { var tcQdisc = "qdisc htb 1: root refcnt 2 r2q 10 default 30 direct_packets_stat 0\n" func TestReconcileInterfaceExists(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(tcQdisc), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } iface := "cbr0" @@ -562,17 +563,17 @@ func TestReconcileInterfaceExists(t *testing.T) { } func testReconcileInterfaceHasNoData(t *testing.T, output string) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(output), nil }, func() ([]byte, error) { return []byte(output), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } iface := "cbr0" @@ -635,19 +636,19 @@ var tcQdiscWrong = []string{ func TestReconcileInterfaceIsWrong(t *testing.T) { for _, test := range tcQdiscWrong { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(test), nil }, func() ([]byte, error) { return []byte("\n"), nil }, func() ([]byte, error) { return []byte("\n"), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } iface := "cbr0" diff --git a/pkg/util/ebtables/ebtables.go b/pkg/util/ebtables/ebtables.go index c90be4a8e0..4a52df0fc8 100644 --- a/pkg/util/ebtables/ebtables.go +++ b/pkg/util/ebtables/ebtables.go @@ -22,7 +22,7 @@ import ( "strings" "sync" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/util/ebtables/ebtables_test.go b/pkg/util/ebtables/ebtables_test.go index 91f6feeb65..68094135c2 100644 --- a/pkg/util/ebtables/ebtables_test.go +++ b/pkg/util/ebtables/ebtables_test.go @@ -20,31 +20,32 @@ import ( "strings" "testing" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func TestEnsureChain(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // Does not Exists - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, // Success func() ([]byte, error) { return []byte{}, nil }, // Exists func() ([]byte, error) { return nil, nil }, // Does not Exists - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, // Fail to create chain - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 2} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -76,8 +77,8 @@ func TestEnsureChain(t *testing.T) { } func TestEnsureRule(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // Exists func() ([]byte, error) { return []byte(`Bridge table: filter @@ -93,14 +94,14 @@ Bridge chain: OUTPUT, entries: 4, policy: ACCEPT Bridge chain: TEST, entries: 0, policy: ACCEPT`), nil }, // Fail to create - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 2} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } diff --git a/pkg/util/ipconfig/ipconfig.go b/pkg/util/ipconfig/ipconfig.go index ce1571719f..907c087f8e 100644 --- a/pkg/util/ipconfig/ipconfig.go +++ b/pkg/util/ipconfig/ipconfig.go @@ -23,7 +23,7 @@ import ( "github.com/golang/glog" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) // Interface is an injectable interface for running ipconfig commands. Implementations must be goroutine-safe. diff --git a/pkg/util/ipconfig/ipconfig_test.go b/pkg/util/ipconfig/ipconfig_test.go index e378cfba2f..d598d961d7 100644 --- a/pkg/util/ipconfig/ipconfig_test.go +++ b/pkg/util/ipconfig/ipconfig_test.go @@ -19,7 +19,7 @@ package ipconfig import ( "testing" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) func TestGetDnsSuffixSearchList(t *testing.T) { diff --git a/pkg/util/iptables/iptables.go b/pkg/util/iptables/iptables.go index ecd59a476f..84e0fe0301 100644 --- a/pkg/util/iptables/iptables.go +++ b/pkg/util/iptables/iptables.go @@ -27,8 +27,8 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/sets" utildbus "k8s.io/kubernetes/pkg/util/dbus" - utilexec "k8s.io/kubernetes/pkg/util/exec" utilversion "k8s.io/kubernetes/pkg/util/version" + utilexec "k8s.io/utils/exec" ) type RulePosition string diff --git a/pkg/util/iptables/iptables_test.go b/pkg/util/iptables/iptables_test.go index c7b3fbb598..92c3a94b5c 100644 --- a/pkg/util/iptables/iptables_test.go +++ b/pkg/util/iptables/iptables_test.go @@ -26,7 +26,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/util/dbus" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) const TestLockfilePath = "xtables.lock" @@ -42,8 +43,8 @@ func getIPTablesCommand(protocol Protocol) string { } func testEnsureChain(t *testing.T, protocol Protocol) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -51,18 +52,18 @@ func testEnsureChain(t *testing.T, protocol Protocol) { // Success. func() ([]byte, error) { return []byte{}, nil }, // Exists. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, // Failure. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 2} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), protocol) @@ -106,8 +107,8 @@ func TestEnsureChainIpv6(t *testing.T) { } func TestFlushChain(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -115,15 +116,15 @@ func TestFlushChain(t *testing.T) { // Success. func() ([]byte, error) { return []byte{}, nil }, // Failure. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -147,8 +148,8 @@ func TestFlushChain(t *testing.T) { } func TestDeleteChain(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -156,15 +157,15 @@ func TestDeleteChain(t *testing.T) { // Success. func() ([]byte, error) { return []byte{}, nil }, // Failure. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -188,8 +189,8 @@ func TestDeleteChain(t *testing.T) { } func TestEnsureRuleAlreadyExists(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -198,14 +199,14 @@ func TestEnsureRuleAlreadyExists(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Success of that exec means "done". - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -226,27 +227,27 @@ func TestEnsureRuleAlreadyExists(t *testing.T) { } func TestEnsureRuleNew(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, // Status 1 on the first call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, // Success on the second call. func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Failure of that means create it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -267,24 +268,24 @@ func TestEnsureRuleNew(t *testing.T) { } func TestEnsureRuleErrorChecking(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, // Status 2 on the first call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 2} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Failure of that means create it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -299,27 +300,27 @@ func TestEnsureRuleErrorChecking(t *testing.T) { } func TestEnsureRuleErrorCreating(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, // Status 1 on the first call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, // Status 1 on the second call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Failure of that means create it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -334,24 +335,24 @@ func TestEnsureRuleErrorCreating(t *testing.T) { } func TestDeleteRuleDoesNotExist(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, // Status 1 on the first call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Failure of that exec means "does not exist". - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -369,8 +370,8 @@ func TestDeleteRuleDoesNotExist(t *testing.T) { } func TestDeleteRuleExists(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -381,15 +382,15 @@ func TestDeleteRuleExists(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Success of that means delete it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -407,24 +408,24 @@ func TestDeleteRuleExists(t *testing.T) { } func TestDeleteRuleErrorChecking(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, // Status 2 on the first call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 2} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 2} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Failure of that means create it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -439,8 +440,8 @@ func TestDeleteRuleErrorChecking(t *testing.T) { } func TestDeleteRuleErrorDeleting(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -448,18 +449,18 @@ func TestDeleteRuleErrorDeleting(t *testing.T) { // Success on the first call. func() ([]byte, error) { return []byte{}, nil }, // Status 1 on the second call. - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // The second Command() call is checking the rule. Success of that means delete it. - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -487,14 +488,14 @@ func TestGetIPTablesHasCheckCommand(t *testing.T) { } for _, testCase := range testCases { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(testCase.Version), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } version, err := getIPTablesVersionString(&fexec) @@ -520,16 +521,16 @@ func TestCheckRuleWithoutCheckPresent(t *testing.T) { COMMIT # Completed on Wed Oct 29 14:56:01 2014` - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // Success. func() ([]byte, error) { return []byte(iptables_save_output), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // The first Command() call is checking the rule. Success of that exec means "done". - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := &runner{exec: &fexec} @@ -563,16 +564,16 @@ func TestCheckRuleWithoutCheckAbsent(t *testing.T) { COMMIT # Completed on Wed Oct 29 14:56:01 2014` - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // Success. func() ([]byte, error) { return []byte(iptables_save_output), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // The first Command() call is checking the rule. Success of that exec means "done". - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := &runner{exec: &fexec} @@ -615,8 +616,8 @@ func TestIPTablesWaitFlag(t *testing.T) { } func TestWaitFlagUnavailable(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.4.19"), nil }, // iptables-restore version check @@ -625,13 +626,13 @@ func TestWaitFlagUnavailable(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ // iptables version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, // iptables-restore version check - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -649,8 +650,8 @@ func TestWaitFlagUnavailable(t *testing.T) { } func TestWaitFlagOld(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.4.20"), nil }, // iptables-restore version check @@ -659,11 +660,11 @@ func TestWaitFlagOld(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -684,8 +685,8 @@ func TestWaitFlagOld(t *testing.T) { } func TestWaitFlagNew(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.4.22"), nil }, // iptables-restore version check @@ -694,11 +695,11 @@ func TestWaitFlagNew(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -726,8 +727,8 @@ func TestReload(t *testing.T) { reloaded := make(chan bool, 2) - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.4.22"), nil }, // iptables-restore version check @@ -737,7 +738,7 @@ func TestReload(t *testing.T) { // EnsureChain func() ([]byte, error) { return []byte{}, nil }, // EnsureRule abc check - func() ([]byte, error) { return []byte{}, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return []byte{}, &fakeexec.FakeExitError{Status: 1} }, // EnsureRule abc func() ([]byte, error) { return []byte{}, nil }, @@ -745,21 +746,21 @@ func TestReload(t *testing.T) { // EnsureChain func() ([]byte, error) { return []byte{}, nil }, // EnsureRule abc check - func() ([]byte, error) { return []byte{}, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return []byte{}, &fakeexec.FakeExitError{Status: 1} }, // EnsureRule abc func() ([]byte, error) { return []byte{}, nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -841,24 +842,24 @@ func TestSaveInto(t *testing.T) { COMMIT # Completed on Thu Jan 19 11:38:09 2017` - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, }, - RunScript: []exec.FakeRunAction{ + RunScript: []fakeexec.FakeRunAction{ func() ([]byte, []byte, error) { return []byte(output), nil, nil }, - func() ([]byte, []byte, error) { return nil, nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, []byte, error) { return nil, nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -894,8 +895,8 @@ COMMIT } func TestRestore(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check @@ -904,18 +905,18 @@ func TestRestore(t *testing.T) { func() ([]byte, error) { return []byte{}, nil }, func() ([]byte, error) { return []byte{}, nil }, func() ([]byte, error) { return []byte{}, nil }, - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := New(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4) @@ -978,22 +979,22 @@ func TestRestore(t *testing.T) { // TestRestoreAll tests only the simplest use case, as flag handling code is already tested in TestRestore func TestRestoreAll(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, func() ([]byte, error) { return []byte{}, nil }, - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := newInternal(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4, TestLockfilePath) @@ -1023,22 +1024,22 @@ func TestRestoreAll(t *testing.T) { // TestRestoreAllWait tests that the "wait" flag is passed to a compatible iptables-restore func TestRestoreAllWait(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("iptables-restore v1.9.22"), nil }, func() ([]byte, error) { return []byte{}, nil }, - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := newInternal(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4, TestLockfilePath) @@ -1069,22 +1070,22 @@ func TestRestoreAllWait(t *testing.T) { // TestRestoreAllWaitOldIptablesRestore tests that the "wait" flag is not passed // to a in-compatible iptables-restore func TestRestoreAllWaitOldIptablesRestore(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("unrecognized option: --version"), nil }, func() ([]byte, error) { return []byte{}, nil }, - func() ([]byte, error) { return nil, &exec.FakeExitError{Status: 1} }, + func() ([]byte, error) { return nil, &fakeexec.FakeExitError{Status: 1} }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } runner := newInternal(&fexec, dbus.NewFake(nil, nil), ProtocolIpv4, TestLockfilePath) @@ -1119,18 +1120,18 @@ func TestRestoreAllWaitOldIptablesRestore(t *testing.T) { // iptables /run lock when using an iptables-restore version that does not // support the --wait argument func TestRestoreAllGrabNewLock(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("unrecognized option: --version"), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } @@ -1162,18 +1163,18 @@ func TestRestoreAllGrabNewLock(t *testing.T) { // iptables @xtables abstract unix socket lock when using an iptables-restore // version that does not support the --wait argument func TestRestoreAllGrabOldLock(t *testing.T) { - fcmd := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fcmd := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // iptables version check func() ([]byte, error) { return []byte("iptables v1.9.22"), nil }, // iptables-restore version check func() ([]byte, error) { return []byte("unrecognized option: --version"), nil }, }, } - fexec := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fexec := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } diff --git a/pkg/util/mount/mount.go b/pkg/util/mount/mount.go index 0c458d64b4..00813a19a7 100644 --- a/pkg/util/mount/mount.go +++ b/pkg/util/mount/mount.go @@ -25,7 +25,7 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/util/mount/mount_linux.go b/pkg/util/mount/mount_linux.go index 4c141ad5b0..237348034c 100644 --- a/pkg/util/mount/mount_linux.go +++ b/pkg/util/mount/mount_linux.go @@ -31,7 +31,7 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/sets" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) const ( diff --git a/pkg/util/mount/nsenter_mount.go b/pkg/util/mount/nsenter_mount.go index 4af8ef0d82..b9e9e09cca 100644 --- a/pkg/util/mount/nsenter_mount.go +++ b/pkg/util/mount/nsenter_mount.go @@ -25,7 +25,7 @@ import ( "strings" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" ) // NsenterMounter is part of experimental support for running the kubelet diff --git a/pkg/util/mount/safe_format_and_mount_test.go b/pkg/util/mount/safe_format_and_mount_test.go index 15f46f3e38..3ea9d575b1 100644 --- a/pkg/util/mount/safe_format_and_mount_test.go +++ b/pkg/util/mount/safe_format_and_mount_test.go @@ -21,7 +21,8 @@ import ( "runtime" "testing" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) type ErrorMounter struct { @@ -74,7 +75,7 @@ func TestSafeFormatAndMount(t *testing.T) { description: "Test 'fsck' fails with exit status 4", fstype: "ext4", execScripts: []ExecArgs{ - {"fsck", []string{"-a", "/dev/foo"}, "", &exec.FakeExitError{Status: 4}}, + {"fsck", []string{"-a", "/dev/foo"}, "", &fakeexec.FakeExitError{Status: 4}}, }, expectedError: fmt.Errorf("'fsck' found errors on device /dev/foo but could not correct them: ."), }, @@ -82,14 +83,14 @@ func TestSafeFormatAndMount(t *testing.T) { description: "Test 'fsck' fails with exit status 1 (errors found and corrected)", fstype: "ext4", execScripts: []ExecArgs{ - {"fsck", []string{"-a", "/dev/foo"}, "", &exec.FakeExitError{Status: 1}}, + {"fsck", []string{"-a", "/dev/foo"}, "", &fakeexec.FakeExitError{Status: 1}}, }, }, { description: "Test 'fsck' fails with exit status other than 1 and 4 (likely unformatted device)", fstype: "ext4", execScripts: []ExecArgs{ - {"fsck", []string{"-a", "/dev/foo"}, "", &exec.FakeExitError{Status: 8}}, + {"fsck", []string{"-a", "/dev/foo"}, "", &fakeexec.FakeExitError{Status: 8}}, }, }, { @@ -180,7 +181,7 @@ func TestSafeFormatAndMount(t *testing.T) { } for _, test := range tests { - commandScripts := []exec.FakeCommandAction{} + commandScripts := []fakeexec.FakeCommandAction{} for _, expected := range test.execScripts { ecmd := expected.command eargs := expected.args @@ -196,17 +197,17 @@ func TestSafeFormatAndMount(t *testing.T) { t.Errorf("Unexpected args %v. Expecting %v", args, eargs) } } - fake := exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + fake := fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte(output), err }, }, } - return exec.InitFakeCmd(&fake, cmd, args...) + return fakeexec.InitFakeCmd(&fake, cmd, args...) } commandScripts = append(commandScripts, commandScript) } - fake := exec.FakeExec{ + fake := fakeexec.FakeExec{ CommandScript: commandScripts, } diff --git a/pkg/util/netsh/netsh.go b/pkg/util/netsh/netsh.go index 59d1a18b61..c3b963c411 100644 --- a/pkg/util/netsh/netsh.go +++ b/pkg/util/netsh/netsh.go @@ -25,7 +25,7 @@ import ( "time" "github.com/golang/glog" - utilexec "k8s.io/kubernetes/pkg/util/exec" + utilexec "k8s.io/utils/exec" ) // Interface is an injectable interface for running netsh commands. Implementations must be goroutine-safe. diff --git a/pkg/volume/aws_ebs/attacher.go b/pkg/volume/aws_ebs/attacher.go index 735f57ed97..2ccf0aa885 100644 --- a/pkg/volume/aws_ebs/attacher.go +++ b/pkg/volume/aws_ebs/attacher.go @@ -26,10 +26,10 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type awsElasticBlockStoreAttacher struct { diff --git a/pkg/volume/aws_ebs/aws_ebs.go b/pkg/volume/aws_ebs/aws_ebs.go index 712d7ac2af..480ecd234b 100644 --- a/pkg/volume/aws_ebs/aws_ebs.go +++ b/pkg/volume/aws_ebs/aws_ebs.go @@ -30,12 +30,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" kstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/azure_dd/attacher.go b/pkg/volume/azure_dd/attacher.go index 40c2a1bac8..cf71f65b1a 100644 --- a/pkg/volume/azure_dd/attacher.go +++ b/pkg/volume/azure_dd/attacher.go @@ -31,11 +31,11 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/keymutex" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type azureDiskDetacher struct { diff --git a/pkg/volume/azure_dd/azure_common.go b/pkg/volume/azure_dd/azure_common.go index 637b75a795..7c36b3984a 100644 --- a/pkg/volume/azure_dd/azure_common.go +++ b/pkg/volume/azure_dd/azure_common.go @@ -32,10 +32,10 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/volume/azure_dd/azure_common_test.go b/pkg/volume/azure_dd/azure_common_test.go index b0f4988a9e..d026e2b92e 100644 --- a/pkg/volume/azure_dd/azure_common_test.go +++ b/pkg/volume/azure_dd/azure_common_test.go @@ -22,7 +22,8 @@ import ( "testing" "time" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) type fakeFileInfo struct { @@ -107,9 +108,9 @@ func (handler *fakeIOHandler) Readlink(name string) (string, error) { } func TestIoHandler(t *testing.T) { - var fcmd exec.FakeCmd - fcmd = exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + var fcmd fakeexec.FakeCmd + fcmd = fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // cat func() ([]byte, error) { return []byte("Msft \nVirtual Disk \n"), nil @@ -120,10 +121,10 @@ func TestIoHandler(t *testing.T) { }, }, } - fake := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fake := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } disk, err := findDiskByLun(lun, &fakeIOHandler{}, &fake) diff --git a/pkg/volume/cinder/attacher.go b/pkg/volume/cinder/attacher.go index 7c6cf470bc..901876d16b 100644 --- a/pkg/volume/cinder/attacher.go +++ b/pkg/volume/cinder/attacher.go @@ -26,10 +26,10 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type cinderDiskAttacher struct { diff --git a/pkg/volume/cinder/cinder.go b/pkg/volume/cinder/cinder.go index a88e378561..6e0e25e87d 100644 --- a/pkg/volume/cinder/cinder.go +++ b/pkg/volume/cinder/cinder.go @@ -30,13 +30,13 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack" "k8s.io/kubernetes/pkg/cloudprovider/providers/rackspace" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/keymutex" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/cinder/cinder_util.go b/pkg/volume/cinder/cinder_util.go index d33bac3136..53fb5904cb 100644 --- a/pkg/volume/cinder/cinder_util.go +++ b/pkg/volume/cinder/cinder_util.go @@ -31,8 +31,8 @@ import ( "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) type CinderDiskUtil struct{} diff --git a/pkg/volume/fc/attacher.go b/pkg/volume/fc/attacher.go index f3a506b01f..f92fd1b328 100644 --- a/pkg/volume/fc/attacher.go +++ b/pkg/volume/fc/attacher.go @@ -24,10 +24,10 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type fcAttacher struct { diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index d5c4708e76..634cdb4ca6 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -23,11 +23,11 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/flexvolume/attacher-defaults.go b/pkg/volume/flexvolume/attacher-defaults.go index 8cfb3f00ed..3073f4def0 100644 --- a/pkg/volume/flexvolume/attacher-defaults.go +++ b/pkg/volume/flexvolume/attacher-defaults.go @@ -22,9 +22,9 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) type attacherDefaults flexVolumeAttacher diff --git a/pkg/volume/flexvolume/common_test.go b/pkg/volume/flexvolume/common_test.go index 514595ea64..079b32adac 100644 --- a/pkg/volume/flexvolume/common_test.go +++ b/pkg/volume/flexvolume/common_test.go @@ -23,9 +23,10 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/volume" volumetesting "k8s.io/kubernetes/pkg/volume/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func testPlugin() (*flexVolumeAttachablePlugin, string) { @@ -43,7 +44,7 @@ func testPlugin() (*flexVolumeAttachablePlugin, string) { }, rootDir } -func assertDriverCall(t *testing.T, output exec.FakeCombinedOutputAction, expectedCommand string, expectedArgs ...string) exec.FakeCommandAction { +func assertDriverCall(t *testing.T, output fakeexec.FakeCombinedOutputAction, expectedCommand string, expectedArgs ...string) fakeexec.FakeCommandAction { return func(cmd string, args ...string) exec.Cmd { if cmd != "/plugin/test" { t.Errorf("Wrong executable called: got %v, expected %v", cmd, "/plugin/test") @@ -55,20 +56,20 @@ func assertDriverCall(t *testing.T, output exec.FakeCombinedOutputAction, expect if !sameArgs(cmdArgs, expectedArgs) { t.Errorf("Wrong args for %s: got %v, expected %v", args[0], cmdArgs, expectedArgs) } - return &exec.FakeCmd{ + return &fakeexec.FakeCmd{ Argv: args, - CombinedOutputScript: []exec.FakeCombinedOutputAction{output}, + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{output}, } } } -func fakeRunner(fakeCommands ...exec.FakeCommandAction) exec.Interface { - return &exec.FakeExec{ +func fakeRunner(fakeCommands ...fakeexec.FakeCommandAction) exec.Interface { + return &fakeexec.FakeExec{ CommandScript: fakeCommands, } } -func fakeResultOutput(result interface{}) exec.FakeCombinedOutputAction { +func fakeResultOutput(result interface{}) fakeexec.FakeCombinedOutputAction { return func() ([]byte, error) { bytes, err := json.Marshal(result) if err != nil { @@ -78,11 +79,11 @@ func fakeResultOutput(result interface{}) exec.FakeCombinedOutputAction { } } -func successOutput() exec.FakeCombinedOutputAction { +func successOutput() fakeexec.FakeCombinedOutputAction { return fakeResultOutput(&DriverStatus{StatusSuccess, "", "", "", true, nil}) } -func notSupportedOutput() exec.FakeCombinedOutputAction { +func notSupportedOutput() fakeexec.FakeCombinedOutputAction { return fakeResultOutput(&DriverStatus{StatusNotSupported, "", "", "", false, nil}) } diff --git a/pkg/volume/flexvolume/mounter.go b/pkg/volume/flexvolume/mounter.go index 0fc791e678..316928c429 100644 --- a/pkg/volume/flexvolume/mounter.go +++ b/pkg/volume/flexvolume/mounter.go @@ -19,9 +19,9 @@ package flexvolume import ( "strconv" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) // FlexVolumeMounter is the disk that will be exposed by this plugin. diff --git a/pkg/volume/flexvolume/plugin.go b/pkg/volume/flexvolume/plugin.go index 36c5e6e9d6..7b37514009 100644 --- a/pkg/volume/flexvolume/plugin.go +++ b/pkg/volume/flexvolume/plugin.go @@ -26,10 +26,10 @@ import ( api "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) const flexVolumePluginName = "kubernetes.io/flexvolume" diff --git a/pkg/volume/flexvolume/plugin_test.go b/pkg/volume/flexvolume/plugin_test.go index c45ebb0f3d..17c540a874 100644 --- a/pkg/volume/flexvolume/plugin_test.go +++ b/pkg/volume/flexvolume/plugin_test.go @@ -19,7 +19,7 @@ package flexvolume import ( "testing" - "k8s.io/kubernetes/pkg/util/exec" + exec "k8s.io/utils/exec/testing" ) func TestInit(t *testing.T) { diff --git a/pkg/volume/flexvolume/unmounter.go b/pkg/volume/flexvolume/unmounter.go index 2959b53f94..ecb7d89230 100644 --- a/pkg/volume/flexvolume/unmounter.go +++ b/pkg/volume/flexvolume/unmounter.go @@ -21,9 +21,9 @@ import ( "os" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) // FlexVolumeUnmounter is the disk that will be cleaned by this plugin. diff --git a/pkg/volume/gce_pd/attacher.go b/pkg/volume/gce_pd/attacher.go index c5cba531a4..0cf8b3d672 100644 --- a/pkg/volume/gce_pd/attacher.go +++ b/pkg/volume/gce_pd/attacher.go @@ -28,10 +28,10 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type gcePersistentDiskAttacher struct { diff --git a/pkg/volume/gce_pd/gce_util.go b/pkg/volume/gce_pd/gce_util.go index e8d63257e2..03efa75b31 100644 --- a/pkg/volume/gce_pd/gce_util.go +++ b/pkg/volume/gce_pd/gce_util.go @@ -28,9 +28,9 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/cloudprovider" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/volume/git_repo/git_repo.go b/pkg/volume/git_repo/git_repo.go index c89093d0d1..1948971e94 100644 --- a/pkg/volume/git_repo/git_repo.go +++ b/pkg/volume/git_repo/git_repo.go @@ -24,10 +24,10 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/git_repo/git_repo_test.go b/pkg/volume/git_repo/git_repo_test.go index 1fe36211ac..e851e43c47 100644 --- a/pkg/volume/git_repo/git_repo_test.go +++ b/pkg/volume/git_repo/git_repo_test.go @@ -28,10 +28,11 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/empty_dir" volumetest "k8s.io/kubernetes/pkg/volume/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func newTestHost(t *testing.T) (string, volume.VolumeHost) { @@ -320,8 +321,8 @@ func doTestSetUp(scenario struct { allErrs := []error{} // Construct combined outputs from expected commands - var fakeOutputs []exec.FakeCombinedOutputAction - var fcmd exec.FakeCmd + var fakeOutputs []fakeexec.FakeCombinedOutputAction + var fcmd fakeexec.FakeCmd for _, expected := range expecteds { if expected.cmd[1] == "clone" { fakeOutputs = append(fakeOutputs, func() ([]byte, error) { @@ -336,19 +337,19 @@ func doTestSetUp(scenario struct { }) } } - fcmd = exec.FakeCmd{ + fcmd = fakeexec.FakeCmd{ CombinedOutputScript: fakeOutputs, } // Construct fake exec outputs from fcmd - var fakeAction []exec.FakeCommandAction + var fakeAction []fakeexec.FakeCommandAction for i := 0; i < len(expecteds); i++ { fakeAction = append(fakeAction, func(cmd string, args ...string) exec.Cmd { - return exec.InitFakeCmd(&fcmd, cmd, args...) + return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }) } - fake := exec.FakeExec{ + fake := fakeexec.FakeExec{ CommandScript: fakeAction, } diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index d3b248f15d..4e3ec59353 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -37,12 +37,12 @@ import ( "k8s.io/apimachinery/pkg/types" clientset "k8s.io/client-go/kubernetes" v1helper "k8s.io/kubernetes/pkg/api/v1/helper" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // ProbeVolumePlugins is the primary entrypoint for volume plugins. diff --git a/pkg/volume/glusterfs/glusterfs_test.go b/pkg/volume/glusterfs/glusterfs_test.go index 1a252074b1..687259ec17 100644 --- a/pkg/volume/glusterfs/glusterfs_test.go +++ b/pkg/volume/glusterfs/glusterfs_test.go @@ -30,10 +30,11 @@ import ( "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" utiltesting "k8s.io/client-go/util/testing" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumetest "k8s.io/kubernetes/pkg/volume/testing" + "k8s.io/utils/exec" + fakeexec "k8s.io/utils/exec/testing" ) func TestCanSupport(t *testing.T) { @@ -103,18 +104,18 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { } ep := &v1.Endpoints{ObjectMeta: metav1.ObjectMeta{Name: "foo"}, Subsets: []v1.EndpointSubset{{ Addresses: []v1.EndpointAddress{{IP: "127.0.0.1"}}}}} - var fcmd exec.FakeCmd - fcmd = exec.FakeCmd{ - CombinedOutputScript: []exec.FakeCombinedOutputAction{ + var fcmd fakeexec.FakeCmd + fcmd = fakeexec.FakeCmd{ + CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ // mount func() ([]byte, error) { return []byte{}, nil }, }, } - fake := exec.FakeExec{ - CommandScript: []exec.FakeCommandAction{ - func(cmd string, args ...string) exec.Cmd { return exec.InitFakeCmd(&fcmd, cmd, args...) }, + fake := fakeexec.FakeExec{ + CommandScript: []fakeexec.FakeCommandAction{ + func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) }, }, } pod := &v1.Pod{ObjectMeta: metav1.ObjectMeta{UID: types.UID("poduid")}} diff --git a/pkg/volume/iscsi/iscsi.go b/pkg/volume/iscsi/iscsi.go index 97de4128f6..3e47cc02a9 100644 --- a/pkg/volume/iscsi/iscsi.go +++ b/pkg/volume/iscsi/iscsi.go @@ -24,11 +24,11 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" ioutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/nfs/nfs.go b/pkg/volume/nfs/nfs.go index cf2eaf8b99..52169caf34 100644 --- a/pkg/volume/nfs/nfs.go +++ b/pkg/volume/nfs/nfs.go @@ -25,11 +25,11 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/photon_pd/attacher.go b/pkg/volume/photon_pd/attacher.go index 2faf1d6e4d..9dd7e3f767 100644 --- a/pkg/volume/photon_pd/attacher.go +++ b/pkg/volume/photon_pd/attacher.go @@ -27,10 +27,10 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider/providers/photon" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type photonPersistentDiskAttacher struct { diff --git a/pkg/volume/photon_pd/photon_pd.go b/pkg/volume/photon_pd/photon_pd.go index dffa347c48..446cd9aa06 100644 --- a/pkg/volume/photon_pd/photon_pd.go +++ b/pkg/volume/photon_pd/photon_pd.go @@ -26,12 +26,12 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/portworx/portworx.go b/pkg/volume/portworx/portworx.go index ec971a7e37..e65d4687f4 100644 --- a/pkg/volume/portworx/portworx.go +++ b/pkg/volume/portworx/portworx.go @@ -25,11 +25,11 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" kstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/pkg/volume/quobyte/quobyte.go b/pkg/volume/quobyte/quobyte.go index 5fae74de72..a63d952aa2 100644 --- a/pkg/volume/quobyte/quobyte.go +++ b/pkg/volume/quobyte/quobyte.go @@ -28,12 +28,12 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // ProbeVolumePlugins is the primary entrypoint for volume plugins. diff --git a/pkg/volume/rbd/rbd.go b/pkg/volume/rbd/rbd.go index 6acfa671f0..6590f659da 100644 --- a/pkg/volume/rbd/rbd.go +++ b/pkg/volume/rbd/rbd.go @@ -28,12 +28,12 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" volutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) var ( diff --git a/pkg/volume/rbd/rbd_util.go b/pkg/volume/rbd/rbd_util.go index 1b88cb642a..001054e903 100644 --- a/pkg/volume/rbd/rbd_util.go +++ b/pkg/volume/rbd/rbd_util.go @@ -35,10 +35,10 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/volume" + "k8s.io/utils/exec" ) const ( diff --git a/pkg/volume/scaleio/sio_volume.go b/pkg/volume/scaleio/sio_volume.go index 01cd7ceb32..8a051748e8 100644 --- a/pkg/volume/scaleio/sio_volume.go +++ b/pkg/volume/scaleio/sio_volume.go @@ -29,12 +29,12 @@ import ( meta "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" kstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) type sioVolume struct { diff --git a/pkg/volume/storageos/storageos.go b/pkg/volume/storageos/storageos.go index 5a416c348d..6541f2eeb3 100644 --- a/pkg/volume/storageos/storageos.go +++ b/pkg/volume/storageos/storageos.go @@ -31,12 +31,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" kstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // ProbeVolumePlugins is the primary entrypoint for volume plugins. diff --git a/pkg/volume/storageos/storageos_util.go b/pkg/volume/storageos/storageos_util.go index d4cadd873f..b2d1767abf 100644 --- a/pkg/volume/storageos/storageos_util.go +++ b/pkg/volume/storageos/storageos_util.go @@ -23,7 +23,7 @@ import ( "path" "strings" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/utils/exec" "github.com/golang/glog" storageosapi "github.com/storageos/go-api" diff --git a/pkg/volume/vsphere_volume/attacher.go b/pkg/volume/vsphere_volume/attacher.go index 747d9d8d69..9155d84ada 100644 --- a/pkg/volume/vsphere_volume/attacher.go +++ b/pkg/volume/vsphere_volume/attacher.go @@ -25,11 +25,11 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/keymutex" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/utils/exec" ) type vsphereVMDKAttacher struct { diff --git a/pkg/volume/vsphere_volume/vsphere_volume.go b/pkg/volume/vsphere_volume/vsphere_volume.go index e4687a8286..0871055d33 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume.go +++ b/pkg/volume/vsphere_volume/vsphere_volume.go @@ -27,12 +27,12 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/mount" utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/volumehelper" + "k8s.io/utils/exec" ) // This is the primary entrypoint for volume plugins. diff --git a/test/e2e/framework/ingress_utils.go b/test/e2e/framework/ingress_utils.go index bf289b8cb4..5aa5cbc116 100644 --- a/test/e2e/framework/ingress_utils.go +++ b/test/e2e/framework/ingress_utils.go @@ -48,10 +48,10 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" - utilexec "k8s.io/kubernetes/pkg/util/exec" utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/test/e2e/manifest" testutils "k8s.io/kubernetes/test/utils" + utilexec "k8s.io/utils/exec" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 18dae6704c..112272037f 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -90,13 +90,13 @@ import ( "k8s.io/kubernetes/pkg/kubelet/util/format" "k8s.io/kubernetes/pkg/master/ports" sshutil "k8s.io/kubernetes/pkg/ssh" - uexec "k8s.io/kubernetes/pkg/util/exec" "k8s.io/kubernetes/pkg/util/system" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" "k8s.io/kubernetes/test/e2e/framework/ginkgowrapper" testutil "k8s.io/kubernetes/test/utils" + uexec "k8s.io/utils/exec" ) const ( diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 516dd8b4bd..326c015dd0 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -59,12 +59,12 @@ import ( batchv2alpha1 "k8s.io/kubernetes/pkg/apis/batch/v2alpha1" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl/cmd/util" - uexec "k8s.io/kubernetes/pkg/util/exec" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/generated" "k8s.io/kubernetes/test/e2e/scheduling" testutils "k8s.io/kubernetes/test/utils" + uexec "k8s.io/utils/exec" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega"