From 84191eb99bc83a5a95f461af90f2b12792862582 Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Tue, 29 Jan 2019 14:23:23 -0500 Subject: [PATCH] replace pkg/util/file with k8s.io/utils/path --- cmd/kubeadm/.import-restrictions | 2 +- hack/.golint_failures | 1 - pkg/controller/.import-restrictions | 2 +- pkg/kubectl/.import-restrictions | 2 +- pkg/kubelet/BUILD | 2 +- pkg/kubelet/cm/BUILD | 2 +- pkg/kubelet/cm/container_manager_linux.go | 6 +- pkg/kubelet/kubelet_getters.go | 4 +- pkg/kubelet/volumemanager/reconciler/BUILD | 2 +- .../volumemanager/reconciler/reconciler.go | 4 +- pkg/master/tunneler/BUILD | 2 +- pkg/master/tunneler/ssh.go | 6 +- pkg/security/apparmor/BUILD | 2 +- pkg/security/apparmor/validate.go | 4 +- pkg/util/BUILD | 1 - pkg/util/file/BUILD | 36 ----- pkg/util/file/file.go | 57 ------- pkg/util/file/file_test.go | 149 ------------------ pkg/util/mount/BUILD | 4 +- pkg/util/mount/mount_linux.go | 4 +- pkg/util/mount/mount_windows.go | 4 +- pkg/util/mount/nsenter_mount.go | 4 +- pkg/volume/gcepd/BUILD | 2 +- pkg/volume/gcepd/gce_util.go | 4 +- pkg/volume/host_path/BUILD | 2 +- pkg/volume/host_path/host_path_test.go | 4 +- pkg/volume/rbd/BUILD | 2 +- pkg/volume/rbd/rbd_util.go | 4 +- 28 files changed, 37 insertions(+), 281 deletions(-) delete mode 100644 pkg/util/file/BUILD delete mode 100644 pkg/util/file/file.go delete mode 100644 pkg/util/file/file_test.go diff --git a/cmd/kubeadm/.import-restrictions b/cmd/kubeadm/.import-restrictions index c37f6c23f5..797fdbaa4f 100644 --- a/cmd/kubeadm/.import-restrictions +++ b/cmd/kubeadm/.import-restrictions @@ -41,6 +41,7 @@ "AllowedPrefixes": [ "k8s.io/utils/exec", "k8s.io/utils/integer", + "k8s.io/utils/path", "k8s.io/utils/pointer" ] }, @@ -77,7 +78,6 @@ "k8s.io/kubernetes/pkg/scheduler/util", "k8s.io/kubernetes/pkg/security/apparmor", "k8s.io/kubernetes/pkg/serviceaccount", - "k8s.io/kubernetes/pkg/util/file", "k8s.io/kubernetes/pkg/util/hash", "k8s.io/kubernetes/pkg/util/initsystem", "k8s.io/kubernetes/pkg/util/ipvs", diff --git a/hack/.golint_failures b/hack/.golint_failures index 9af4827aee..171a726ab8 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -355,7 +355,6 @@ pkg/util/bandwidth pkg/util/config pkg/util/ebtables pkg/util/env -pkg/util/file pkg/util/goroutinemap/exponentialbackoff pkg/util/initsystem pkg/util/iptables diff --git a/pkg/controller/.import-restrictions b/pkg/controller/.import-restrictions index bb88f40d2e..73a7fce74d 100644 --- a/pkg/controller/.import-restrictions +++ b/pkg/controller/.import-restrictions @@ -307,7 +307,6 @@ "k8s.io/kubernetes/pkg/scheduler/api", "k8s.io/kubernetes/pkg/scheduler/util", "k8s.io/kubernetes/pkg/security/apparmor", - "k8s.io/kubernetes/pkg/util/file", "k8s.io/kubernetes/pkg/util/net/sets", "k8s.io/kubernetes/pkg/util/parsers", "k8s.io/kubernetes/pkg/fieldpath", @@ -340,6 +339,7 @@ "k8s.io/utils/nsenter", "k8s.io/utils/integer", "k8s.io/utils/io", + "k8s.io/utils/path", "k8s.io/utils/pointer", "k8s.io/utils/exec" ] diff --git a/pkg/kubectl/.import-restrictions b/pkg/kubectl/.import-restrictions index f635e6709f..cf4ac57da4 100644 --- a/pkg/kubectl/.import-restrictions +++ b/pkg/kubectl/.import-restrictions @@ -126,7 +126,6 @@ "k8s.io/kubernetes/pkg/scheduler/volumebinder", "k8s.io/kubernetes/pkg/security/apparmor", "k8s.io/kubernetes/pkg/serviceaccount", - "k8s.io/kubernetes/pkg/util/file", "k8s.io/kubernetes/pkg/util/goroutinemap", "k8s.io/kubernetes/pkg/util/hash", "k8s.io/kubernetes/pkg/util/interrupt", @@ -144,6 +143,7 @@ "k8s.io/kubernetes/pkg/volume/util", "k8s.io/utils/nsenter", "k8s.io/utils/io", + "k8s.io/utils/path", "k8s.io/utils/pointer" ], "ForbiddenPrefixes": [] diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 722309afa4..ba96674a91 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -103,7 +103,6 @@ go_library( "//pkg/security/podsecuritypolicy/sysctl:go_default_library", "//pkg/securitycontext:go_default_library", "//pkg/util/dbus:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/iptables:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/node:go_default_library", @@ -150,6 +149,7 @@ go_library( "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/integer:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/kubelet/cm/BUILD b/pkg/kubelet/cm/BUILD index e6e44b4435..353b7c641a 100644 --- a/pkg/kubelet/cm/BUILD +++ b/pkg/kubelet/cm/BUILD @@ -74,7 +74,6 @@ go_library( "//pkg/kubelet/metrics:go_default_library", "//pkg/kubelet/qos:go_default_library", "//pkg/kubelet/types:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/oom:go_default_library", "//pkg/util/procfs:go_default_library", @@ -88,6 +87,7 @@ go_library( "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], "@io_bazel_rules_go//go/platform:nacl": [ "//pkg/kubelet/cadvisor:go_default_library", diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go index ea0a5ad215..af7a779173 100644 --- a/pkg/kubelet/cm/container_manager_linux.go +++ b/pkg/kubelet/cm/container_manager_linux.go @@ -56,11 +56,11 @@ import ( "k8s.io/kubernetes/pkg/kubelet/status" "k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher" schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo" - utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/oom" "k8s.io/kubernetes/pkg/util/procfs" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" + utilpath "k8s.io/utils/path" ) const ( @@ -179,11 +179,11 @@ func validateSystemRequirements(mountUtil mount.Interface) (features, error) { // Check if cpu quota is available. // CPU cgroup is required and so it expected to be mounted at this point. - periodExists, err := utilfile.FileExists(path.Join(cpuMountPoint, "cpu.cfs_period_us")) + periodExists, err := utilpath.Exists(utilpath.CheckFollowSymlink, path.Join(cpuMountPoint, "cpu.cfs_period_us")) if err != nil { klog.Errorf("failed to detect if CPU cgroup cpu.cfs_period_us is available - %v", err) } - quotaExists, err := utilfile.FileExists(path.Join(cpuMountPoint, "cpu.cfs_quota_us")) + quotaExists, err := utilpath.Exists(utilpath.CheckFollowSymlink, path.Join(cpuMountPoint, "cpu.cfs_quota_us")) if err != nil { klog.Errorf("failed to detect if CPU cgroup cpu.cfs_quota_us is available - %v", err) } diff --git a/pkg/kubelet/kubelet_getters.go b/pkg/kubelet/kubelet_getters.go index 1386a83ccb..5331f6418f 100644 --- a/pkg/kubelet/kubelet_getters.go +++ b/pkg/kubelet/kubelet_getters.go @@ -30,9 +30,9 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" - utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/mount" utilnode "k8s.io/kubernetes/pkg/util/node" + utilpath "k8s.io/utils/path" ) // getRootDir returns the full path to the directory under which kubelet can @@ -293,7 +293,7 @@ func (kl *Kubelet) getPodVolumePathListFromDisk(podUID types.UID) ([]string, err for _, volumePluginDir := range volumePluginDirs { volumePluginName := volumePluginDir.Name() volumePluginPath := filepath.Join(podVolDir, volumePluginName) - volumeDirs, err := utilfile.ReadDirNoStat(volumePluginPath) + volumeDirs, err := utilpath.ReadDirNoStat(volumePluginPath) if err != nil { return volumes, fmt.Errorf("Could not read directory %s: %v", volumePluginPath, err) } diff --git a/pkg/kubelet/volumemanager/reconciler/BUILD b/pkg/kubelet/volumemanager/reconciler/BUILD index ca88d62d7b..7c38344b45 100644 --- a/pkg/kubelet/volumemanager/reconciler/BUILD +++ b/pkg/kubelet/volumemanager/reconciler/BUILD @@ -14,7 +14,6 @@ go_library( "//pkg/features:go_default_library", "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/volumemanager/cache:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/goroutinemap/exponentialbackoff:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -30,6 +29,7 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/kubelet/volumemanager/reconciler/reconciler.go b/pkg/kubelet/volumemanager/reconciler/reconciler.go index a28517d887..56668ffd21 100644 --- a/pkg/kubelet/volumemanager/reconciler/reconciler.go +++ b/pkg/kubelet/volumemanager/reconciler/reconciler.go @@ -36,7 +36,6 @@ import ( "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/config" "k8s.io/kubernetes/pkg/kubelet/volumemanager/cache" - utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/goroutinemap/exponentialbackoff" "k8s.io/kubernetes/pkg/util/mount" utilstrings "k8s.io/kubernetes/pkg/util/strings" @@ -45,6 +44,7 @@ import ( "k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations" "k8s.io/kubernetes/pkg/volume/util/operationexecutor" volumetypes "k8s.io/kubernetes/pkg/volume/util/types" + utilpath "k8s.io/utils/path" ) // Reconciler runs a periodic loop to reconcile the desired state of the world @@ -673,7 +673,7 @@ func getVolumesFromPodDir(podDir string) ([]podVolume, error) { for _, volumeDir := range volumesDirInfo { pluginName := volumeDir.Name() volumePluginPath := path.Join(volumesDir, pluginName) - volumePluginDirs, err := utilfile.ReadDirNoStat(volumePluginPath) + volumePluginDirs, err := utilpath.ReadDirNoStat(volumePluginPath) if err != nil { klog.Errorf("Could not read volume plugin directory %q: %v", volumePluginPath, err) continue diff --git a/pkg/master/tunneler/BUILD b/pkg/master/tunneler/BUILD index 99648d7f8a..9dbaecd6ed 100644 --- a/pkg/master/tunneler/BUILD +++ b/pkg/master/tunneler/BUILD @@ -22,10 +22,10 @@ go_library( importpath = "k8s.io/kubernetes/pkg/master/tunneler", deps = [ "//pkg/ssh:go_default_library", - "//pkg/util/file:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/master/tunneler/ssh.go b/pkg/master/tunneler/ssh.go index 4bf8307bad..f30a967e34 100644 --- a/pkg/master/tunneler/ssh.go +++ b/pkg/master/tunneler/ssh.go @@ -31,7 +31,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog" "k8s.io/kubernetes/pkg/ssh" - utilfile "k8s.io/kubernetes/pkg/util/file" + utilpath "k8s.io/utils/path" ) type InstallSSHKey func(ctx context.Context, user string, data []byte) error @@ -119,7 +119,7 @@ func (c *SSHTunneler) Run(getAddresses AddressFunc) { // public keyfile is written last, so check for that. publicKeyFile := c.SSHKeyfile + ".pub" - exists, err := utilfile.FileExists(publicKeyFile) + exists, err := utilpath.Exists(utilpath.CheckFollowSymlink, publicKeyFile) if err != nil { klog.Errorf("Error detecting if key exists: %v", err) } else if !exists { @@ -208,7 +208,7 @@ func generateSSHKey(privateKeyfile, publicKeyfile string) error { } // If private keyfile already exists, we must have only made it halfway // through last time, so delete it. - exists, err := utilfile.FileExists(privateKeyfile) + exists, err := utilpath.Exists(utilpath.CheckFollowSymlink, privateKeyfile) if err != nil { klog.Errorf("Error detecting if private key exists: %v", err) } else if exists { diff --git a/pkg/security/apparmor/BUILD b/pkg/security/apparmor/BUILD index 576a278030..fb29986efd 100644 --- a/pkg/security/apparmor/BUILD +++ b/pkg/security/apparmor/BUILD @@ -17,9 +17,9 @@ go_library( deps = [ "//pkg/features:go_default_library", "//pkg/kubelet/types:go_default_library", - "//pkg/util/file:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/security/apparmor/validate.go b/pkg/security/apparmor/validate.go index 25ea591fca..1d03c7ee02 100644 --- a/pkg/security/apparmor/validate.go +++ b/pkg/security/apparmor/validate.go @@ -29,7 +29,7 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/features" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" - utilfile "k8s.io/kubernetes/pkg/util/file" + utilpath "k8s.io/utils/path" ) // Whether AppArmor should be disabled by default. @@ -195,7 +195,7 @@ func getAppArmorFS() (string, error) { } if fields[2] == "securityfs" { appArmorFS := path.Join(fields[1], "apparmor") - if ok, err := utilfile.FileExists(appArmorFS); !ok { + if ok, err := utilpath.Exists(utilpath.CheckFollowSymlink, appArmorFS); !ok { msg := fmt.Sprintf("path %s does not exist", appArmorFS) if err != nil { return "", fmt.Errorf("%s: %v", msg, err) diff --git a/pkg/util/BUILD b/pkg/util/BUILD index b2620448b6..a69ed4d38b 100644 --- a/pkg/util/BUILD +++ b/pkg/util/BUILD @@ -20,7 +20,6 @@ filegroup( "//pkg/util/dbus:all-srcs", "//pkg/util/ebtables:all-srcs", "//pkg/util/env:all-srcs", - "//pkg/util/file:all-srcs", "//pkg/util/filesystem:all-srcs", "//pkg/util/flag:all-srcs", "//pkg/util/flock:all-srcs", diff --git a/pkg/util/file/BUILD b/pkg/util/file/BUILD deleted file mode 100644 index 299528ca00..0000000000 --- a/pkg/util/file/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["file.go"], - importpath = "k8s.io/kubernetes/pkg/util/file", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["file_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/spf13/afero:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - ], -) diff --git a/pkg/util/file/file.go b/pkg/util/file/file.go deleted file mode 100644 index 70d26c4ef7..0000000000 --- a/pkg/util/file/file.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package file - -import ( - "os" -) - -// FileExists checks if specified file exists. -func FileExists(filename string) (bool, error) { - if _, err := os.Stat(filename); os.IsNotExist(err) { - return false, nil - } else if err != nil { - return false, err - } - return true, nil -} - -// FileOrSymlinkExists checks if specified file or symlink exists. -func FileOrSymlinkExists(filename string) (bool, error) { - if _, err := os.Lstat(filename); os.IsNotExist(err) { - return false, nil - } else if err != nil { - return false, err - } - return true, nil -} - -// ReadDirNoStat returns a string of files/directories contained -// in dirname without calling lstat on them. -func ReadDirNoStat(dirname string) ([]string, error) { - if dirname == "" { - dirname = "." - } - - f, err := os.Open(dirname) - if err != nil { - return nil, err - } - defer f.Close() - - return f.Readdirnames(-1) -} diff --git a/pkg/util/file/file_test.go b/pkg/util/file/file_test.go deleted file mode 100644 index 43eb2ed1d1..0000000000 --- a/pkg/util/file/file_test.go +++ /dev/null @@ -1,149 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package file - -import ( - "os" - "path/filepath" - "sort" - "testing" - - "github.com/spf13/afero" - "github.com/stretchr/testify/assert" -) - -func RecoverEnv(wd, tmpDir string) { - os.Chdir(wd) - os.RemoveAll(tmpDir) -} - -func TestFileUtils(t *testing.T) { - fs := &afero.Afero{Fs: afero.NewOsFs()} - // Create tmp dir - tmpDir, err := fs.TempDir(os.TempDir(), "util_file_test_") - if err != nil { - t.Fatal("Failed to test: failed to create temp dir.") - } - - // create tmp file - tmpFile, err := fs.TempFile(tmpDir, "test_file_exists_") - if err != nil { - t.Fatal("Failed to test: failed to create temp file.") - } - - // create tmp sym link - tmpSymlinkName := filepath.Join(tmpDir, "test_file_exists_sym_link") - err = os.Symlink(tmpFile.Name(), tmpSymlinkName) - if err != nil { - t.Fatal("Failed to test: failed to create sym link.") - } - - // create tmp sub dir - tmpSubDir, err := fs.TempDir(tmpDir, "sub_") - if err != nil { - t.Fatal("Failed to test: failed to create temp sub dir.") - } - - // record the current dir - currentDir, err := os.Getwd() - if err != nil { - t.Fatal("Failed to test: failed to get current dir.") - } - - // change the work dir to temp dir - err = os.Chdir(tmpDir) - if err != nil { - t.Fatal("Failed to test: failed to change work dir.") - } - - // recover test environment - defer RecoverEnv(currentDir, tmpDir) - - t.Run("TestFileExists", func(t *testing.T) { - tests := []struct { - name string - fileName string - expectedError bool - expectedValue bool - }{ - {"file_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), false, false}, - {"file_exists", tmpFile.Name(), false, true}, - } - - for _, test := range tests { - realValued, realError := FileExists(test.fileName) - if test.expectedError { - assert.Errorf(t, realError, "Failed to test with '%s': %s", test.fileName, test.name) - } else { - assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.fileName, test.name) - } - } - }) - - t.Run("TestFileOrSymlinkExists", func(t *testing.T) { - tests := []struct { - name string - fileName string - expectedError bool - expectedValue bool - }{ - {"file_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), false, false}, - {"file_exists", tmpFile.Name(), false, true}, - {"symlink_exists", tmpSymlinkName, false, true}, - } - - for _, test := range tests { - realValued, realError := FileOrSymlinkExists(test.fileName) - if test.expectedError { - assert.Errorf(t, realError, "Failed to test with '%s': %s", test.fileName, test.name) - } else { - assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.fileName, test.name) - } - } - }) - - t.Run("TestReadDirNoStat", func(t *testing.T) { - _, tmpFileSimpleName := filepath.Split(tmpFile.Name()) - _, tmpSymlinkSimpleName := filepath.Split(tmpSymlinkName) - _, tmpSubDirSimpleName := filepath.Split(tmpSubDir) - - tests := []struct { - name string - dirName string - expectedError bool - expectedValue []string - }{ - {"dir_not_exists", filepath.Join(tmpDir, "file_not_exist_case"), true, []string{}}, - {"dir_is_empty", "", false, []string{tmpFileSimpleName, tmpSymlinkSimpleName, tmpSubDirSimpleName}}, - {"dir_exists", tmpDir, false, []string{tmpFileSimpleName, tmpSymlinkSimpleName, tmpSubDirSimpleName}}, - } - - for _, test := range tests { - realValued, realError := ReadDirNoStat(test.dirName) - - // execute sort action before compare - sort.Strings(realValued) - sort.Strings(test.expectedValue) - - if test.expectedError { - assert.Errorf(t, realError, "Failed to test with '%s': %s", test.dirName, test.name) - } else { - assert.EqualValuesf(t, test.expectedValue, realValued, "Failed to test with '%s': %s", test.dirName, test.name) - } - } - }) -} diff --git a/pkg/util/mount/BUILD b/pkg/util/mount/BUILD index 60998c1d22..d2eae31ed0 100644 --- a/pkg/util/mount/BUILD +++ b/pkg/util/mount/BUILD @@ -35,11 +35,11 @@ go_library( "//vendor/k8s.io/utils/nsenter:go_default_library", ], "@io_bazel_rules_go//go/platform:linux": [ - "//pkg/util/file:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/utils/io:go_default_library", "//vendor/k8s.io/utils/nsenter:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], "@io_bazel_rules_go//go/platform:nacl": [ "//vendor/k8s.io/utils/nsenter:go_default_library", @@ -57,8 +57,8 @@ go_library( "//vendor/k8s.io/utils/nsenter:go_default_library", ], "@io_bazel_rules_go//go/platform:windows": [ - "//pkg/util/file:go_default_library", "//vendor/k8s.io/utils/nsenter:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], "//conditions:default": [], }), diff --git a/pkg/util/mount/mount_linux.go b/pkg/util/mount/mount_linux.go index b0ef01bae4..c66039e5e0 100644 --- a/pkg/util/mount/mount_linux.go +++ b/pkg/util/mount/mount_linux.go @@ -33,9 +33,9 @@ import ( "golang.org/x/sys/unix" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog" - utilfile "k8s.io/kubernetes/pkg/util/file" utilexec "k8s.io/utils/exec" utilio "k8s.io/utils/io" + utilpath "k8s.io/utils/path" ) const ( @@ -417,7 +417,7 @@ func (mounter *Mounter) MakeFile(pathname string) error { } func (mounter *Mounter) ExistsPath(pathname string) (bool, error) { - return utilfile.FileExists(pathname) + return utilpath.Exists(utilpath.CheckFollowSymlink, pathname) } func (mounter *Mounter) EvalHostSymlinks(pathname string) (string, error) { diff --git a/pkg/util/mount/mount_windows.go b/pkg/util/mount/mount_windows.go index f4508c5227..89d09c45ab 100644 --- a/pkg/util/mount/mount_windows.go +++ b/pkg/util/mount/mount_windows.go @@ -30,7 +30,7 @@ import ( "k8s.io/klog" - utilfile "k8s.io/kubernetes/pkg/util/file" + utilpath "k8s.io/utils/path" ) // Mounter provides the default implementation of mount.Interface @@ -235,7 +235,7 @@ func (mounter *Mounter) MakeFile(pathname string) error { // ExistsPath checks whether the path exists func (mounter *Mounter) ExistsPath(pathname string) (bool, error) { - return utilfile.FileExists(pathname) + return utilpath.Exists(utilpath.CheckFollowSymlink, pathname) } // EvalHostSymlinks returns the path name after evaluating symlinks diff --git a/pkg/util/mount/nsenter_mount.go b/pkg/util/mount/nsenter_mount.go index e77ee6f75f..ce5d825da7 100644 --- a/pkg/util/mount/nsenter_mount.go +++ b/pkg/util/mount/nsenter_mount.go @@ -27,8 +27,8 @@ import ( "golang.org/x/sys/unix" "k8s.io/klog" - utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/utils/nsenter" + utilpath "k8s.io/utils/path" ) const ( @@ -291,7 +291,7 @@ func (mounter *NsenterMounter) ExistsPath(pathname string) (bool, error) { return false, err } kubeletpath := mounter.ne.KubeletPath(hostPath) - return utilfile.FileExists(kubeletpath) + return utilpath.Exists(utilpath.CheckFollowSymlink, kubeletpath) } func (mounter *NsenterMounter) EvalHostSymlinks(pathname string) (string, error) { diff --git a/pkg/volume/gcepd/BUILD b/pkg/volume/gcepd/BUILD index 938b575733..42ec285363 100644 --- a/pkg/volume/gcepd/BUILD +++ b/pkg/volume/gcepd/BUILD @@ -20,7 +20,6 @@ go_library( "//pkg/cloudprovider/providers/gce:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/apis:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", @@ -35,6 +34,7 @@ go_library( "//staging/src/k8s.io/cloud-provider:go_default_library", "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/volume/gcepd/gce_util.go b/pkg/volume/gcepd/gce_util.go index d0e13a8ddf..0d7e2126e2 100644 --- a/pkg/volume/gcepd/gce_util.go +++ b/pkg/volume/gcepd/gce_util.go @@ -32,11 +32,11 @@ import ( gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" "k8s.io/kubernetes/pkg/features" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" - utilfile "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/utils/exec" + utilpath "k8s.io/utils/path" ) const ( @@ -236,7 +236,7 @@ func verifyDevicePath(devicePaths []string, sdBeforeSet sets.String, diskName st // Calls scsi_id on the given devicePath to get the serial number reported by that device. func getScsiSerial(devicePath, diskName string) (string, error) { - exists, err := utilfile.FileExists("/lib/udev/scsi_id") + exists, err := utilpath.Exists(utilpath.CheckFollowSymlink, "/lib/udev/scsi_id") if err != nil { return "", fmt.Errorf("failed to check scsi_id existence: %v", err) } diff --git a/pkg/volume/host_path/BUILD b/pkg/volume/host_path/BUILD index b05d42c64b..0c961173ba 100644 --- a/pkg/volume/host_path/BUILD +++ b/pkg/volume/host_path/BUILD @@ -31,7 +31,6 @@ go_test( srcs = ["host_path_test.go"], embed = [":go_default_library"], deps = [ - "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", @@ -41,6 +40,7 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/volume/host_path/host_path_test.go b/pkg/volume/host_path/host_path_test.go index f29e159947..16c6697b64 100644 --- a/pkg/volume/host_path/host_path_test.go +++ b/pkg/volume/host_path/host_path_test.go @@ -27,10 +27,10 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/client-go/kubernetes/fake" - utilfile "k8s.io/kubernetes/pkg/util/file" utilmount "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumetest "k8s.io/kubernetes/pkg/volume/testing" + utilpath "k8s.io/utils/path" ) func newHostPathType(pathType string) *v1.HostPathType { @@ -122,7 +122,7 @@ func TestDeleter(t *testing.T) { if err := deleter.Delete(); err != nil { t.Errorf("Mock Recycler expected to return nil but got %s", err) } - if exists, _ := utilfile.FileExists(tempPath); exists { + if exists, _ := utilpath.Exists(utilpath.CheckFollowSymlink, tempPath); exists { t.Errorf("Temp path expected to be deleted, but was found at %s", tempPath) } } diff --git a/pkg/volume/rbd/BUILD b/pkg/volume/rbd/BUILD index ccd413eefe..a6f62a681b 100644 --- a/pkg/volume/rbd/BUILD +++ b/pkg/volume/rbd/BUILD @@ -18,7 +18,6 @@ go_library( importpath = "k8s.io/kubernetes/pkg/volume/rbd", deps = [ "//pkg/features:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/strings:go_default_library", @@ -36,6 +35,7 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/klog:go_default_library", + "//vendor/k8s.io/utils/path:go_default_library", ], ) diff --git a/pkg/volume/rbd/rbd_util.go b/pkg/volume/rbd/rbd_util.go index a4afb51860..613987279f 100644 --- a/pkg/volume/rbd/rbd_util.go +++ b/pkg/volume/rbd/rbd_util.go @@ -37,11 +37,11 @@ import ( "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/klog" - fileutil "k8s.io/kubernetes/pkg/util/file" "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/volume" volutil "k8s.io/kubernetes/pkg/volume/util" + utilpath "k8s.io/utils/path" ) const ( @@ -486,7 +486,7 @@ func (util *RBDUtil) DetachDisk(plugin *rbdPlugin, deviceMountPath string, devic // Currently, we don't persist rbd info on the disk, but for backward // compatbility, we need to clean it if found. rbdFile := path.Join(deviceMountPath, "rbd.json") - exists, err := fileutil.FileExists(rbdFile) + exists, err := utilpath.Exists(utilpath.CheckFollowSymlink, rbdFile) if err != nil { return err }