From 2612e0c78ad18ac87bbd200d547100cf99f36089 Mon Sep 17 00:00:00 2001 From: Dmitry Shulyak Date: Fri, 14 Apr 2017 12:33:57 +0300 Subject: [PATCH] Move client/unversioned/remotecommand to client-go Module remotecommand originally part of kubernetes/pkg/client/unversioned was moved to client-go/tools, and will be used as authoritative in kubectl, e2e and other places. Module remotecommand relies on util/exec module which will be copied to client-go/pkg/util --- hack/.linted_packages | 1 - pkg/client/tests/BUILD | 2 +- pkg/client/tests/portfoward_test.go | 2 +- pkg/client/tests/remotecommand_test.go | 2 +- pkg/client/unversioned/BUILD | 1 - pkg/kubectl/cmd/BUILD | 4 +- pkg/kubectl/cmd/attach.go | 2 +- pkg/kubectl/cmd/attach_test.go | 2 +- pkg/kubectl/cmd/exec.go | 2 +- pkg/kubectl/cmd/exec_test.go | 2 +- pkg/kubectl/cmd/portforward.go | 2 +- pkg/kubelet/BUILD | 2 +- pkg/kubelet/container/BUILD | 4 +- pkg/kubelet/container/resize.go | 2 +- pkg/kubelet/container/runtime.go | 4 +- pkg/kubelet/container/testing/BUILD | 2 +- pkg/kubelet/container/testing/fake_runtime.go | 2 +- pkg/kubelet/container/testing/runtime_mock.go | 2 +- pkg/kubelet/dockershim/BUILD | 6 +- pkg/kubelet/dockershim/docker_streaming.go | 6 +- pkg/kubelet/dockershim/exec.go | 2 +- pkg/kubelet/kubelet_pods.go | 2 +- pkg/kubelet/rkt/BUILD | 2 +- pkg/kubelet/rkt/rkt.go | 2 +- pkg/kubelet/server/BUILD | 4 +- pkg/kubelet/server/remotecommand/BUILD | 2 +- pkg/kubelet/server/remotecommand/attach.go | 2 +- pkg/kubelet/server/remotecommand/exec.go | 2 +- .../server/remotecommand/httpstream.go | 2 +- pkg/kubelet/server/server.go | 2 +- pkg/kubelet/server/server_test.go | 2 +- pkg/kubelet/server/streaming/BUILD | 8 +- pkg/kubelet/server/streaming/server.go | 4 +- pkg/kubelet/server/streaming/server_test.go | 4 +- pkg/util/term/BUILD | 2 +- pkg/util/term/resize.go | 2 +- pkg/util/term/resizeevents.go | 2 +- pkg/util/term/setsize.go | 2 +- .../src/k8s.io/client-go/pkg/util/exec/BUILD | 14 ++ .../k8s.io/client-go/pkg/util/exec/exec.go | 188 ++++++++++++++++++ .../client-go/tools}/remotecommand/BUILD | 47 ++--- .../client-go/tools}/remotecommand/doc.go | 2 +- .../tools}/remotecommand/errorstream.go | 0 .../tools}/remotecommand/remotecommand.go | 0 .../client-go/tools}/remotecommand/resize.go | 0 .../client-go/tools}/remotecommand/v1.go | 2 +- .../client-go/tools}/remotecommand/v2.go | 2 +- .../client-go/tools}/remotecommand/v2_test.go | 2 +- .../client-go/tools}/remotecommand/v3.go | 2 +- .../client-go/tools}/remotecommand/v4.go | 2 +- .../client-go/tools}/remotecommand/v4_test.go | 0 test/e2e/framework/BUILD | 2 +- test/e2e/framework/exec_util.go | 2 +- test/test_owners.csv | 1 - 54 files changed, 277 insertions(+), 89 deletions(-) create mode 100644 staging/src/k8s.io/client-go/pkg/util/exec/BUILD create mode 100644 staging/src/k8s.io/client-go/pkg/util/exec/exec.go rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/BUILD (79%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/doc.go (89%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/errorstream.go (100%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/remotecommand.go (100%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/resize.go (100%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v1.go (99%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v2.go (99%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v2_test.go (99%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v3.go (98%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v4.go (98%) rename {pkg/client/unversioned => staging/src/k8s.io/client-go/tools}/remotecommand/v4_test.go (100%) diff --git a/hack/.linted_packages b/hack/.linted_packages index 32ef124db7e..fc3af381af9 100644 --- a/hack/.linted_packages +++ b/hack/.linted_packages @@ -170,7 +170,6 @@ pkg/client/listers/storage/v1beta1 pkg/client/metrics pkg/client/metrics/prometheus pkg/client/unversioned -pkg/client/unversioned/remotecommand pkg/cloudprovider/providers pkg/cloudprovider/providers/azure pkg/cloudprovider/providers/cloudstack diff --git a/pkg/client/tests/BUILD b/pkg/client/tests/BUILD index c94feb489b9..b2778e9083a 100644 --- a/pkg/client/tests/BUILD +++ b/pkg/client/tests/BUILD @@ -25,7 +25,6 @@ go_test( "//pkg/api/v1:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", "//pkg/kubelet/server/remotecommand:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", @@ -40,6 +39,7 @@ go_test( "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/portforward:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", ], ) diff --git a/pkg/client/tests/portfoward_test.go b/pkg/client/tests/portfoward_test.go index 077901ae41b..35d633f8008 100644 --- a/pkg/client/tests/portfoward_test.go +++ b/pkg/client/tests/portfoward_test.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/types" restclient "k8s.io/client-go/rest" . "k8s.io/client-go/tools/portforward" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/kubelet/server/portforward" ) diff --git a/pkg/client/tests/remotecommand_test.go b/pkg/client/tests/remotecommand_test.go index f30283a7901..cd89b81e0fa 100644 --- a/pkg/client/tests/remotecommand_test.go +++ b/pkg/client/tests/remotecommand_test.go @@ -36,9 +36,9 @@ import ( "k8s.io/apimachinery/pkg/util/httpstream" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" restclient "k8s.io/client-go/rest" + remoteclient "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - remoteclient "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubelet/server/remotecommand" ) diff --git a/pkg/client/unversioned/BUILD b/pkg/client/unversioned/BUILD index 7c479886a88..3f1f8e4c9a1 100644 --- a/pkg/client/unversioned/BUILD +++ b/pkg/client/unversioned/BUILD @@ -61,7 +61,6 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//pkg/client/unversioned/remotecommand:all-srcs", "//pkg/client/unversioned/testclient/simple:all-srcs", ], tags = ["automanaged"], diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index b99cb0951cf..47d3316e435 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -84,7 +84,6 @@ go_library( "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", "//pkg/client/unversioned:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/auth:go_default_library", "//pkg/kubectl/cmd/config:go_default_library", @@ -142,6 +141,7 @@ go_library( "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/portforward:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) @@ -206,7 +206,6 @@ go_test( "//pkg/apis/extensions:go_default_library", "//pkg/apis/policy:go_default_library", "//pkg/apis/rbac:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", @@ -241,6 +240,7 @@ go_test( "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest/fake:go_default_library", "//vendor/k8s.io/client-go/rest/watch:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/heapster/metrics/apis/metrics/v1alpha1:go_default_library", ], ) diff --git a/pkg/kubectl/cmd/attach.go b/pkg/kubectl/cmd/attach.go index d5b8a5276a8..ecf42ae9d84 100644 --- a/pkg/kubectl/cmd/attach.go +++ b/pkg/kubectl/cmd/attach.go @@ -29,9 +29,9 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/kubectl/resource" diff --git a/pkg/kubectl/cmd/attach_test.go b/pkg/kubectl/cmd/attach_test.go index 49d80a4d06d..d5f32249380 100644 --- a/pkg/kubectl/cmd/attach_test.go +++ b/pkg/kubectl/cmd/attach_test.go @@ -33,8 +33,8 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" ) diff --git a/pkg/kubectl/cmd/exec.go b/pkg/kubectl/cmd/exec.go index fbee7685179..346b0158beb 100644 --- a/pkg/kubectl/cmd/exec.go +++ b/pkg/kubectl/cmd/exec.go @@ -27,9 +27,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/util/i18n" diff --git a/pkg/kubectl/cmd/exec_test.go b/pkg/kubectl/cmd/exec_test.go index 6ba9410cddc..9b50f9c6dc5 100644 --- a/pkg/kubectl/cmd/exec_test.go +++ b/pkg/kubectl/cmd/exec_test.go @@ -32,8 +32,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/rest/fake" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing" "k8s.io/kubernetes/pkg/util/term" ) diff --git a/pkg/kubectl/cmd/portforward.go b/pkg/kubectl/cmd/portforward.go index cf8b452bc57..75e9e33ef37 100644 --- a/pkg/kubectl/cmd/portforward.go +++ b/pkg/kubectl/cmd/portforward.go @@ -28,9 +28,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/portforward" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/util/i18n" diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index ac898ded8d0..3bb4a3443f0 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -46,7 +46,6 @@ go_library( "//pkg/capabilities:go_default_library", "//pkg/client/clientset_generated/clientset:go_default_library", "//pkg/client/listers/core/v1:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/features:go_default_library", "//pkg/fieldpath:go_default_library", @@ -134,6 +133,7 @@ go_library( "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/clock:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", "//vendor/k8s.io/client-go/util/integer:go_default_library", diff --git a/pkg/kubelet/container/BUILD b/pkg/kubelet/container/BUILD index 4d5e83269be..6ce5b4a47d4 100644 --- a/pkg/kubelet/container/BUILD +++ b/pkg/kubelet/container/BUILD @@ -29,8 +29,7 @@ go_library( "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", "//pkg/api/v1/ref:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", - "//pkg/kubelet/apis/cri/v1alpha1:go_default_library", + "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/util/format:go_default_library", "//pkg/kubelet/util/ioutils:go_default_library", @@ -46,6 +45,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/client-go/pkg/api/v1:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", ], ) diff --git a/pkg/kubelet/container/resize.go b/pkg/kubelet/container/resize.go index b880f8fbdd2..d7b75eedec0 100644 --- a/pkg/kubelet/container/resize.go +++ b/pkg/kubelet/container/resize.go @@ -18,7 +18,7 @@ package container import ( "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" ) // handleResizing spawns a goroutine that processes the resize channel, calling resizeFunc for each diff --git a/pkg/kubelet/container/runtime.go b/pkg/kubelet/container/runtime.go index 6d8b7204ef4..9a45ab75a35 100644 --- a/pkg/kubelet/container/runtime.go +++ b/pkg/kubelet/container/runtime.go @@ -26,10 +26,10 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" "k8s.io/kubernetes/pkg/volume" ) diff --git a/pkg/kubelet/container/testing/BUILD b/pkg/kubelet/container/testing/BUILD index 29d3839ba40..b269c6a5431 100644 --- a/pkg/kubelet/container/testing/BUILD +++ b/pkg/kubelet/container/testing/BUILD @@ -20,12 +20,12 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/api/v1:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/volume:go_default_library", "//vendor/github.com/golang/mock/gomock:go_default_library", "//vendor/github.com/stretchr/testify/mock:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", ], ) diff --git a/pkg/kubelet/container/testing/fake_runtime.go b/pkg/kubelet/container/testing/fake_runtime.go index ceaaaf076f8..c05af6aeb9e 100644 --- a/pkg/kubelet/container/testing/fake_runtime.go +++ b/pkg/kubelet/container/testing/fake_runtime.go @@ -25,9 +25,9 @@ import ( "time" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" . "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/volume" ) diff --git a/pkg/kubelet/container/testing/runtime_mock.go b/pkg/kubelet/container/testing/runtime_mock.go index 5f05d8c20af..2864152062b 100644 --- a/pkg/kubelet/container/testing/runtime_mock.go +++ b/pkg/kubelet/container/testing/runtime_mock.go @@ -22,9 +22,9 @@ import ( "github.com/stretchr/testify/mock" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" . "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/volume" ) diff --git a/pkg/kubelet/dockershim/BUILD b/pkg/kubelet/dockershim/BUILD index 83cfe97c64c..de1582825ec 100644 --- a/pkg/kubelet/dockershim/BUILD +++ b/pkg/kubelet/dockershim/BUILD @@ -32,9 +32,8 @@ go_library( "//pkg/api/v1:go_default_library", "//pkg/api/v1/helper:go_default_library", "//pkg/apis/componentconfig:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", - "//pkg/kubelet/apis/cri:go_default_library", - "//pkg/kubelet/apis/cri/v1alpha1:go_default_library", + "//pkg/kubelet/api:go_default_library", + "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/dockershim/cm:go_default_library", @@ -67,6 +66,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) diff --git a/pkg/kubelet/dockershim/docker_streaming.go b/pkg/kubelet/dockershim/docker_streaming.go index 44cc30b2b8c..cfec6ef0e89 100644 --- a/pkg/kubelet/dockershim/docker_streaming.go +++ b/pkg/kubelet/dockershim/docker_streaming.go @@ -26,9 +26,11 @@ import ( "time" dockertypes "github.com/docker/engine-api/types" + "github.com/golang/glog" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1" + + "k8s.io/client-go/tools/remotecommand" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/server/streaming" "k8s.io/kubernetes/pkg/kubelet/util/ioutils" diff --git a/pkg/kubelet/dockershim/exec.go b/pkg/kubelet/dockershim/exec.go index 3aee5e045fb..1d73a8a8d5c 100644 --- a/pkg/kubelet/dockershim/exec.go +++ b/pkg/kubelet/dockershim/exec.go @@ -26,7 +26,7 @@ import ( dockertypes "github.com/docker/engine-api/types" "github.com/golang/glog" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "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" diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index 978bbc2d3c0..0af466cbcad 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -40,13 +40,13 @@ import ( "k8s.io/apimachinery/pkg/util/sets" utilvalidation "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" v1helper "k8s.io/kubernetes/pkg/api/v1/helper" podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/api/v1/resource" "k8s.io/kubernetes/pkg/api/v1/validation" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/fieldpath" "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" diff --git a/pkg/kubelet/rkt/BUILD b/pkg/kubelet/rkt/BUILD index 968b7781069..f8298914919 100644 --- a/pkg/kubelet/rkt/BUILD +++ b/pkg/kubelet/rkt/BUILD @@ -24,7 +24,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/api/v1:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/credentialprovider:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/events:go_default_library", @@ -58,6 +57,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", ], ) diff --git a/pkg/kubelet/rkt/rkt.go b/pkg/kubelet/rkt/rkt.go index 0ce8ee24cc6..e732ff21fce 100644 --- a/pkg/kubelet/rkt/rkt.go +++ b/pkg/kubelet/rkt/rkt.go @@ -47,9 +47,9 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" utilwait "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/tools/record" + "k8s.io/client-go/tools/remotecommand" "k8s.io/client-go/util/flowcontrol" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/credentialprovider" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/events" diff --git a/pkg/kubelet/server/BUILD b/pkg/kubelet/server/BUILD index 36fc30e42da..c823ac4f80d 100644 --- a/pkg/kubelet/server/BUILD +++ b/pkg/kubelet/server/BUILD @@ -20,7 +20,6 @@ go_library( "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", "//pkg/api/v1/validation:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", @@ -48,6 +47,7 @@ go_library( "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/httplog:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flushwriter:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) @@ -63,7 +63,6 @@ go_test( deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/container/testing:go_default_library", @@ -84,6 +83,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", ], ) diff --git a/pkg/kubelet/server/remotecommand/BUILD b/pkg/kubelet/server/remotecommand/BUILD index 041cf15bcaa..dd350d06518 100644 --- a/pkg/kubelet/server/remotecommand/BUILD +++ b/pkg/kubelet/server/remotecommand/BUILD @@ -19,7 +19,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/util/exec:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -31,6 +30,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/httplog:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/wsstream:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) diff --git a/pkg/kubelet/server/remotecommand/attach.go b/pkg/kubelet/server/remotecommand/attach.go index 2c7736b0a77..e266f34fef4 100644 --- a/pkg/kubelet/server/remotecommand/attach.go +++ b/pkg/kubelet/server/remotecommand/attach.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" ) // Attacher knows how to attach to a running container in a pod. diff --git a/pkg/kubelet/server/remotecommand/exec.go b/pkg/kubelet/server/remotecommand/exec.go index 8c248979c1d..8d14a937a3b 100644 --- a/pkg/kubelet/server/remotecommand/exec.go +++ b/pkg/kubelet/server/remotecommand/exec.go @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/types" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" utilexec "k8s.io/kubernetes/pkg/util/exec" ) diff --git a/pkg/kubelet/server/remotecommand/httpstream.go b/pkg/kubelet/server/remotecommand/httpstream.go index 27a9fc4dbfc..f09b5e400b5 100644 --- a/pkg/kubelet/server/remotecommand/httpstream.go +++ b/pkg/kubelet/server/remotecommand/httpstream.go @@ -31,8 +31,8 @@ import ( remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/util/wsstream" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "github.com/golang/glog" ) diff --git a/pkg/kubelet/server/server.go b/pkg/kubelet/server/server.go index a395431ce8a..bbb04dc2fb9 100644 --- a/pkg/kubelet/server/server.go +++ b/pkg/kubelet/server/server.go @@ -48,10 +48,10 @@ import ( "k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/server/httplog" "k8s.io/apiserver/pkg/util/flushwriter" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1/validation" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/server/portforward" diff --git a/pkg/kubelet/server/server_test.go b/pkg/kubelet/server/server_test.go index da2be51d08a..c1a28ec5032 100644 --- a/pkg/kubelet/server/server_test.go +++ b/pkg/kubelet/server/server_test.go @@ -46,10 +46,10 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authorization/authorizer" + "k8s.io/client-go/tools/remotecommand" utiltesting "k8s.io/client-go/util/testing" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" kubecontainertesting "k8s.io/kubernetes/pkg/kubelet/container/testing" diff --git a/pkg/kubelet/server/streaming/BUILD b/pkg/kubelet/server/streaming/BUILD index d948b1d6470..6982ff1830a 100644 --- a/pkg/kubelet/server/streaming/BUILD +++ b/pkg/kubelet/server/streaming/BUILD @@ -17,8 +17,7 @@ go_library( ], tags = ["automanaged"], deps = [ - "//pkg/client/unversioned/remotecommand:go_default_library", - "//pkg/kubelet/apis/cri/v1alpha1:go_default_library", + "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", "//pkg/kubelet/server/remotecommand:go_default_library", "//vendor/github.com/emicklei/go-restful:go_default_library", @@ -26,6 +25,7 @@ go_library( "//vendor/google.golang.org/grpc/codes:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/clock:go_default_library", ], ) @@ -40,13 +40,13 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", - "//pkg/kubelet/apis/cri/v1alpha1:go_default_library", + "//pkg/kubelet/api/v1alpha1/runtime:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/clock:go_default_library", ], ) diff --git a/pkg/kubelet/server/streaming/server.go b/pkg/kubelet/server/streaming/server.go index b026229a426..7291860fbe1 100644 --- a/pkg/kubelet/server/streaming/server.go +++ b/pkg/kubelet/server/streaming/server.go @@ -32,8 +32,8 @@ import ( "k8s.io/apimachinery/pkg/types" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1" + "k8s.io/client-go/tools/remotecommand" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" "k8s.io/kubernetes/pkg/kubelet/server/portforward" remotecommandserver "k8s.io/kubernetes/pkg/kubelet/server/remotecommand" ) diff --git a/pkg/kubelet/server/streaming/server_test.go b/pkg/kubelet/server/streaming/server_test.go index 5283a40902f..e7a89ff4575 100644 --- a/pkg/kubelet/server/streaming/server_test.go +++ b/pkg/kubelet/server/streaming/server_test.go @@ -32,9 +32,9 @@ import ( remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" - runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime" kubeletportforward "k8s.io/kubernetes/pkg/kubelet/server/portforward" ) diff --git a/pkg/util/term/BUILD b/pkg/util/term/BUILD index 86d407f5995..e238ccfc48a 100644 --- a/pkg/util/term/BUILD +++ b/pkg/util/term/BUILD @@ -19,11 +19,11 @@ go_library( ], tags = ["automanaged"], deps = [ - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/util/interrupt:go_default_library", "//vendor/github.com/docker/docker/pkg/term:go_default_library", "//vendor/github.com/mitchellh/go-wordwrap:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) diff --git a/pkg/util/term/resize.go b/pkg/util/term/resize.go index e7aa2bb952b..7ca09a8586b 100644 --- a/pkg/util/term/resize.go +++ b/pkg/util/term/resize.go @@ -21,7 +21,7 @@ import ( "github.com/docker/docker/pkg/term" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" ) // GetSize returns the current size of the user's terminal. If it isn't a terminal, diff --git a/pkg/util/term/resizeevents.go b/pkg/util/term/resizeevents.go index ac2faba0446..75e9690df71 100644 --- a/pkg/util/term/resizeevents.go +++ b/pkg/util/term/resizeevents.go @@ -24,7 +24,7 @@ import ( "syscall" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" ) // monitorResizeEvents spawns a goroutine that waits for SIGWINCH signals (these indicate the diff --git a/pkg/util/term/setsize.go b/pkg/util/term/setsize.go index 32b8526259c..8cccd431a8c 100644 --- a/pkg/util/term/setsize.go +++ b/pkg/util/term/setsize.go @@ -20,7 +20,7 @@ package term import ( "github.com/docker/docker/pkg/term" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" + "k8s.io/client-go/tools/remotecommand" ) // SetSize sets the terminal size associated with fd. diff --git a/staging/src/k8s.io/client-go/pkg/util/exec/BUILD b/staging/src/k8s.io/client-go/pkg/util/exec/BUILD new file mode 100644 index 00000000000..4976f6075a0 --- /dev/null +++ b/staging/src/k8s.io/client-go/pkg/util/exec/BUILD @@ -0,0 +1,14 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["exec.go"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/pkg/util/exec/exec.go b/staging/src/k8s.io/client-go/pkg/util/exec/exec.go new file mode 100644 index 00000000000..327ddf5bce0 --- /dev/null +++ b/staging/src/k8s.io/client-go/pkg/util/exec/exec.go @@ -0,0 +1,188 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + "io" + osexec "os/exec" + "syscall" + "time" +) + +// ErrExecutableNotFound is returned if the executable is not found. +var ErrExecutableNotFound = osexec.ErrNotFound + +// Interface is an interface that presents a subset of the os/exec API. Use this +// when you want to inject fakeable/mockable exec behavior. +type Interface interface { + // Command returns a Cmd instance which can be used to run a single command. + // This follows the pattern of package os/exec. + Command(cmd string, args ...string) Cmd + + // LookPath wraps os/exec.LookPath + LookPath(file string) (string, error) +} + +// Cmd is an interface that presents an API that is very similar to Cmd from os/exec. +// As more functionality is needed, this can grow. Since Cmd is a struct, we will have +// to replace fields with get/set method pairs. +type Cmd interface { + // CombinedOutput runs the command and returns its combined standard output + // and standard error. This follows the pattern of package os/exec. + CombinedOutput() ([]byte, error) + // Output runs the command and returns standard output, but not standard err + Output() ([]byte, error) + SetDir(dir string) + SetStdin(in io.Reader) + SetStdout(out io.Writer) + // Stops the command by sending SIGTERM. It is not guaranteed the + // process will stop before this function returns. If the process is not + // responding, an internal timer function will send a SIGKILL to force + // terminate after 10 seconds. + Stop() +} + +// ExitError is an interface that presents an API similar to os.ProcessState, which is +// what ExitError from os/exec is. This is designed to make testing a bit easier and +// probably loses some of the cross-platform properties of the underlying library. +type ExitError interface { + String() string + Error() string + Exited() bool + ExitStatus() int +} + +// Implements Interface in terms of really exec()ing. +type executor struct{} + +// New returns a new Interface which will os/exec to run commands. +func New() Interface { + return &executor{} +} + +// Command is part of the Interface interface. +func (executor *executor) Command(cmd string, args ...string) Cmd { + return (*cmdWrapper)(osexec.Command(cmd, args...)) +} + +// LookPath is part of the Interface interface +func (executor *executor) LookPath(file string) (string, error) { + return osexec.LookPath(file) +} + +// Wraps exec.Cmd so we can capture errors. +type cmdWrapper osexec.Cmd + +func (cmd *cmdWrapper) SetDir(dir string) { + cmd.Dir = dir +} + +func (cmd *cmdWrapper) SetStdin(in io.Reader) { + cmd.Stdin = in +} + +func (cmd *cmdWrapper) SetStdout(out io.Writer) { + cmd.Stdout = out +} + +// CombinedOutput is part of the Cmd interface. +func (cmd *cmdWrapper) CombinedOutput() ([]byte, error) { + out, err := (*osexec.Cmd)(cmd).CombinedOutput() + if err != nil { + return out, handleError(err) + } + return out, nil +} + +func (cmd *cmdWrapper) Output() ([]byte, error) { + out, err := (*osexec.Cmd)(cmd).Output() + if err != nil { + return out, handleError(err) + } + return out, nil +} + +// Stop is part of the Cmd interface. +func (cmd *cmdWrapper) Stop() { + c := (*osexec.Cmd)(cmd) + if c.ProcessState.Exited() { + return + } + c.Process.Signal(syscall.SIGTERM) + time.AfterFunc(10*time.Second, func() { + if c.ProcessState.Exited() { + return + } + c.Process.Signal(syscall.SIGKILL) + }) +} + +func handleError(err error) error { + if ee, ok := err.(*osexec.ExitError); ok { + // Force a compile fail if exitErrorWrapper can't convert to ExitError. + var x ExitError = &ExitErrorWrapper{ee} + return x + } + if ee, ok := err.(*osexec.Error); ok { + if ee.Err == osexec.ErrNotFound { + return ErrExecutableNotFound + } + } + return err +} + +// ExitErrorWrapper is an implementation of ExitError in terms of os/exec ExitError. +// Note: standard exec.ExitError is type *os.ProcessState, which already implements Exited(). +type ExitErrorWrapper struct { + *osexec.ExitError +} + +var _ ExitError = ExitErrorWrapper{} + +// ExitStatus is part of the ExitError interface. +func (eew ExitErrorWrapper) ExitStatus() int { + ws, ok := eew.Sys().(syscall.WaitStatus) + if !ok { + panic("can't call ExitStatus() on a non-WaitStatus exitErrorWrapper") + } + return ws.ExitStatus() +} + +// CodeExitError is an implementation of ExitError consisting of an error object +// and an exit code (the upper bits of os.exec.ExitStatus). +type CodeExitError struct { + Err error + Code int +} + +var _ ExitError = CodeExitError{} + +func (e CodeExitError) Error() string { + return e.Err.Error() +} + +func (e CodeExitError) String() string { + return e.Err.Error() +} + +func (e CodeExitError) Exited() bool { + return true +} + +func (e CodeExitError) ExitStatus() int { + return e.Code +} diff --git a/pkg/client/unversioned/remotecommand/BUILD b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD similarity index 79% rename from pkg/client/unversioned/remotecommand/BUILD rename to staging/src/k8s.io/client-go/tools/remotecommand/BUILD index 4dbb05d47c7..67f17532d06 100644 --- a/pkg/client/unversioned/remotecommand/BUILD +++ b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD @@ -8,6 +8,21 @@ load( "go_test", ) +go_test( + name = "go_default_test", + srcs = [ + "v2_test.go", + "v4_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/pkg/api:go_default_library", + ], +) + go_library( name = "go_default_library", srcs = [ @@ -22,43 +37,15 @@ go_library( ], tags = ["automanaged"], deps = [ - "//pkg/api:go_default_library", - "//pkg/util/exec:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/client-go/pkg/api:go_default_library", + "//vendor/k8s.io/client-go/pkg/util/exec:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/transport:go_default_library", ], ) - -go_test( - name = "go_default_test", - srcs = [ - "v2_test.go", - "v4_test.go", - ], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/pkg/client/unversioned/remotecommand/doc.go b/staging/src/k8s.io/client-go/tools/remotecommand/doc.go similarity index 89% rename from pkg/client/unversioned/remotecommand/doc.go rename to staging/src/k8s.io/client-go/tools/remotecommand/doc.go index 85a91f2339f..ac06a9cd376 100644 --- a/pkg/client/unversioned/remotecommand/doc.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/doc.go @@ -17,4 +17,4 @@ limitations under the License. // Package remotecommand adds support for executing commands in containers, // with support for separate stdin, stdout, and stderr streams, as well as // TTY. -package remotecommand // import "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" +package remotecommand // import "k8s.io/client-go/tools/remotecommand" diff --git a/pkg/client/unversioned/remotecommand/errorstream.go b/staging/src/k8s.io/client-go/tools/remotecommand/errorstream.go similarity index 100% rename from pkg/client/unversioned/remotecommand/errorstream.go rename to staging/src/k8s.io/client-go/tools/remotecommand/errorstream.go diff --git a/pkg/client/unversioned/remotecommand/remotecommand.go b/staging/src/k8s.io/client-go/tools/remotecommand/remotecommand.go similarity index 100% rename from pkg/client/unversioned/remotecommand/remotecommand.go rename to staging/src/k8s.io/client-go/tools/remotecommand/remotecommand.go diff --git a/pkg/client/unversioned/remotecommand/resize.go b/staging/src/k8s.io/client-go/tools/remotecommand/resize.go similarity index 100% rename from pkg/client/unversioned/remotecommand/resize.go rename to staging/src/k8s.io/client-go/tools/remotecommand/resize.go diff --git a/pkg/client/unversioned/remotecommand/v1.go b/staging/src/k8s.io/client-go/tools/remotecommand/v1.go similarity index 99% rename from pkg/client/unversioned/remotecommand/v1.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v1.go index a62c1c23da6..368fd46b29b 100644 --- a/pkg/client/unversioned/remotecommand/v1.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/v1.go @@ -24,7 +24,7 @@ import ( "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/httpstream" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/pkg/api" ) // streamProtocolV1 implements the first version of the streaming exec & attach diff --git a/pkg/client/unversioned/remotecommand/v2.go b/staging/src/k8s.io/client-go/tools/remotecommand/v2.go similarity index 99% rename from pkg/client/unversioned/remotecommand/v2.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v2.go index 0e5de492945..1bc4c2ebe80 100644 --- a/pkg/client/unversioned/remotecommand/v2.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/v2.go @@ -24,7 +24,7 @@ import ( "sync" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/pkg/api" ) // streamProtocolV2 implements version 2 of the streaming protocol for attach diff --git a/pkg/client/unversioned/remotecommand/v2_test.go b/staging/src/k8s.io/client-go/tools/remotecommand/v2_test.go similarity index 99% rename from pkg/client/unversioned/remotecommand/v2_test.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v2_test.go index 6e7c05927ec..f1f80c917cf 100644 --- a/pkg/client/unversioned/remotecommand/v2_test.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/v2_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/pkg/api" ) type fakeReader struct { diff --git a/pkg/client/unversioned/remotecommand/v3.go b/staging/src/k8s.io/client-go/tools/remotecommand/v3.go similarity index 98% rename from pkg/client/unversioned/remotecommand/v3.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v3.go index 923e8c4e605..72f443799c2 100644 --- a/pkg/client/unversioned/remotecommand/v3.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/v3.go @@ -23,7 +23,7 @@ import ( "sync" "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/kubernetes/pkg/api" + "k8s.io/client-go/pkg/api" ) // streamProtocolV3 implements version 3 of the streaming protocol for attach diff --git a/pkg/client/unversioned/remotecommand/v4.go b/staging/src/k8s.io/client-go/tools/remotecommand/v4.go similarity index 98% rename from pkg/client/unversioned/remotecommand/v4.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v4.go index 92d240c8166..6fb2abb18d3 100644 --- a/pkg/client/unversioned/remotecommand/v4.go +++ b/staging/src/k8s.io/client-go/tools/remotecommand/v4.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/remotecommand" - "k8s.io/kubernetes/pkg/util/exec" + "k8s.io/client-go/pkg/util/exec" ) // streamProtocolV4 implements version 4 of the streaming protocol for attach diff --git a/pkg/client/unversioned/remotecommand/v4_test.go b/staging/src/k8s.io/client-go/tools/remotecommand/v4_test.go similarity index 100% rename from pkg/client/unversioned/remotecommand/v4_test.go rename to staging/src/k8s.io/client-go/tools/remotecommand/v4_test.go diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 8172a324f2d..530287e91ab 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -60,7 +60,6 @@ go_library( "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/conditions:go_default_library", "//pkg/client/retry:go_default_library", - "//pkg/client/unversioned/remotecommand:go_default_library", "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/cloudprovider/providers/azure:go_default_library", @@ -131,6 +130,7 @@ go_library( "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", + "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", ], ) diff --git a/test/e2e/framework/exec_util.go b/test/e2e/framework/exec_util.go index ad407b8130b..03fe7b8dc02 100644 --- a/test/e2e/framework/exec_util.go +++ b/test/e2e/framework/exec_util.go @@ -25,9 +25,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" remocommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" - "k8s.io/kubernetes/pkg/client/unversioned/remotecommand" . "github.com/onsi/gomega" ) diff --git a/test/test_owners.csv b/test/test_owners.csv index 898f19267e0..f688b6ad513 100644 --- a/test/test_owners.csv +++ b/test/test_owners.csv @@ -655,7 +655,6 @@ k8s.io/kubernetes/pkg/client/listers/extensions/v1beta1,jszczepkowski,1, k8s.io/kubernetes/pkg/client/retry,caesarxuchao,1, k8s.io/kubernetes/pkg/client/tests,Q-Lee,1, k8s.io/kubernetes/pkg/client/unversioned,justinsb,1, -k8s.io/kubernetes/pkg/client/unversioned/remotecommand,rrati,0, k8s.io/kubernetes/pkg/cloudprovider/providers/aws,eparis,1, k8s.io/kubernetes/pkg/cloudprovider/providers/azure,saad-ali,1, k8s.io/kubernetes/pkg/cloudprovider/providers/cloudstack,roberthbailey,1,