private void checkDir(String path, Result replRes, Result ecRes) throws IOException { if (snapshottableDirs != null && snapshottableDirs.contains(path)) { String snapshotPath = (path.endsWith(Path.SEPARATOR) ? path : path + Path.SEPARATOR) + HdfsConstants.DOT_SNAPSHOT_DIR; HdfsFileStatus snapshotFileInfo = namenode.getRpcServer().getFileInfo( snapshotPath); check(snapshotPath, snapshotFileInfo, replRes, ecRes); } byte[] lastReturnedName = HdfsFileStatus.EMPTY_NAME; DirectoryListing thisListing; if (showFiles) { out.println(path + " <dir>"); } totalDirs++; do { assert lastReturnedName != null; thisListing = namenode.getRpcServer().getListing( path, lastReturnedName, false); if (thisListing == null) { return; } HdfsFileStatus[] files = thisListing.getPartialListing(); for (int i = 0; i < files.length; i++) { check(path, files[i], replRes, ecRes); } lastReturnedName = thisListing.getLastName(); } while (thisListing.hasMore()); }
private static DirectoryListing getDirectoryListing(final NamenodeProtocols np, final String p, byte[] startAfter) throws IOException { final DirectoryListing listing = np.getListing(p, startAfter, false); if (listing == null) { // the directory does not exist throw new FileNotFoundException("File " + p + " does not exist."); } return listing; }
private static DirectoryListing getDirectoryListing(final NamenodeProtocols np, final String p, byte[] startAfter) throws IOException { final DirectoryListing listing = np.getListing(p, startAfter, false); if (listing == null) { // the directory does not exist throw new FileNotFoundException("File " + p + " does not exist."); } return listing; }
do { assert lastReturnedName != null; thisListing = namenode.getRpcServer().getListing( path, lastReturnedName, false); if (thisListing == null) {
do { assert lastReturnedName != null; thisListing = namenode.getRpcServer().getListing( path, lastReturnedName, false); if (thisListing == null) {
@Test public void testFilesInGetListingOps() throws Exception { createFile("/tmp1/t1", 3200, (short)3); createFile("/tmp1/t2", 3200, (short)3); createFile("/tmp2/t1", 3200, (short)3); createFile("/tmp2/t2", 3200, (short)3); cluster.getNameNodeRpc().getListing("/tmp1", HdfsFileStatus.EMPTY_NAME, false); assertCounter("FilesInGetListingOps", 2L, getMetrics(NN_METRICS)); cluster.getNameNodeRpc().getListing("/tmp2", HdfsFileStatus.EMPTY_NAME, false); assertCounter("FilesInGetListingOps", 4L, getMetrics(NN_METRICS)); } }
DFSTestUtil.createFile(hdfs, new Path("/tmp/f3"), 0, (short) 1, 0); DirectoryListing dl = cluster.getNameNodeRpc().getListing("/tmp", HdfsFileStatus.EMPTY_NAME, false); assertTrue(dl.getPartialListing().length == 3); dl = cluster.getNameNodeRpc().getListing("/tmp", f2.getBytes(), false); assertTrue(dl.getPartialListing().length == 1); dl = cluster.getNameNodeRpc().getListing("/tmp", f2InodePath.getBytes(), false); assertTrue(dl.getPartialListing().length == 1); dl = cluster.getNameNodeRpc().getListing("/tmp", f2InodePath.getBytes(), false); fail("Didn't get exception for the deleted startAfter token.");
DirectoryListing dl = cluster.getNameNodeRpc().getListing("/tmp1", start, true); assertTrue(dl.getPartialListing().length == 1); DirectoryListing dl = cluster.getNameNodeRpc().getListing("/tmp2", start, true); assertTrue(dl.getPartialListing().length == 3);