From d94cd822b73e444c53b10c5e5c84c56e3cfb8640 Mon Sep 17 00:00:00 2001 From: danielqsj Date: Mon, 7 Jan 2019 13:24:59 +0800 Subject: [PATCH] Cleanup UnmountPath/UnmountMountPoint callers --- pkg/volume/awsebs/attacher.go | 2 +- pkg/volume/awsebs/aws_ebs.go | 2 +- pkg/volume/azure_dd/attacher.go | 2 +- pkg/volume/azure_file/azure_file.go | 2 +- pkg/volume/cephfs/cephfs.go | 4 ++-- pkg/volume/cinder/attacher.go | 2 +- pkg/volume/fc/attacher.go | 2 +- pkg/volume/fc/fc.go | 2 +- pkg/volume/flexvolume/detacher-defaults.go | 4 ++-- pkg/volume/flexvolume/unmounter-defaults.go | 4 ++-- pkg/volume/flocker/flocker.go | 3 +-- pkg/volume/gcepd/attacher.go | 3 ++- pkg/volume/gcepd/gce_pd.go | 2 +- pkg/volume/glusterfs/glusterfs.go | 4 ++-- pkg/volume/iscsi/iscsi.go | 2 +- pkg/volume/local/local.go | 4 ++-- pkg/volume/nfs/nfs.go | 2 +- pkg/volume/photon_pd/attacher.go | 2 +- pkg/volume/photon_pd/photon_pd.go | 2 +- pkg/volume/scaleio/sio_volume.go | 2 +- pkg/volume/storageos/storageos.go | 2 +- pkg/volume/util/util.go | 17 ----------------- pkg/volume/vsphere_volume/attacher.go | 2 +- pkg/volume/vsphere_volume/vsphere_volume.go | 2 +- 24 files changed, 29 insertions(+), 46 deletions(-) diff --git a/pkg/volume/awsebs/attacher.go b/pkg/volume/awsebs/attacher.go index a4a320633c2..1f5eeebc563 100644 --- a/pkg/volume/awsebs/attacher.go +++ b/pkg/volume/awsebs/attacher.go @@ -274,7 +274,7 @@ func (detacher *awsElasticBlockStoreDetacher) Detach(volumeName string, nodeName } func (detacher *awsElasticBlockStoreDetacher) UnmountDevice(deviceMountPath string) error { - return volumeutil.UnmountPath(deviceMountPath, detacher.mounter) + return mount.CleanupMountPoint(deviceMountPath, detacher.mounter, false) } func setNodeDisk( diff --git a/pkg/volume/awsebs/aws_ebs.go b/pkg/volume/awsebs/aws_ebs.go index ac934eccafe..3aa792d3c4a 100644 --- a/pkg/volume/awsebs/aws_ebs.go +++ b/pkg/volume/awsebs/aws_ebs.go @@ -485,7 +485,7 @@ func (c *awsElasticBlockStoreUnmounter) TearDown() error { // Unmounts the bind mount func (c *awsElasticBlockStoreUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } type awsElasticBlockStoreDeleter struct { diff --git a/pkg/volume/azure_dd/attacher.go b/pkg/volume/azure_dd/attacher.go index 5787518aa52..0a99b4a91c6 100644 --- a/pkg/volume/azure_dd/attacher.go +++ b/pkg/volume/azure_dd/attacher.go @@ -309,7 +309,7 @@ func (d *azureDiskDetacher) Detach(diskURI string, nodeName types.NodeName) erro // UnmountDevice unmounts the volume on the node func (detacher *azureDiskDetacher) UnmountDevice(deviceMountPath string) error { - err := util.UnmountPath(deviceMountPath, detacher.plugin.host.GetMounter(detacher.plugin.GetPluginName())) + err := mount.CleanupMountPoint(deviceMountPath, detacher.plugin.host.GetMounter(detacher.plugin.GetPluginName()), false) if err == nil { klog.V(2).Infof("azureDisk - Device %s was unmounted", deviceMountPath) } else { diff --git a/pkg/volume/azure_file/azure_file.go b/pkg/volume/azure_file/azure_file.go index e0234ce780b..481b22f08f8 100644 --- a/pkg/volume/azure_file/azure_file.go +++ b/pkg/volume/azure_file/azure_file.go @@ -321,7 +321,7 @@ func (c *azureFileUnmounter) TearDown() error { } func (c *azureFileUnmounter) TearDownAt(dir string) error { - return volutil.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } func getVolumeSource(spec *volume.Spec) (string, bool, error) { diff --git a/pkg/volume/cephfs/cephfs.go b/pkg/volume/cephfs/cephfs.go index 748fe11a475..2f720d86f81 100644 --- a/pkg/volume/cephfs/cephfs.go +++ b/pkg/volume/cephfs/cephfs.go @@ -260,7 +260,7 @@ func (cephfsVolume *cephfsMounter) SetUpAt(dir string, fsGroup *int64) error { err = cephfsVolume.execMount(dir) if err != nil { // cleanup upon failure. - util.UnmountPath(dir, cephfsVolume.mounter) + mount.CleanupMountPoint(dir, cephfsVolume.mounter, false) return err } return nil @@ -279,7 +279,7 @@ func (cephfsVolume *cephfsUnmounter) TearDown() error { // TearDownAt unmounts the bind mount func (cephfsVolume *cephfsUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, cephfsVolume.mounter) + return mount.CleanupMountPoint(dir, cephfsVolume.mounter, false) } // GetPath creates global mount path diff --git a/pkg/volume/cinder/attacher.go b/pkg/volume/cinder/attacher.go index 0db22a27386..16fbac3e433 100644 --- a/pkg/volume/cinder/attacher.go +++ b/pkg/volume/cinder/attacher.go @@ -403,7 +403,7 @@ func (detacher *cinderDiskDetacher) Detach(volumeName string, nodeName types.Nod } func (detacher *cinderDiskDetacher) UnmountDevice(deviceMountPath string) error { - return volumeutil.UnmountPath(deviceMountPath, detacher.mounter) + return mount.CleanupMountPoint(deviceMountPath, detacher.mounter, false) } func (attacher *cinderDiskAttacher) nodeInstanceID(nodeName types.NodeName) (string, error) { diff --git a/pkg/volume/fc/attacher.go b/pkg/volume/fc/attacher.go index 748c14f38e1..052567beb11 100644 --- a/pkg/volume/fc/attacher.go +++ b/pkg/volume/fc/attacher.go @@ -162,7 +162,7 @@ func (detacher *fcDetacher) UnmountDevice(deviceMountPath string) error { return err } // Unmount for deviceMountPath(=globalPDPath) - err = volumeutil.UnmountPath(deviceMountPath, detacher.mounter) + err = mount.CleanupMountPoint(deviceMountPath, detacher.mounter, false) if err != nil { return fmt.Errorf("fc: failed to unmount: %s\nError: %v", deviceMountPath, err) } diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index af257011077..4905c15d807 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -427,7 +427,7 @@ func (c *fcDiskUnmounter) TearDown() error { } func (c *fcDiskUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } // Block Volumes Support diff --git a/pkg/volume/flexvolume/detacher-defaults.go b/pkg/volume/flexvolume/detacher-defaults.go index f0f43262394..134f26da059 100644 --- a/pkg/volume/flexvolume/detacher-defaults.go +++ b/pkg/volume/flexvolume/detacher-defaults.go @@ -21,7 +21,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/klog" - "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/kubernetes/pkg/util/mount" ) type detacherDefaults flexVolumeDetacher @@ -41,5 +41,5 @@ func (d *detacherDefaults) WaitForDetach(devicePath string, timeout time.Duratio // UnmountDevice is part of the volume.Detacher interface. func (d *detacherDefaults) UnmountDevice(deviceMountPath string) error { klog.Warning(logPrefix(d.plugin.flexVolumePlugin), "using default UnmountDevice for device mount path ", deviceMountPath) - return util.UnmountPath(deviceMountPath, d.plugin.host.GetMounter(d.plugin.GetPluginName())) + return mount.CleanupMountPoint(deviceMountPath, d.plugin.host.GetMounter(d.plugin.GetPluginName()), false) } diff --git a/pkg/volume/flexvolume/unmounter-defaults.go b/pkg/volume/flexvolume/unmounter-defaults.go index 919a6be890e..e3f05f0ec87 100644 --- a/pkg/volume/flexvolume/unmounter-defaults.go +++ b/pkg/volume/flexvolume/unmounter-defaults.go @@ -18,12 +18,12 @@ package flexvolume import ( "k8s.io/klog" - "k8s.io/kubernetes/pkg/volume/util" + "k8s.io/kubernetes/pkg/util/mount" ) type unmounterDefaults flexVolumeUnmounter func (f *unmounterDefaults) TearDownAt(dir string) error { klog.Warning(logPrefix(f.plugin), "using default TearDownAt for ", dir) - return util.UnmountPath(dir, f.mounter) + return mount.CleanupMountPoint(dir, f.mounter, false) } diff --git a/pkg/volume/flocker/flocker.go b/pkg/volume/flocker/flocker.go index 8651ba49083..b6a8c09077c 100644 --- a/pkg/volume/flocker/flocker.go +++ b/pkg/volume/flocker/flocker.go @@ -31,7 +31,6 @@ import ( "k8s.io/kubernetes/pkg/volume" flockerapi "github.com/clusterhq/flocker-go" - "k8s.io/kubernetes/pkg/volume/util" ) // ProbeVolumePlugins is the primary entrypoint for volume plugins. @@ -430,7 +429,7 @@ func (c *flockerVolumeUnmounter) TearDown() error { // TearDownAt unmounts the bind mount func (c *flockerVolumeUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } func (p *flockerPlugin) NewDeleter(spec *volume.Spec) (volume.Deleter, error) { diff --git a/pkg/volume/gcepd/attacher.go b/pkg/volume/gcepd/attacher.go index 5567e29f28f..4a998579c05 100644 --- a/pkg/volume/gcepd/attacher.go +++ b/pkg/volume/gcepd/attacher.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/klog" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" + "k8s.io/kubernetes/pkg/util/mount" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -285,5 +286,5 @@ func (detacher *gcePersistentDiskDetacher) Detach(volumeName string, nodeName ty } func (detacher *gcePersistentDiskDetacher) UnmountDevice(deviceMountPath string) error { - return volumeutil.UnmountPath(deviceMountPath, detacher.host.GetMounter(gcePersistentDiskPluginName)) + return mount.CleanupMountPoint(deviceMountPath, detacher.host.GetMounter(gcePersistentDiskPluginName), false) } diff --git a/pkg/volume/gcepd/gce_pd.go b/pkg/volume/gcepd/gce_pd.go index 74cf74ce627..b02864633ca 100644 --- a/pkg/volume/gcepd/gce_pd.go +++ b/pkg/volume/gcepd/gce_pd.go @@ -454,7 +454,7 @@ func (c *gcePersistentDiskUnmounter) TearDown() error { // TearDownAt unmounts the bind mount func (c *gcePersistentDiskUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } type gcePersistentDiskDeleter struct { diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index 408898c114e..171795b8926 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -291,7 +291,7 @@ func (b *glusterfsMounter) SetUpAt(dir string, fsGroup *int64) error { } // Cleanup upon failure. - volutil.UnmountPath(dir, b.mounter) + mount.CleanupMountPoint(dir, b.mounter, false) return err } @@ -311,7 +311,7 @@ func (c *glusterfsUnmounter) TearDown() error { } func (c *glusterfsUnmounter) TearDownAt(dir string) error { - return volutil.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } func (b *glusterfsMounter) setUpAtInternal(dir string) error { diff --git a/pkg/volume/iscsi/iscsi.go b/pkg/volume/iscsi/iscsi.go index 54ad75febfe..369774a0aa8 100644 --- a/pkg/volume/iscsi/iscsi.go +++ b/pkg/volume/iscsi/iscsi.go @@ -355,7 +355,7 @@ func (c *iscsiDiskUnmounter) TearDown() error { } func (c *iscsiDiskUnmounter) TearDownAt(dir string) error { - return ioutil.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } // Block Volumes Support diff --git a/pkg/volume/local/local.go b/pkg/volume/local/local.go index 45249313424..5314eaa637b 100644 --- a/pkg/volume/local/local.go +++ b/pkg/volume/local/local.go @@ -367,7 +367,7 @@ func (dm *deviceMounter) UnmountDevice(deviceMountPath string) error { // has base mount path: /var/lib/kubelet/plugins/kubernetes.io/local-volume/mounts basemountPath := dm.plugin.generateBlockDeviceBaseGlobalPath() if mount.PathWithinBase(deviceMountPath, basemountPath) { - return util.UnmountPath(deviceMountPath, dm.mounter) + return mount.CleanupMountPoint(deviceMountPath, dm.mounter, false) } return nil @@ -542,7 +542,7 @@ func (u *localVolumeUnmounter) TearDown() error { // TearDownAt unmounts the bind mount func (u *localVolumeUnmounter) TearDownAt(dir string) error { klog.V(4).Infof("Unmounting volume %q at path %q\n", u.volName, dir) - return util.UnmountMountPoint(dir, u.mounter, true) /* extensiveMountPointCheck = true */ + return mount.CleanupMountPoint(dir, u.mounter, true) /* extensiveMountPointCheck = true */ } // localVolumeMapper implements the BlockVolumeMapper interface for local volumes. diff --git a/pkg/volume/nfs/nfs.go b/pkg/volume/nfs/nfs.go index 92384b3db01..fbac686ea79 100644 --- a/pkg/volume/nfs/nfs.go +++ b/pkg/volume/nfs/nfs.go @@ -294,7 +294,7 @@ func (c *nfsUnmounter) TearDownAt(dir string) error { // Use extensiveMountPointCheck to consult /proc/mounts. We can't use faster // IsLikelyNotMountPoint (lstat()), since there may be root_squash on the // NFS server and kubelet may not be able to do lstat/stat() there. - return util.UnmountMountPoint(dir, c.mounter, true /* extensiveMountPointCheck */) + return mount.CleanupMountPoint(dir, c.mounter, true /* extensiveMountPointCheck */) } func getVolumeSource(spec *volume.Spec) (*v1.NFSVolumeSource, bool, error) { diff --git a/pkg/volume/photon_pd/attacher.go b/pkg/volume/photon_pd/attacher.go index d2570a4a743..2421eee6980 100644 --- a/pkg/volume/photon_pd/attacher.go +++ b/pkg/volume/photon_pd/attacher.go @@ -305,5 +305,5 @@ func (detacher *photonPersistentDiskDetacher) WaitForDetach(devicePath string, t } func (detacher *photonPersistentDiskDetacher) UnmountDevice(deviceMountPath string) error { - return volumeutil.UnmountPath(deviceMountPath, detacher.mounter) + return mount.CleanupMountPoint(deviceMountPath, detacher.mounter, false) } diff --git a/pkg/volume/photon_pd/photon_pd.go b/pkg/volume/photon_pd/photon_pd.go index 03cbd9b0ecb..3549b4d3d99 100644 --- a/pkg/volume/photon_pd/photon_pd.go +++ b/pkg/volume/photon_pd/photon_pd.go @@ -277,7 +277,7 @@ func (c *photonPersistentDiskUnmounter) TearDown() error { // Unmounts the bind mount, and detaches the disk only if the PD // resource was the last reference to that disk on the kubelet. func (c *photonPersistentDiskUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, c.mounter) + return mount.CleanupMountPoint(dir, c.mounter, false) } func makeGlobalPDPath(host volume.VolumeHost, devName string) string { diff --git a/pkg/volume/scaleio/sio_volume.go b/pkg/volume/scaleio/sio_volume.go index 4a5cb35221e..c73e16ae96c 100644 --- a/pkg/volume/scaleio/sio_volume.go +++ b/pkg/volume/scaleio/sio_volume.go @@ -193,7 +193,7 @@ func (v *sioVolume) TearDownAt(dir string) error { } klog.V(4).Info(log("attempting to unmount %s", dir)) - if err := util.UnmountPath(dir, mounter); err != nil { + if err := mount.CleanupMountPoint(dir, mounter, false); err != nil { klog.Error(log("teardown failed while unmounting dir %s: %v ", dir, err)) return err } diff --git a/pkg/volume/storageos/storageos.go b/pkg/volume/storageos/storageos.go index 9cb56b353aa..36469c7f51a 100644 --- a/pkg/volume/storageos/storageos.go +++ b/pkg/volume/storageos/storageos.go @@ -529,7 +529,7 @@ func (b *storageosUnmounter) TearDown() error { // Unmounts the bind mount, and detaches the disk only if the PD // resource was the last reference to that disk on the kubelet. func (b *storageosUnmounter) TearDownAt(dir string) error { - if err := util.UnmountPath(dir, b.mounter); err != nil { + if err := mount.CleanupMountPoint(dir, b.mounter, false); err != nil { klog.V(4).Infof("Unmounted StorageOS volume %s failed with: %v", b.pvName, err) } if err := b.manager.UnmountVolume(b); err != nil { diff --git a/pkg/volume/util/util.go b/pkg/volume/util/util.go index 18e24d69f05..437803b7afc 100644 --- a/pkg/volume/util/util.go +++ b/pkg/volume/util/util.go @@ -125,23 +125,6 @@ func SetReady(dir string) { file.Close() } -// UnmountPath is a common unmount routine that unmounts the given path and -// deletes the remaining directory if successful. -// TODO: Remove this function and change callers to call mount pkg directly -func UnmountPath(mountPath string, mounter mount.Interface) error { - return mount.CleanupMountPoint(mountPath, mounter, false /* extensiveMountPointCheck */) -} - -// UnmountMountPoint is a common unmount routine that unmounts the given path and -// deletes the remaining directory if successful. -// if extensiveMountPointCheck is true -// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. -// IsNotMountPoint is more expensive but properly handles bind mounts. -// TODO: Change callers to call mount pkg directly -func UnmountMountPoint(mountPath string, mounter mount.Interface, extensiveMountPointCheck bool) error { - return mount.CleanupMountPoint(mountPath, mounter, extensiveMountPointCheck) -} - // PathExists returns true if the specified path exists. // TODO: Change callers to call mount pkg directly func PathExists(path string) (bool, error) { diff --git a/pkg/volume/vsphere_volume/attacher.go b/pkg/volume/vsphere_volume/attacher.go index ca934b45abd..ed7688f91eb 100644 --- a/pkg/volume/vsphere_volume/attacher.go +++ b/pkg/volume/vsphere_volume/attacher.go @@ -292,7 +292,7 @@ func (detacher *vsphereVMDKDetacher) Detach(volumeName string, nodeName types.No } func (detacher *vsphereVMDKDetacher) UnmountDevice(deviceMountPath string) error { - return volumeutil.UnmountPath(deviceMountPath, detacher.mounter) + return mount.CleanupMountPoint(deviceMountPath, detacher.mounter, false) } func setNodeVolume( diff --git a/pkg/volume/vsphere_volume/vsphere_volume.go b/pkg/volume/vsphere_volume/vsphere_volume.go index 7097005ef9e..aa7b2e8d56b 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume.go +++ b/pkg/volume/vsphere_volume/vsphere_volume.go @@ -285,7 +285,7 @@ func (v *vsphereVolumeUnmounter) TearDown() error { // Unmounts the bind mount, and detaches the disk only if the PD // resource was the last reference to that disk on the kubelet. func (v *vsphereVolumeUnmounter) TearDownAt(dir string) error { - return util.UnmountPath(dir, v.mounter) + return mount.CleanupMountPoint(dir, v.mounter, false) } func makeGlobalPDPath(host volume.VolumeHost, devName string) string {