From c00f9bc140e0f15ebfba7a43a43d3636e84c5088 Mon Sep 17 00:00:00 2001 From: WanLinghao Date: Wed, 30 Aug 2017 21:29:39 +0800 Subject: [PATCH] fix kubectl cp command error. it happens when copy directory to pod and the directory path ends with '/'. for example: kubectl cp /XX/XX/ XX-POD:/XX/XX modified: pkg/kubectl/cmd/cp.go modified: pkg/kubectl/cmd/cp_test.go --- pkg/kubectl/cmd/cp.go | 2 ++ pkg/kubectl/cmd/cp_test.go | 1 + 2 files changed, 3 insertions(+) diff --git a/pkg/kubectl/cmd/cp.go b/pkg/kubectl/cmd/cp.go index 53444b056e..34703739bc 100644 --- a/pkg/kubectl/cmd/cp.go +++ b/pkg/kubectl/cmd/cp.go @@ -195,6 +195,8 @@ func makeTar(filepath string, writer io.Writer) error { // TODO: use compression here? tarWriter := tar.NewWriter(writer) defer tarWriter.Close() + + filepath = path.Clean(filepath) return recursiveTar(path.Dir(filepath), path.Base(filepath), tarWriter) } diff --git a/pkg/kubectl/cmd/cp_test.go b/pkg/kubectl/cmd/cp_test.go index 0494fc78e2..7f2cdd3ea5 100644 --- a/pkg/kubectl/cmd/cp_test.go +++ b/pkg/kubectl/cmd/cp_test.go @@ -104,6 +104,7 @@ func TestTarUntar(t *testing.T) { t.Errorf("unexpected error: %v | %v", err, err2) t.FailNow() } + dir = dir + "/" defer func() { if err := os.RemoveAll(dir); err != nil { t.Errorf("Unexpected error cleaning up: %v", err)