public List < FileStatusExtended > getRandomFileStats ( double percent ) { readLock ( ) ; try { List < FileStatusExtended > stats = new LinkedList < FileStatusExtended > ( ) ; for ( INodeFile file : getRandomFiles ( percent ) ) { try { String path = file . getFullPathName ( ) ; FileStatus stat = createFileStatus ( path , file ) ; Lease lease = this . getFSNamesystem ( ) . leaseManager . getLeaseByPath ( path ) ; String holder = ( lease == null ) ? null : lease . getHolder ( ) ; long hardlinkId = ( file instanceof INodeHardLinkFile ) ? ( ( INodeHardLinkFile ) file ) . getHardLinkID ( ) : - 1 ; stats . add ( new FileStatusExtended ( stat , file . getBlocks ( ) , holder , hardlinkId ) ) ; } catch ( IOException ioe ) { // the file has already been deleted; ingore it } } return stats ; } finally { readUnlock ( ) ; } }
Retrieves a list of random files with some information .