fix: internalUnmount failure and DeleteVolume failure

This commit is contained in:
Jiaxun Song 2020-11-16 06:09:21 +00:00
parent 934c450968
commit 299d405e6b
1 changed files with 5 additions and 4 deletions

View File

@ -260,6 +260,7 @@ func (cs *ControllerServer) internalUnmount(ctx context.Context, vol *nfsVolume)
// Unmount nfs server at base-dir // Unmount nfs server at base-dir
glog.V(4).Infof("internally unmounting %v", targetPath) glog.V(4).Infof("internally unmounting %v", targetPath)
_, err := cs.Driver.ns.NodeUnpublishVolume(ctx, &csi.NodeUnpublishVolumeRequest{ _, err := cs.Driver.ns.NodeUnpublishVolume(ctx, &csi.NodeUnpublishVolumeRequest{
VolumeId: vol.id,
TargetPath: cs.getInternalMountPath(vol), TargetPath: cs.getInternalMountPath(vol),
}) })
return err return err
@ -344,9 +345,9 @@ func (cs *ControllerServer) nfsVolToCSI(vol *nfsVolume, reqCapacity int64) *csi.
// Given a nfsVolume, return a CSI volume id // Given a nfsVolume, return a CSI volume id
func (cs *ControllerServer) getVolumeIdFromNfsVol(vol *nfsVolume) string { func (cs *ControllerServer) getVolumeIdFromNfsVol(vol *nfsVolume) string {
idElements := make([]string, totalIDElements) idElements := make([]string, totalIDElements)
idElements[idServer] = vol.server idElements[idServer] = strings.Trim(vol.server, "/")
idElements[idBaseDir] = vol.baseDir idElements[idBaseDir] = strings.Trim(vol.baseDir, "/")
idElements[idSubDir] = vol.subDir idElements[idSubDir] = strings.Trim(vol.subDir, "/")
return strings.Join(idElements, "/") return strings.Join(idElements, "/")
} }
@ -354,7 +355,7 @@ func (cs *ControllerServer) getVolumeIdFromNfsVol(vol *nfsVolume) string {
func (cs *ControllerServer) getNfsVolFromId(id string) (*nfsVolume, error) { func (cs *ControllerServer) getNfsVolFromId(id string) (*nfsVolume, error) {
tokens := strings.Split(id, "/") tokens := strings.Split(id, "/")
if len(tokens) != totalIDElements { if len(tokens) != totalIDElements {
return nil, fmt.Errorf("volume id %q unexpected format: got %v tokens", id, len(tokens)) return nil, fmt.Errorf("volume id %q unexpected format: got %v token(s) instead of %v", id, len(tokens), totalIDElements)
} }
return &nfsVolume{ return &nfsVolume{