public boolean delete ( Supplier < JournalContext > journalContext , AlluxioURI uri ) { String path = uri . getPath ( ) ; LOG . info ( "Unmounting {}" , path ) ; if ( path . equals ( ROOT ) ) { LOG . warn ( "Cannot unmount the root mount point." ) ; return false ; } try ( LockResource r = new LockResource ( mWriteLock ) ) { if ( mState . getMountTable ( ) . containsKey ( path ) ) { // check if the path contains another nested mount point for ( String mountPath : mState . getMountTable ( ) . keySet ( ) ) { try { if ( PathUtils . hasPrefix ( mountPath , path ) && ( ! path . equals ( mountPath ) ) ) { LOG . warn ( "The path to unmount {} contains another nested mountpoint {}" , path , mountPath ) ; return false ; } } catch ( InvalidPathException e ) { LOG . warn ( "Invalid path {} encountered when checking for nested mount point" , path ) ; } } mUfsManager . removeMount ( mState . getMountTable ( ) . get ( path ) . getMountId ( ) ) ; mState . applyAndJournal ( journalContext , DeleteMountPointEntry . newBuilder ( ) . setAlluxioPath ( path ) . build ( ) ) ; return true ; } LOG . warn ( "Mount point {} does not exist." , path ) ; return false ; } }
Unmounts the given Alluxio path . The path should match an existing mount point .